Python stanford.py未实现错误

Python stanford.py未实现错误,python,stanford-nlp,Python,Stanford Nlp,当我在代码下面运行时,我得到一个NotImplementedError。为什么? import nltk from nltk import * from nltk.tag import stanford from nltk.tag.stanford import StanfordTagger st = StanfordTagger('C:\\Python27\\stanford-postagger\\models\\english-bidirectional-distsim.tagger',

当我在代码下面运行时,我得到一个
NotImplementedError
。为什么?

import nltk
from nltk import *
from nltk.tag import stanford
from nltk.tag.stanford import StanfordTagger

st = StanfordTagger('C:\\Python27\\stanford-postagger\\models\\english-bidirectional-distsim.tagger',
                    'C:\\Python27\\stanford-postagger\\stanford-postagger.jar')
print st.tag('What is the airspeed of an unladen swallow ?'.split()) 
错误消息:

  File "C:\Python27\lib\site-packages\nltk\tag\stanford.py", line 51, in _cmd
    raise NotImplementedError
NotImplementedError

这不是我问题的答案,而是一个解决方法:使用
POSTagger
而不是
StanfordTagger

import nltk
from nltk import *
from nltk.tag import stanford
#from nltk.tag.stanford import StanfordTagger
from nltk.tag.stanford import POSTagger

st = POSTagger('C:\\Python27\\stanford-postagger\\models\\english-bidirectional-distsim.tagger',
                    'C:\\Python27\\stanford-postagger\\stanford-postagger.jar')
print st.tag('What is the airspeed of an unladen swallow ?'.split()) 

查看源代码:

\u cmd
方法未在
StanfordTagger
-
\u cmd
属性:返回要执行的命令的属性 执行

因此,当在此处调用时,会导致您的问题:

 # Run the tagger and get the output
    stanpos_output, _stderr = java(self._cmd,classpath=self._stanford_jar, \
                                                    stdout=PIPE, stderr=PIPE)
POSTagger
中,方法如下所示:

@property
def _cmd(self):
    return ['edu.stanford.nlp.tagger.maxent.MaxentTagger', \
            '-model', self._stanford_model, '-textFile', \
            self._input_file_path, '-tokenize', 'false']
您可以在
StanfordTagger
中编辑该方法以匹配
POSTTagger

@property
def _cmd(self):
    return ['edu.stanford.nlp.tagger.maxent.MaxentTagger', \
            '-model', self._stanford_model, '-textFile', \
            self._input_file_path, '-tokenize', 'false']