我正在尝试使用此链接了解 NLTK。我无法理解 feature_probdist 和 show_most_informative_features 的值是如何计算的。
特别是当“最佳”这个词没有出现时,可能性如何计算为 0.077 。我很久以前就在尝试
我正在尝试使用此链接了解 NLTK。我无法理解 feature_probdist 和 show_most_informative_features 的值是如何计算的。
特别是当“最佳”这个词没有出现时,可能性如何计算为 0.077 。我很久以前就在尝试
那是因为它解释了 NLTK 源代码中的代码,但没有显示所有代码。完整的代码可在 NLTK 的网站上找到(并且在您引用的文章中也有链接)。这些是NLTK 中 NaiveBayesClassifier 类的方法和方法(分别)中的一个字段。这个类当然使用了朴素贝叶斯分类器,它本质上是贝叶斯定理的一种修改,带有一个强(朴素)的假设,即每个事件都是独立的。
feature_probdist
= "P(fname=fval|label),给定标签的特征值的概率分布。它表示为一个字典,其键是(label,fname)对,其值是ProbDistIs对特征值。即,P(fname =fval|label) = feature_probdist[label,fname].prob(fval).如果给定的(label,fname)不是feature_probdist中的key,则假设对应的P(fname=fval|label)为0对于 fval 的所有值。"
most_informative features
返回“此分类器使用的“信息量最大”特征的列表。对于此函数,特征 (fname,fval) 的信息量等于 P(fname=fval|label) 的最大值,对于任何标签,除以 P(fname=fval|label) 的最小值,对于任何标签:"
max[ P(fname=fval|label1) / P(fname=fval|label2) ]
如果仍然不清楚,请查看整个类的源代码,本文的目的不是深入分解 NLTK 的工作原理,而只是给出如何使用它的基本概念。