统计分词/无字典分词学习(4):候选片段的过滤方法,互信息过滤

      从上一篇文章的分析中可以看到,top100万的片段中,只有不到3万是真正的词,因此,我们要把一些不是词的片段给过滤掉。

      一个片段要成为一个词,首先其内部的字母之间连接要足够紧密。一般可以用mi来衡量这个指标,如两个字母"h","e"要成为一个词,其出现的概率P("he")应该大于其完全独立的概率,即P("he")>P("h")P("e"),这时,我们才认为“he”是一个词。而对于“she”这样多个字母的片段,而不是分割成为“sh e”,“s h e”,“s  he”,就是因为P(she)大于这些分割的出现概率,也就是P(she)>P(sh)*P(e), P(she)>P(s)P(h)P(e)............,因此,我们只要找出一个片段最大的概率分割形式,然后将其概率与片段本事概率的大小比较即可。

          如果一个片段概率小于的最大分割形式的概率,则我们去掉这个候选片段,否则,则保留,我们其实是寻则的mi的下限值。如对于候选片段ab,P(ab)/(p(a)p(b))>=1,我们才留下ab作为候选词,否则过滤掉。

        我们对top100万的片段进行处理,最终删除掉大概3万个词,误删除率大概是3.4%。大部分的片段的最大概率切分形式就是片段本身,也就是mi的下限为0。


         这里我们只关注词典里面的词频top3万的词,其它的都暂不算做是词。因为这些长尾词词频非常低,用统计的方法很难与其它的ngram片段区别出来,而且对整体分词的效果影响不大。而top3万的词,在全部语料中token中,这些词比例超过95%。

过滤掉的词中,大概只有不到4%词是字典里面的词,也就是误删除率只有4%,说明mi这个特征非常不错。

但top100万的词中,只有2.2万是我们认为的词,但现在只过滤掉了3万个词。而我们取的都是mi的下限,而大部分的片段的mi下限都是0,这样就缺乏区分性。我们可以看下剩下的片段大部分都是这样的:

         也就是说,虽然片段本事的概率虽然非常大,但是,和其分割开的分词形式比

因此我们可以进行进一步的处理,就是求一个片段除了自身之外的分割形式中,概率最大的形式,然后比较片段概率和次优的分割形式的概率,求得一个新的mi,这样大部分词的mi就会有比较大的区分。

因此我们可以进一步的提高mi值的阈值,过滤掉更多的词,这样就有一个度的把握,如阈值太高,过滤掉的词会增加,但误删除率会增加,因此有多次试验,确定一个比较合适的阈值。

我们可以做一个mi的分布图,具体如下图所示:

猜你喜欢

转载自blog.csdn.net/wangliang_f/article/details/17580617