Разница между NLTK и Scikit Naive Bayes

#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) )