关于文本的逐点互信息

时间:2012-11-21 08:06:35

标签: statistics machine-learning nlp

我想知道如何计算文本分类的逐点互信息。更确切地说,我想按类别对推文进行分类。我有一个推文数据集(有注释),每个类别的词都有一个字典属于该类别。根据这些信息,如何计算每个推文的每个类别的PMI,以便在其中一个类别中对推文进行分类。

1 个答案:

答案 0 :(得分:29)

PMI衡量一个功能(在您的情况下是一个单词)和一个类(类别)之间的关联,而不是文档(推文)和类别之间的关联。该公式可在Wikipedia上找到:

                  P(x, y)
pmi(x ,y) = log ------------ 
                  P(x)P(y)

在该公式中,X是模拟单词出现的随机变量,Y模拟类的出现。对于给定的单词x和给定的类y,您可以使用PMI来确定某个要素是否提供信息,并且您可以在此基础上进行要素选择。功能较少通常会提高分类算法的性能并大大加快速度。然而,分类步骤是分开的 - PMI只能帮助您选择更好的特征来提供给您的学习算法。


编辑: 我在原帖中没有提到的一件事是PMI对词频敏感。让我们将公式重写为

                  P(x, y)             P(x|y)
pmi(x ,y) = log ------------ = log ------------ 
                  P(x)P(y)             P(x)

xy完全相关时,P(x|y) = P(y|x) = 1pmi(x,y) = 1/P(x)。不太频繁x - es(单词)的PMI得分高于频繁x - es,即使两者都与y完全相关。