基于互信息和左右信息熵的短语提取

1 互信息和信息熵的概念
2 算法流程
3 代码实现

1 互信息和信息熵的概念

1.1 互信息

互信息体现了两个变量之间的相互依赖程度。二元互信息是指两个事件相关性的量, 计算公式如下:


image.png

互信息值越高, 表明X和Y相关性越高, 则X和Y 组成短语的可能性越大; 反之, 互信息值越低,X 和Y之间相关性越低, 则X 和Y之间存在短语边界的可能性越大。

公式中的X和Y指的是两个相邻的单词,P值是它的出现概率。

具体到例子,“算法→研究”一共出现了2次,而二阶短语一共有191个,所以上式的P(X,Y)= 2 / 191。同理可以求出P(X)P(Y)。

如此,可以对所有二阶短语计算互信息,排序后得出短语以及其mi值,以及它们的互信息的值。

1.2 信息熵

熵这个术语表示随机变量不确定性的量度。具体表述如下: 一般地, 设X 是取有限个值的随机变量( 或者说X 是有限个离散事件的概率场) , X 取值x 的概率为P ( x ) , 则X 的熵定义为:


image.png

左右熵是指多字词表达的左边界的熵和右边界的熵。左右熵的公式如下:


image.png

具体计算方法是,以左熵为例,对一个串左边所有可能的词以及词频,计算信息熵,然后求和。
如果熵是0,说明它只有一种接续。

2 算法流程

该算法主要是选取的互信息和熵这两个统计量,分别从词串内部的结合紧密程度和词串外部的边界度量入手抽取短语。

前期分词,去重、过滤等预处理就不在说了。

2.1 寻找种子词

  • 先将需要计算领域词(目标领域词)和其他领域词表中的词按频次排序。
  • 再将目标领域词表同其他领域词表导入同一个数据表中,对同一个词在两表中的排序位次值做除法。
  • 在目标领域词表中按照位序比值设定阈值抽取词语。

通过上述位序比的方法 , 抽取领域种子词。最后我们将目标领域和其它领域共有的按照频次排序前5000 词作为领域种子词。

2.2 内部边界的判定方法(两阶互信息最有效)

从统计学的视角而言 ,多字词表达内部词语之间的结合紧密程度依赖于词语的共现频度 。如果某些互相成搭配的词语串反复大量出现, 即它们的共现频度越高 ,那么词语串的结合紧密性越强。因此,高频的词语串可能是一个完整的多字词表达。具体计算方法介绍同上。

2.3 外部边界的判定方法

通过熵来衡量,左右熵是指多字词表达的左边界的熵和右边界的熵 。
举例说明:

W表示N-gram的词语串 ,W ={w 1 , w 2 , …, w n }。A表示词串左边出现的所有词语的集合, a表示左边出现的某一个词语;B表示词串右边出现的所有词语的集合,b表示右边出现的某一个词语。如果词串的EL和ER数值越大 , 即词串W左右出现的词语越多, W就更有可能是一个完整的多字词表达。

3 代码实现


END

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容