在最大概率法分词的程序中,由于每个词出现的次数分布非常不均匀,而且我们要计算每个词出现的概率,对于出现次数比较少的词概率就很小,求句子中词的概率之积的时候,需要将好多非常小的数作乘法,可能会将超出计算机所能表示的数的最小范围。为了便于计算,常常要将每个词的概率求对数后在进行计算,但是由于对概率求对数后变为负值,因此要求对应的相反数。所以一个词出现的次数越多,最后求得对应的值越小,我们将这个值称为这个单词的代价。单词出现的次数越多,该单词的代价越低;否则代价越高。
第一部分 公式推导
你看出了什么规律?当对所有的单词的频数都乘以一个固定值的时候,频数较少的词也有可能是总体费用较低的。
更一般的情况,将公式9延伸到更多的词,说明了什么?
结论:
(1)随着k值增大,程序有将句子切分为更多的较短的词的倾向。即使这些较短的词出现的频率并不多,但是词的长度短意味着可以切出的词的数量多。由于k的存在,每个词都会获得一定比例的权重加成,积少成多,众多的词的累积效应最终会超过出现次数较多但是较长的词。通俗来说就是,双拳难敌四手,哈哈。
对语料选取200个句子进行测试,分别取惩罚系数k为表中所列数字,测试结果如下:
序号 | 系数 | 准确率 | 召回率 | 交集型歧义 | 未登录词语 | 组合型歧义 | 总数 | 标准切分数目 | 切分得到数目 | 切分正确数目 |
1 | 0.1 | 95.26% | 98.98% | 10 | 255 | 44 | 309 | 5377 | 5587 | 5322 |
2 | 0.3 | 95.28% | 99.03% | 9 | 255 | 42 | 306 | 5377 | 5589 | 5325 |
3 | 0.5 | 95.30% | 99.07% | 8 | 255 | 42 | 305 | 5377 | 5590 | 5327 |
4 | 0.8 | 95.30% | 99.07% | 8 | 255 | 42 | 305 | 5377 | 5590 | 5327 |
5 | 1 | 95.28% | 99.07% | 9 | 255 | 41 | 305 | 5377 | 5591 | 5327 |
6 | 5 | 95.21% | 99.33% | 6 | 263 | 30 | 299 | 5377 | 5610 | 5341 |
7 | 10 | 94.85% | 99.42% | 6 | 284 | 25 | 315 | 5377 | 5636 | 5346 |
1.对上表的内容进行验证:
(1)当k的值为0.1、0.3、0.5、0.8和1.0时,有如下切分错误。当k的值为5.0和10.0时,错误消失。 假设有如下公式:
cost(A) + cost(B) < cost(C) + cost(D)
- log(ka/M) – log(kb/M) < - log(kc/M) - log(kd/M)观察公式10,该公式和k值无关,因此不能通过改变k值的方式来消除这样的交集型歧义。
原文地址:http://blog.csdn.net/u010189459/article/details/37942135