- 注册时间
- 2009-5-22
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 38516
- 在线时间
- 小时
|
楼主 |
发表于 2013-5-15 00:16:27
|
显示全部楼层
上贴提到:
如果只看【字频表.txt】,
把 频数最大的数字 与 频数最大的字 匹配
频数第2大的数字 与 频数第2大的字 匹配
频数第3大的数字 与 频数第3大的字 匹配
……
频数第n大的数字 与 频数第n大的字 匹配
那么匹配结果如下:
——————————
对过生上她。
示李一她达“呢汗激激一对张却喃么喃道讲在生你。
……
——————————
我们之所以说【匹配结果很糟糕】,是因为【读起来不通顺】。
也就是说,匹配结果不符合人们在长期的日常生活中逐渐形成的【用语习惯】。
为了测量【匹配结果】与【用语习惯】的符合程度,
我们利用$18$楼的【词频表】,列出下面的公式:
【匹配结果】与【用语习惯】的符合程度 = $\Pi_{i=1}^n(c(w(i))+1)$,
其中$w(i)$表示【匹配结果】中的第$i$个二元组,
(二元组就是位置相邻的两个字。例如:【匹配结果】的前$5$个二元组是【对过】、【过生】、【生上】、【上她】、【她。】)
$c(w(i))$表示【词频表】里面该二元组的频数。
这个公式意味着:
【匹配结果】里的二元组在【词频表】中的频数越大,【匹配结果】就越符合【用语习惯】。
好了,现在我们在匹配方案为$(1,2,3,...,n)$的基础上,
注:匹配方案为$(1,2,3,...,n)$表示:
——————————————————
频数第1大的数字 与 频数第1大的字 匹配
频数第2大的数字 与 频数第2大的字 匹配
频数第3大的数字 与 频数第3大的字 匹配
……
频数第n大的数字 与 频数第n大的字 匹配
——————————————————
重复执行以下步骤:
1、随意交换两个匹配(例如:将匹配方案从$(1,2,3,...)$变成$(2,1,3,...)$)
2、计算【匹配结果】与【用语习惯】的符合程度
3、如果符合程度增大了,那么采用新的匹配方案,否则撤消第$1$步的【交换匹配】操作
直到“无论交换哪两个匹配,都不能使【匹配结果】与【用语习惯】的符合程度增大”为止。
就得到了下面的匹配结果:程序正在运行,请静候佳音……
#####
我把程序中断了,因为公式需要修改。
修改后的公式如下:
【匹配结果】与【用语习惯】的符合程度 = $p_0*\Pi_{i=1}^n(p(w(i))+10^{-4})$,
其中$p_0$表示【匹配结果】中的第$1$个字出现的概率,
$w(i)$表示【匹配结果】中的第$i$个二元组,
$p(w(i))$表示当第$1$个字定下来之后,该二元组出现的概率。
例如,p(“交换”)=p(“换”|“交”),也就是当第$1$个字是“交”的时候,第$2$个字是“换”的概率。
$10^-4$是用来避免乘积为$0$的平滑参数。
这个公式意味着:
【匹配结果】里的二元组出现的概率越大,【匹配结果】就越符合【用语习惯】。 |
|