python - 如何使用 Stanford NLP Tagger 和 NLTK 提高速度

标签 python nltk stanford-nlp

有什么方法可以更高效地使用 Standford Tagger?

每次调用 NLTK 的包装器都会为每个分析的字符串启动一个新的 java 实例,这非常非常慢,尤其是在使用更大的外语模型时...

http://www.nltk.org/api/nltk.tag.html#module-nltk.tag.stanford

最佳答案

找到解决方案。可以在 servlet 模式下运行 POS Tagger,然后通过 HTTP 连接到它。完美。

http://nlp.stanford.edu/software/pos-tagger-faq.shtml#d

例子

在后台启动服务器

nohup java -mx1000m -cp /var/stanford-postagger-full-2014-01-04/stanford-postagger.jar edu.stanford.nlp.tagger.maxent.MaxentTaggerServer -model /var/stanford-postagger-full-2014-01-04/models/german-dewac.tagger -port 2020 >& /dev/null &

调整防火墙以限制仅从本地主机访问端口 2020

iptables -A INPUT -p tcp -s localhost --dport 2020 -j ACCEPT
iptables -A INPUT -p tcp --dport 2020 -j DROP

用wget测试

wget http://localhost:2020/?die welt ist schön

关闭服务器

pkill -f stanford

恢复 iptable 设置

iptables -D INPUT -p tcp -s localhost --dport 2020 -j ACCEPT
iptables -D INPUT -p tcp --dport 2020 -j DROP

关于python - 如何使用 Stanford NLP Tagger 和 NLTK 提高速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23322674/

相关文章:

python - 在同一个容器中运行 celery worker + beat

python - 从文本中的单词索引获取字符索引

java - 使用 Fmeasure 进行引导的评分模式

java - 解析斯坦福依赖关系

python - Python 中的梅森数公式

python - 为什么我的标准输出会干扰我的 python 网页?

python - 使用 nltk.download() 下载错误

parsing - 如何将文本文件转换为麦芽解析器的 CoNLL 格式?

python - 如何修补函数的 __code__?

python - 在项目符号数据或列出数据的情况下如何使用 nltk 句子标记器?