我正在寻求帮助以了解如何解决此问题:
import nltk
from nltk.corpus import stopwords
from nltk.tag.stanford import POSTagger
st = POSTagger('C:\Python27\stanford-postagger/models/english-bidirectional-distsim.tagger',
'C:\Python27\stanford-postagger/stanford-postagger.jar')
def FindBigrams(concept):
sentence = st.tag(nltk.word_tokenize(concept))
print sentence
Bigrams = []
for i in range(len(sentence) - 1):
if ( sentence[i][1] == "JJ" and sentence[i+1][0] in stopwords('english') ):
return concept
print FindBigrams("a very beautiful christmas gift")
错误:
[(u'a', u'DT'), (u'very', u'RB'), (u'beautiful', u'JJ'), (u'christmas', u'NNS'), (u'gift', u'NN')]
print FindBigrams("a very beautiful christmas gift")
File "C:\Python27\python_projects\parser\ParseBigrams.py", line 15, in FindBigrams
if ( sentence[i][1] == "JJ" and sentence[i+1][0] in stopwords('english') ):
TypeError: 'LazyCorpusLoader' object is not callable
最佳答案
您正在使用 stopwords
作为函数而不是 stopwords.words
将 stopwords('english')
替换为 stopwords.words('english')
for i in range(len(sentence) - 1):
if ( sentence[i][1] == "JJ" and sentence[i+1][0] in stopwords.words('english') ):
return concept
关于Python NLTK 'LazyCorpusLoader' 对象不可调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25910257/