如何在多线程中使用Stanford Named Entity Recognizer?

时间:2013-07-22 19:42:27

标签: performance stanford-nlp

是否可以在Stanford Named Entity Recognizer中使用多线程来提高运行时性能?如果是这样,怎么做?

1 个答案:

答案 0 :(得分:0)

大约几个月前,我一直在努力解决同样的问题。 我想在大型语料库上进行NE提取,同时使用Lucene自定义分析器对其进行索引。 我解决它的方式,这可能或可能不是你正在寻找的,是通过使用生产者/消费者构造。 我有N-4线程读取文档并以循环方式将其发送到系统上的三个命名管道之一。 这三个管道的接收端是一个休息部署形式的stanfordNER实例,它们都加载了相同的模型。

代码是python + multiprocessing。我会发布代码,但它有太多项目特定的东西,我需要清理。

以下是一些资源指针。 NER部署 https://github.com/dat/stanford-ner/blob/master/ner-deploy.shhttp://docs.python.org/2/library/multiprocessing.html

PS:N是系统可以运行的线程总数 请记住,在我的情况下,我对系统的内存没有任何限制,因为我有足够的可用内存(大约70GB)因此在同一系统上加载三个NER实例对性能没有太大影响降解。