当前位置:   article > 正文

学习NLP的第20天——基于信息熵和互信息的新词提取实现_热词提取计算互信息熵和左右邻接熵得作用

热词提取计算互信息熵和左右邻接熵得作用

在对一个新鲜领域的文本进行分词之前,我们往往需要先对文本中包含的新词进行提取,并将新词制作为用户词典,提供给分词器,以提高分词器的准确率。

因为一个在新鲜领域中往往会包含很多我们意想不到的词语,比如神超直播间弹幕中频繁出现的英雄联盟领域游戏术语,又比如网络小说中的各种名字、境界等。

我们使用神超直播间的弹幕的8个小时的时间切片和一部玄幻类网络小说《最强修真打工仔》作为样例进行新词提取。

新词

首先,我们需要确定一下新词的概念。因为每个词对不同的人来说含义各不相同,所以我们将新词定性为词典不包含的词。

对于新的领域语料来说,往往体量巨大(神超直播间弹幕897KB,《最强修真打工仔》6923KB),通过人工标注、监督学习的方法寻找新词工作量太大,因此在新词提取方面主要使用无监督学习的方法。

通常而言,如果一个文本片段,它前后的内容搭配非常丰富,而片段内部结构又相对固定,那么这个片段则有很大的概率是一个词。

基于此,我们使用信息熵来衡量片段前后搭配的丰富程度,使用互信息来衡量片段内部结构的固定程度。

信息熵

信息熵是指信息所包含的信息量,也就是通过这条信息可以减少的不确定性。简单来说,就是包含的情况是否丰富,情况越丰富,信息熵越大。其计算公式为:

在这里插入图片描述

其中X为离散型随机变量, 在新词提取中就是片段左侧或右侧的邻字情况,每个x都是一个出现过的邻字,而p(x)就是那个邻字出现的频率。

我们使用如下4条弹幕作为样例文本来解释:

亚索打假赛
追着亚索打
这寒冰追着追着亚索打杀
卖亚索上3召唤啊
  • 1
  • 2
  • 3
  • 4

在以上4个句子中,“亚索”左边邻字包括3种情况:始##始、着、卖;当底数为2时,“亚索”一词左侧的信息熵为:

在这里插入图片描述

可见,当邻字可能越丰富时,该侧的信息熵就会越高。

互信息

互信息是指两个离散变量X和Y之间的相关程度。简单来说,就是X和Y同时出现的几率越大,互信息越大。其计算公式为:

在这里插入图片描述
在新词提取过程中,我们将片段中的一部分视作X,一部分视作Y。此时两者的联合分布只有一个取值,相当于只有一个求和项,此时p(x,y)也不必再计算了,此时的公式简化为:

E:\【有道云笔记】\weixinobU7VjnGIqORtayCj-b7o8rEdBNc\5000e8b26f674fab9767837d0eb6cc50

其中p(x)是片段中x部分的出现频率、p(y)是片段中y部分的出现频率,p(x,y)是片段中x,y两部分的共现频率(也就是片段的出现频率)。仍然以“亚索”一词为例,因为文本的总字数为29个,所以“亚”、“索”和“亚索”的出现频率都是4/29;此时“亚索”一词的互信息为:
E:\【有道云笔记】\weixinobU7VjnGIqORtayCj-b7o8rEdBNc\bbfaece7e1e64084a9bad8600dc01534
可见,当片段中各个部分的共现频率越高,互信息越高。

当片段场长度大于等于3个字的时候,可能有多种片段组合按时,计算时可以选取所有组合方式中互信息最小的那一种作为代表。

利用HanLP的实现

下面我们实现HanLP实现基于以上原理的新词提取:

from pyhanlp import *

def extract(corpus):
    word_info_list = HanLP.extractWords(IOUtil.newBufferedReader(corpus), 100, True) # 第2个参数为提取的词语数量,第3个参数为是否过滤词典中已有的词语
    for word in word_info_list:
        print(word.text, end=",")

if __name__ == "__main__":
    extract("data/神超直播间弹幕切片.txt")
    print()
    extract("data/最强修真打工仔.txt")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

运行结果

亚索,超哥,火男,雷霆劫,鬼书,吃鸡,关了吧,JS,千珏,打不过,双王,之子,掠食,轮子妈,蒙多,维鲁斯,鸟盾,狂战,掠食者,复活甲,什么时候,女大学生,第八,海洋之子,学不会,EZ,牛批,凌风,代码发,大招,双火炮,婕拉,速八,风女,烂分,正义之手,月下双,叫神,岩雀,HH,主C,韦鲁斯,发牌员,羊刀,DD,开挂,琪亚娜,ID,NB,星小法,VN,月下双王,吃土,卢锡安,水友,龙牙,皎月,霸哥,假赛,吃利息,四秘,巨九,EE,学技术,BU,反甲,IA,GG,AP,三星小法,AN,阿木木,野怪,四沙漠,拿不到,卢登,科技枪,三影三,炫炫,几点,兄弟拿,HA,第七,锤石,锁子甲,NG,BUFF,留着,来学技术,JI,妮蔻,播到几点,LL,七人口,让他,手速,DDD,被吹,魔抗,这把第六,
段尘,刘玉蓉,李政羽,绿袍老祖,并没有,松川裕斗,凤后,七七,若曦,凌薇,杨婷婷,柴田比吕,龙刃,杨七七,樱花组织,凤凰真,本多刚辉,件事,龙刃圣剑,焦红艳,东皇,妖族,秀哉,孟若曦,凤凰真血,二十,宋家,段时间,立刻就,东皇钟,秀哉和尚,小徐,雷止盈,黑山魔女,魔玲,月彤,吉见美纱,无极剑,玄清道,没有任何,仙灵之,金仙,晓曼,中海市,狼王啸月,清水成美,所有人都,储物袋,焦清明,件事情,第三,千落,星影麒麟,修仙者,张柏,者榜,五十,沈月彤,青莲和,天机子,墨离秋,越智遥大,张大壮,怎么可能,郭晓曼,内山理久,寒千落,雷战,想到这里,妖文,曹梦茹,吕罗康,鬼去联盟,妖帝,第一次,实在是太,八百,缥缈真仙,血手堂,仙灵之气,十八,芸姐,千万,薛琳,服部一马,房间里,无极剑意,铁雄,消失不见,第四,五百,闻言,凝光剑,百二十,天者榜,松下一郎,六十,张九指,没有丝毫,新田家族,
  • 1
  • 2

学习参考文献:《自然语言处理入门》(何晗):9.1、《互联网时代的社会语言学:基于SNS的文本数据挖掘》(Matrix67)

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号