一、新词
新词发现又叫未登录词识别,我认为可以包括两种形式:1.命名实体识别 2.普通新词发现
命名实体识别我们在另一章中专门讨论,本节只讨论普通新词发现。
目前新词发现可以分为两类算法:无监督,有监督。无监督主要通过互信息,左右熵来发现,有监督主要通过
标注,例如CRF+深度学习
二、基本概念
现在基于统计方法的新词发现主要通过词内互信息(凝聚度),词间的左右信息熵来确定,因此我们向明确一下基本
概念。
1.互信息:凝聚度(Pointwise mutual information)
互信息是:描述两个随机变量相互依赖性的度量,关系越强互信息值越大
公式:
P
M
I
=
P
(
x
,
y
)
P
(
x
)
∗
P
(
y
)
PMI = \frac{P(x,y)}{P(x)*P(y)}
PMI=P(x)∗P(y)P(x,y)
如果x,y独立 ,那么pmi等于1。如果不独立,则PMI大于1,当PMI足够大的时候就表示凝固度足够高。拿 “知”、“乎” 这两个字来说,假设在 5000 万字的样本中, “知” 出现了 150 万次, “乎” 出现了 4 万次。那 “知” 出现的概率为 0.03, “乎” 出现的概率为 0.0008。如果两个字符出现是个独立事件的话,”知”、“乎” 一起出现的期望概率是 0.03 * 0.0008 = 2.4e-05. 如果实际上 “知乎” 出现了 3 万次, 则实际上”知”、“乎” 一起出现的概率是 6e-03, 是期望概率的 250 倍。也就是说两个字越相关,点间互信息越大。
2.信息熵
公式:
H
=
∑
i
=
1
n
P
(
i
)
∗
l
o
g
P
(
i
)
H = \sum_{i=1}^{n}{P(i)*logP(i)}
H=∑i=1nP(i)∗logP(i)
熵描述的是信息的不确定性,熵越大,不确定性越强,例如“萝卜”,左边可以有“吃萝卜”、“腌萝卜”、“炒萝卜”、“炖萝卜”,左边的词越多,代表萝卜的左熵越丰富,那“萝卜”成词的可能性就越大。
3.左右熵
左右熵是根据信息熵来算的。
我们用信息熵来衡量一个文本片段的左邻字集合和右邻字集合有多随机。考虑这么一句话“吃葡萄不吐葡萄皮不吃葡萄倒吐葡萄皮”,“葡萄”一词出现了四次,其中左邻字分别为 {吃, 吐, 吃, 吐} ,右邻字分别为 {不, 皮, 倒, 皮} 。根据公式,“葡萄”一词的左邻字的信息熵为 – (1/2) · log(1/2) – (1/2) · log(1/2) ≈ 0.693 ,它的右邻字的信息熵则为 – (1/2) · log(1/2) – (1/4) · log(1/4) – (1/4) · log(1/4) ≈ 1.04 。可见,在这个句子中,“葡萄”一词的右邻字更加丰富一些。