我正在运行一个代码,以便从文本语料库中获取困难,数量为ngrams。在这样做时,我得到了一个奇怪的错误:
C:\Users\Rosenkrantz\Documents\NetBeansProjects\JavaApplication2>python ai7.py
C:\Users\Rosenkrantz\Documents\NetBeansProjects\JavaApplication2>python ai7.py
47510
203044
308837
Traceback (most recent call last):
File "ai7.py", line 95, in <module>
tt=NgramModel(1, tText, estimator)
File "C:\Python27\lib\site-packages\nltk\model\ngram.py", line 81, in __init__
assert(isinstance(pad_left, bool))
AssertionError
我正在运行的代码是:
f_in = open("science.txt", 'r');
ln = f_in.read()
words = nltk.word_tokenize(ln)
tText = Text(words)
tt=NgramModel(1, tText, estimator)
tt1=NgramModel(2, tText1, estimator)
tt2=NgramModel(3, tText2, estimator)
所有进口似乎都是正确的。
答案 0 :(得分:3)
您确定使用正确的参数调用NgramModel
吗?查看source for the current version of NLTK,NgramModel
如下所示:
def __init__(self, n, train, pad_left=True, pad_right=False,
estimator=None, *estimator_args, **estimator_kwargs):
这似乎与您调用该函数的方式不符。您的代码中estimator
是什么?因为您当前正在将estimator
作为pad_left
参数传递。