互信息和左右熵的新词发现

是由Matrix67牛人提出来的,实现的方式也有很多人解决了。我只是写个最简单的介绍和实现方式给自己做做笔记罢。该算法最主要是基于互信息和左右熵的计算规则,而这两个概念都是出自信息论的范畴,其一者称内部凝和度,其二者称外部自由度或者边界自由度。

第一是最小互信息,因为互信息越大说明相关度越大,将n-gram分好的词计算互信息,如果低于阈值,则说明不能成词。

第二是最小熵值,因为熵也是越大说明周边词越丰富,计算其左熵和右熵的最小值,如果最小值低于阈值,则说明不能成词。

第三个是最少出现次数,为什么有这个数呢?假设前后两个词是完全相关的,出现400次,总共8000词,那么互信息=log((400/8000)/(400/8000)(400/8000)),约掉之后剩下log(8000/400)。但是一个词如果从头到尾出现了一次,但是并不是单词,则互信息为=log((1/8000)/(1/8000)(1/8000))=log(8000/1),那么它的互信息会更大。取最少出现次数也会出现问题,就是一些低频率的词不能发现。