Stanford CoreNLP Annotators线程安全吗?

Rüd*_*ger 7 java multithreading thread-safety stanford-nlp

斯坦福CoreNLP的网站

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

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

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

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

Gab*_*eli 9

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

  • 没问题!是的,管道将同时处理这两个请求. (2认同)