背景
使用熵信息和概率,通过熵信息提高左右邻字丰富程度,通过概率提高内部凝聚程度。
为什么考虑左右邻丰富程度
其中W_neighbor为字符组合左/右邻字的集合。 举个例子,同样是在文本中出现6000+次的“副总裁”和“人工智”,字符组合的左熵都在6左右,但“副总裁”的右邻字包括 { 张,王,说, … } 等147个词,而“人工智”的右邻字只有 { 能,障 } 两种,显然“人工智”不能称作一个词。可以看算法模型中的图。所以说,并不是左右邻字越丰富,就越可以看做是一个词。
为什么考虑内部凝聚程度
比如“演唱者”出现117次,“的演唱”出现275次,从出现频数来看,“的演唱”更像是一个词。但是实际来向演唱者才是一个词。因此考虑每一个字的概率,加入互信息中,得到最终的结果。
为什么需要同时考虑左熵(LE)和右熵(RE)
因此我们在度量一个字符组合的左右邻字丰富程度时,也要注意到LE和RE的差距。比如取二者的最小值,或者将LE与RE差的绝对值(|LE-RE|)纳入考虑范围。
模型
(1)首先得到ngram,例如bi-gram, tri-gram,得到n-gram后,可以依据频率做一个划分,频率较高的词拿出来当作目标词进行考虑, 相当于是bi(两个词), tri(三个词), n-gram(n个词),计算概率是可以在这些词中进行计算。 (2) 计算左熵和右熵(我觉得这里可以先依据停用词做一个划分),左熵和右熵要同时考虑。计算熵时,例如目标词“资源”(2-gram),然后在(3-gram)中,找资源的左邻字和,右邻字。这里在查找过程中,使用字典树(前缀树)的算法。
计算熵:构建好字典树之后,就可以计算左熵和右熵。计算完左熵和右熵之后,通过公式进行融合计算。
求右熵:目标词:人工智,然后求人工智的熵,通过熵,我们计算关于人工智能,人工智障出现的和,反映信息的度量。 2表示的基。第一个表示在“”人工智"前提下不同字的熵和。 上述这一块可以反应出,为什么使用熵可以反应出这个信息。数量越多,熵值是越大的,即拥有丰富的邻字信息。
(3)计算互信息 (4)熵与互信息的融合
左右邻丰富度:
L
(
W
)
=
log
?
L
E
?
e
R
E
+
R
E
?
e
L
E
∣
L
E
?
R
E
∣
L(W)=\log \frac{L E \cdot e^{R E}+R E \cdot e^{L E}}{|L E-R E|}
L(W)=log∣LE?RE∣LE?eRE+RE?eLE? 词的凝聚度:
A
M
I
=
1
n
log
?
p
(
W
)
p
(
c
1
)
?
p
(
c
n
)
A M I=\frac{1}{n} \log \frac{p(W)}{p\left(c_{1}\right) \cdots p\left(c_{n}\right)}
AMI=n1?logp(c1?)?p(cn?)p(W)? 融合后:
?score?
=
A
M
I
+
L
(
W
)
\text { score }=A M I+L(W)
?score?=AMI+L(W)
附录
信息熵
互信息
互信息被用来描述词的内聚程度
相关参考资料
开源讲解链接:https://zhuanlan.zhihu.com/p/80385615 https://baike.baidu.com/item/%E4%BA%92%E4%BF%A1%E6%81%AF/7423853?fr=aladdin (百度百科互信息)
|