Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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 Can';不要让Stanford POS tagger在nltk工作_Python_Nltk_Stanford Nlp_Pos Tagger - Fatal编程技术网

Python Can';不要让Stanford POS tagger在nltk工作

Python Can';不要让Stanford POS tagger在nltk工作,python,nltk,stanford-nlp,pos-tagger,Python,Nltk,Stanford Nlp,Pos Tagger,我正试图在NLTK内与Stanford POS tagger合作。我使用的示例如下所示: 我能够顺利加载所有内容: >>> import os >>> from nltk.tag import StanfordPOSTagger >>> os.environ['STANFORD_MODELS'] = '/path/to/stanford/folder/models') >>> st = StanfordPOSTagger

我正试图在NLTK内与Stanford POS tagger合作。我使用的示例如下所示:

我能够顺利加载所有内容:

>>> import os
>>> from nltk.tag import StanfordPOSTagger
>>> os.environ['STANFORD_MODELS'] = '/path/to/stanford/folder/models')

>>> st = StanfordPOSTagger('english-bidirectional-distsim.tagger',path_to_jar='/path/to/stanford/folder/stanford-postagger.jar')
但在第一次执行时:

>>> st.tag('What is the airspeed of an unladen swallow ?'.split())
它给了我以下错误:

Loading default properties from tagger /path/to/stanford/folder/models/english-bidirectional-distsim.tagger
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at edu.stanford.nlp.io.IOUtils.<clinit>(IOUtils.java:41)
    at edu.stanford.nlp.tagger.maxent.TaggerConfig.<init>(TaggerConfig.java:146)
    at edu.stanford.nlp.tagger.maxent.TaggerConfig.<init>(TaggerConfig.java:128)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.main(MaxentTagger.java:1836)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 4 more

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/miguelwon/anaconda/lib/python2.7/site-packages/nltk/tag/stanford.py", line 66, in tag
    return sum(self.tag_sents([tokens]), []) 
  File "/Users/miguelwon/anaconda/lib/python2.7/site-packages/nltk/tag/stanford.py", line 89, in tag_sents
    stdout=PIPE, stderr=PIPE)
  File "/Users/miguelwon/anaconda/lib/python2.7/site-packages/nltk/internals.py", line 134, in java
    raise OSError('Java command failed : ' + str(cmd))
OSError: Java command failed : [u'/usr/bin/java', '-mx1000m', '-cp', '/path/to/stanford/folder/stanford-postagger-full-2015-12-09/stanford-postagger.jar', 'edu.stanford.nlp.tagger.maxent.MaxentTagger', '-model', '/Users/miguelwon/Documents/Kaggel/RTE/stanford-postagger-full-2015-12-09/models/english-bidirectional-distsim.tagger', '-textFile', '/var/folders/vb/dy__dnps7qz35slpmfkc25g40000gn/T/tmpwieb0M', '-tokenize', 'false', '-outputFormatOptions', 'keepEmptySentences', '-encoding', 'utf8']
从tagger/path/to/stanford/folder/models/english-bidirectional-distsim.tagger加载默认属性
线程“main”java.lang.NoClassDefFoundError中出现异常:org/slf4j/LoggerFactory
在edu.stanford.nlp.io.IOUtils.(IOUtils.java:41)
位于edu.stanford.nlp.tagger.maxent.TaggerConfig.(TaggerConfig.java:146)
位于edu.stanford.nlp.tagger.maxent.TaggerConfig.(TaggerConfig.java:128)
位于edu.stanford.nlp.tagger.maxent.MaxentTagger.main(MaxentTagger.java:1836)
原因:java.lang.ClassNotFoundException:org.slf4j.LoggerFactory
位于java.net.URLClassLoader.findClass(URLClassLoader.java:381)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4更多
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Users/miguelwon/anaconda/lib/python2.7/site packages/nltk/tag/stanford.py”,第66行,标签中
返回和(self.tag_sents([tokens]),[])
文件“/Users/miguelwon/anaconda/lib/python2.7/site packages/nltk/tag/stanford.py”,第89行,在tag_sents中
标准输出=管道,标准输出=管道)
文件“/Users/miguelwon/anaconda/lib/python2.7/site packages/nltk/internals.py”,第134行,java语言
raise OSError('Java命令失败:'+str(cmd))
OSError:Java命令失败:[u'/usr/bin/java'、'-mx1000'、'-cp'、'/path/to/stanford/folder/stanford-postagger-full-2015-12-09/stanford-postagger.jar'、'-edu.stanford.nlp.tagger.maxent.MaxentTagger'、'-model'、'/Users/miguelwon/Documents/Kaggel/RTE/stanford-postagger-full-2015-12-09/models/english双向distsim.tagger'、'-textFile'、'/vb/vb/dyĂ/Dnqz35slpmfkc25g40000gn/T/tmpwieb0M','-tokenize',false','-outputFormatOptions',keepmptySentences','-encoding',utf8']

自从这个解决方案以来,很多东西都变了。这是我的代码解决方案,在我也遇到了这个错误之后。基本上,增加JAVA heapsize解决了这个问题

import os
java_path = "C:\\Program Files\\Java\\jdk1.8.0_102\\bin\\java.exe"
os.environ['JAVAHOME'] = java_path

from nltk.tag.stanford import StanfordPOSTagger
path_to_model = "stanford-postagger-2015-12-09/models/english-bidirectional-distsim.tagger"
path_to_jar = "stanford-postagger-2015-12-09/stanford-postagger.jar"
tagger=StanfordPOSTagger(path_to_model, path_to_jar)
tagger.java_options='-mx4096m'          ### Setting higher memory limit for long sentences
sentence = 'This is testing'
print tagger.tag(sentence.split())

最好的办法是下载最新版本的Stanford POS tagger,其中依赖性问题现已得到解决(2018年3月)


See的可能重复也谢谢!它工作了。处理速度非常慢。你知道如何使它更快吗?对于内置的nltk pos tagger,我使用了这个:你知道我是否可以对Stanford pos tagger做等效的处理吗?请看,事情是每次Java.jar运行tagger.tag,这需要一些时间来加载模型在这里我可以看到一些关于与标记器“服务器”通信的信息,但不清楚如何运行stanford postagger服务器
wget https://nlp.stanford.edu/software/stanford-postagger-full-2017-06-09.zip