Ошибка Python NLTK 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)

Весь импорт кажется правильным.


person gran_profaci    schedule 21.11.2012    source источник


Ответы (1)


Вы уверены, что вызываете NgramModel с правильными аргументами? Глядя на источник текущей версии NLTK, NgramModel выглядит так:

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

Что, похоже, не соответствует тому, как вы вызываете функцию. Что такое estimator в вашем коде? Потому что вы сейчас передаете estimator в качестве аргумента pad_left.

person Marius    schedule 22.11.2012