发布时间:2023-03-12 13:30
使用熵信息和概率,通过熵信息提高左右邻字丰富程度,通过概率提高内部凝聚程度。
其中W_neighbor为字符组合左/右邻字的集合。 举个例子,同样是在文本中出现6000+次的“副总裁”和“人工智”,字符组合的左熵都在6左右,但“副总裁”的右邻字包括 { 张,王,说, … } 等147个词,而“人工智”的右邻字只有 { 能,障 } 两种,显然“人工智”不能称作一个词。可以看算法模型中的图。所以说,并不是左右邻字越丰富,就越可以看做是一个词。
比如“演唱者”出现117次,“的演唱”出现275次,从出现频数来看,“的演唱”更像是一个词。但是实际来向演唱者才是一个词。因此考虑每一个字的概率,加入互信息中,得到最终的结果。
因此我们在度量一个字符组合的左右邻字丰富程度时,也要注意到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=n1logp(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 (百度百科互信息)