Я могу обучить наивный байесовский классификатор, используя сглаживание Лапласа, но я не могу сделать это с Лидстоном.
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)
, поскольку она работала здесь . Это одна из моих многочисленных неудачных попыток, любая помощь будет высоко ценится.