Python NLTK NGrams错误

时间:2012-11-21 23:21:26

标签: python nltk assertion n-gram

我正在运行一个代码,以便从文本语料库中获取困难,数量为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)

所有进口似乎都是正确的。

1 个答案:

答案 0 :(得分:3)

您确定使用正确的参数调用NgramModel吗?查看source for the current version of NLTKNgramModel如下所示:

def __init__(self, n, train, pad_left=True, pad_right=False,
                 estimator=None, *estimator_args, **estimator_kwargs): 

这似乎与您调用该函数的方式不符。您的代码中estimator是什么?因为您当前正在将estimator作为pad_left参数传递。