Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Stanford NLP Tagger和NLTK提高速度_Python_Nltk_Stanford Nlp - Fatal编程技术网

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

Python 如何使用Stanford NLP Tagger和NLTK提高速度,python,nltk,stanford-nlp,Python,Nltk,Stanford Nlp,有没有办法更有效地使用斯坦福德标签机 对NLTK包装器的每次调用都会根据分析的字符串启动一个新的java实例,这非常缓慢,尤其是在使用更大的外语模型时 使用nltk.tag.stanford.POSTagger.tag\u sents()标记多个句子 tag\u sents已取代旧的batch\u tag功能,请参阅 已弃用: 使用batch_Tag而不是Tag标记句子,请参见找到解决方案。可以在servlet模式下运行POS标记器,然后通过HTTP连接到它。太好了 范例 在后台启动服务器

有没有办法更有效地使用斯坦福德标签机

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


使用
nltk.tag.stanford.POSTagger.tag\u sents()
标记多个句子

tag\u sents
已取代旧的
batch\u tag
功能,请参阅


已弃用:


使用
batch_Tag
而不是
Tag
标记句子,请参见找到解决方案。可以在servlet模式下运行POS标记器,然后通过HTTP连接到它。太好了

范例

在后台启动服务器

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

您可以添加用于连接/使用NLTK的python代码吗?我对这个问题很感兴趣,但现在我使用的是上一个解决方案,因为它解决了排队等待处理的句子的问题。@Jabb hi,你能帮助我使用wget命令吗?当我尝试它时,这是我得到的错误,请参见后续注释--2020-11-24 17:28:00--http://localhost:2020/?die 正在解析本地主机(本地主机)。。。127.0.0.1连接到本地主机(本地主机)| 127.0.0.1 |:2020。。。有联系的。HTTP请求已发送,正在等待响应。。。200个无标题,假设HTTP/0.9长度:未指定保存到:“index.html?die”index.html?die[
这非常有效,只需将语句排队等待处理,然后使用
taggedlist=batch\u标记[sent for sent in queue].
这是最近才消失的吗?我跟踪了链接,在那里找不到batch_tag方法。@bahmait,我已经更新了最新版本的函数名。
batch_tag
已经被重构为
tag_sents
升级到NLTK v3.1,自3.0以来,开发人员已经解决了很多bug,当然还有很多bug2.0.如果没有,请访问斯坦福大学的corenlp代码。冷静下来。首先将NLTK更新到v3.1,然后查看它是否有效。如果失败,请写下进行NLTK更新所采取的所有步骤,并为您的问题添加更多细节。然后,我们可以尝试看看是否可以帮助您解决此问题。