#python #scikit-learn #nltk
#python #scikit-учиться #nltk
Вопрос:
Могу ли я узнать, какова природа Naive Bayes из NLTK? Это Бернулли, мультиномиальный, гауссовский или любой другой вариант? Я прочитал документацию, но она кажется слишком общей.
Я понимаю, что scikit имеет 4 версии Naive Bayes и только две из них подходят для обработки текста.
Когда я занимаюсь обработкой текста, я нахожу существенную разницу между NLTK Naive Bayes и scikit.
Ответ №1:
NLTK Naive Bayes относится к полиномиальной разновидности (типичной для классификации), ключом к этому является то, что Gaussian Naive Bayes обычно используется для непрерывных данных (не типичных для классификации текста).
Официальную документацию для NLTK Naive Bayes можно найти здесь: https://www.nltk.or&/_modules/nltk/classify/naivebayes.html
Пример ключевого текста-
A classifier based on the Naive Bayes al&orithm. In order to find the
probability for a label, this al&orithm first uses the Bayes rule to
express P(label|features) in terms of P(label) and P(features|label):
| P(label) * P(features|label)
| P(label|features) = ------------------------------
| P(features)
The al&orithm then makes the 'naive' assumption that all features are
independent, &iven the label:
| P(label) * P(f1|label) * ... * P(fn|label)
| P(label|features) = --------------------------------------------
| P(features)
Rather than computin& P(features) explicitly, the al&orithm just
calculates the numerator for each label, and normalizes them so they
sum to one:
| P(label) * P(f1|label) * ... * P(fn|label)
| P(label|features) = --------------------------------------------
| SUM[l]( P(l) * P(f1|l) * ... * P(fn|l) )