Невозможно использовать nltk.LidstoneProbDist с NaiveBayesClassifier - PullRequest
0 голосов
/ 18 февраля 2020

Я могу обучить наивный байесовский классификатор, используя сглаживание Лапласа, но я не могу сделать это с Лидстоном.

from nltk.classify import NaiveBayesClassifier
from nltk.probability import LidstoneProbDist
from nltk.probability import LaplaceProbDist

С Лапласом классификатор обучается:

nb_classifier = NaiveBayesClassifier.train(train_feats, estimator=LaplaceProbDist)

Однако, когда я тренируюсь с Лидстоном:

estimator = lambda fdist, bins: LidstoneProbDist(fdist, 0.01, bins)
nb_classifier = NaiveBayesClassifier.train(train_feats,
                                           estimator=estimator)

я получаю сообщение об ошибке

File ".../anaconda3/envs/py36/lib/python3.6/site-packages/nltk/classify/naivebayes.py", line 232, in train

label_probdist = estimator(label_freqdist)
TypeError: <lambda>() missing 1 required positional argument: 'bins'

Я использовал эту строку

estimator = lambda fdist, bins: LidstoneProbDist(fdist, 0.01, bins)

, поскольку она работала здесь . Это одна из моих многочисленных неудачных попыток, любая помощь будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...