使用NLTK计算朴素贝叶斯句子的概率

时间:2016-05-27 12:40:34

标签: python nltk naivebayes

我正在查看NLTK中朴素贝叶斯分类器的源代码

http://www.nltk.org/_modules/nltk/classify/naivebayes.html

在顶部,他们解释了他们计算概率的方式。

我想了解这个算法如何计算我的语料库的概率。

我(目前)有大约500个文本文件,其句子标记为正面,198标记为负面。

因此概率P(pos)是500/619而P(neg)是198/618。到目前为止一切都很好。

P(f1 | label)是标记为pos的句子中出现的一个特征(在我的例子中是一个单词)的概率,对吗?

因此,如果在我的500个文本文件中,我在所有标记为ps的句子中总共有3000个独特单词和4500个单词,并且所述单词在标记为pos的句子中出现70次,则此概率为70 + 1 /( 3000 + 4500),对吧?

然后它说"而不是明确地计算P(特征),算法就是这样 计算每个标签的分母,并将它们标准化 总和为一: "

那是什么意思?这SUM[l]( P(l) * P(f1|l) * ... * P(fn|l) )究竟是什么意思?

鉴于句子"这是一种非常危险的效果"它应该标记为pos。 使用上面使用的数字,这个句子成为pos的概率是:

(500/619)* P(this | pos)*(是| pos)*(a | pos)......等/(无论总和(L)是什么意思)

是正确的吗?

另一个问题:我在这里读到Different results between the Bernoulli Naive Bayes in NLTK and in scikit-learn,NLTK使用多项式朴素贝叶斯。你怎么能告诉那个形式的源代码?

0 个答案:

没有答案