斯坦福CoreNLP注释器线程安全吗?

时间:2015-05-05 07:53:03

标签: java multithreading thread-safety stanford-nlp

Stanford CoreNLP的网站

http://nlp.stanford.edu/software/corenlp.shtml

列出了几十个像魅力一样工作的注释器。我想使用Annotators的实例来处理多个线程的常见任务(词形还原,标记,解析)。例如,将大量(GB文本)的处理拆分为线程或提供Web服务。

过去有一些讨论引用了LocalThreads,根据我的理解,它使用每个线程的一个Annotator实例(从而避免了线程安全方面的问题)。这是一个选项,但这样所有模型文件和资源也必须加载n次。

Annotators(或其中一些)是否可以使用线程安全?我在讨论,文档或常见问题中找不到任何结论性/官方性的内容。

1 个答案:

答案 0 :(得分:9)

是的,注释器旨在是线程安全的。您可以创建一个新的AnnotationPipeline(例如,一个新的StanfordCoreNLP对象),然后许多线程可以将注释传递到此管道中,而无需为每个线程重新加载模型。