Модель языка nltk TypeError:ngarms() получил неожиданный аргумент ключевого слова 'pad_symbol'
Я выполняю следующий код:
from nltk.corpus import brown
from nltk.model import Ngram
lm = NgramModel(2, brown.words(categories='news'), estimator=None)
Но я получил ошибку:
Я действительно не знаю, почему у меня есть эта проблема; это ошибка в коде nltk? У кого-нибудь есть представление о том, что я делаю неправильно?
Заранее спасибо.
1 ответ
Поскольку этот ответ не обновлялся более 3 лет, вот пример кода модели ngram в NLTK v3.5
from nltk.corpus import brown
from nltk.lm import KneserNeyInterpolated
from nltk.lm.preprocessing import padded_everygram_pipeline
# create a bigram model using Kneser-Ney smoothing
lm = KneserNeyInterpolated(2) # could also be MLE(2)
# use the Brown Corpus to train the language model
# padding adds <s> tags before a sentence, and </s> tags after a sentence
train, vocab = padded_everygram_pipeline(order=2, text=brown.sents())
# optionally, choose a category of the Brown Corpus to train a language model
# train, vocab = padded_everygram_pipeline(order=2, text=brown.sents(categories='news'))
lm.fit(train, vocab) # fit the trained model
Из того, что я видел, в nltk.model все еще есть некоторые ошибки, и он не находится в nltk-master по этой причине ошибки NgramModel. Поскольку ветвь модели все еще находится в стадии разработки, я скачал самую последнюю версию и все равно получил ту же ошибку, что и в вашем посте.
Если вам нужен этот модуль и вам удобны более ранние версии, тогда я нашел релиз, имеющий рабочую версию. НЛТК 2.0.4