自然语言处理(NLP)最近获得了如此多的认可,因为有许多现场项目正在运行,现在它不仅仅局限于学术界。NLP的使用案例可以在各个行业中看到,如了解客户的问题,预测用户计划在键盘上输入的下一个单词,自动文本总结等。世界各地的许多研究人员用几种人类语言训练NLP模型,如英语、西班牙语、法语、普通话等,以便在每个社会都能看到NLP的好处。在这篇文章中,我们将讨论最有用的NLP指标之一,称为Pointwise mutual information (PMI),用于识别可以放在一起的单词,并在Python和R中实现。
目录
什么是Pointwise mutual information?
PMI帮助我们找到相关的词。换句话说,它解释了两个词的共同出现比我们偶然预期的可能性有多大。例如,当 "数据 "和 "科学 "这两个词同时出现时,"数据科学 "这个词就有了特定的含义。否则,这两个词的意义是独立的。同样,"Great Britain "也是有意义的,因为我们知道 "Great "这个词可以和其他几个词一起使用,但在意义上不那么相关,比如 "Great UK, Great London, Great Dubai等"。
当单词 "w1 "和 "w2 "是独立的,它们的联合概率等于它们各自概率的乘积。想象一下,当如下所示的PMI公式返回0时,这意味着分子和分母是相同的,然后取1的对数产生0。问题来了,我们在这里想要达到什么目的。我们关注的是那些与另一个词共同出现的概率很高的词,但如果单独考虑的话,其出现的概率并不高。这意味着这个词对有特定的含义。
我们的目标是找到具有高点相互信息的词对。
计算PMI的步骤
让我们通过一个例子来理解。假设你有下面的文本,并要求你在此基础上计算PMI分数。
this is a foo bar bar black sheep foo bar bar black sheep foo bar bar black sheep shep bar bar black sentence