发信人: pazee()
整理人: qiang(2001-12-12 00:01:39), 站内信件
|
发信人: yanglc(魂归燕园~~别理我,烦着呢), 信区: Chinese
标 题: 汉字编码标准与识别(四)
发信站: BBS 水木清华站 (Sat Apr 29 20:16:15 2000)
http://www.linuxforum.net/cgi-bin/perl/showpost.pl?Board=chinese&
Number=769&page=2&view=expanded&sb=5
Subject
汉字编码标准与识别(四)汉字编码识别
Posted by
shuyong
Posted on
4/16/2000 9:22 PM
汉字编码标准与识别(四)
汉字编码识别
因为历史和地域原因,汉字有不少编码标准。最常见的是GB2312和BIG5。
在Unicode被完全接受前,他们将共存相当长的一段时间。因此在实际应
用中有必要把它们区分显示。这就是编码识别。
现在在Windows平台下有不少软件可以识别和同屏显示GB2312和BIG5字符
串,已相当准确。但因为其中蕴藏着不小的商机,这些算法都不公开。
现在只见两种算法:
1)算法1 http://www.mandarintools.com
2)算法2 http://202.38.128.58/~yumj/www/chrecog.html
具体的原理可以看发明人的主页。因为这两种算法是通过大量的文章统计
出来的,而实际应用是一行行的识别。所以有必要对短句和词组的有效性
进行验证。这里用了一个取巧的方法,分析对常用词组的识别率。因为句
子大多由这些有意义的词组组成。因为两岸不但编码不同,习惯用语也不
同。所以分别收集了GB词组1.3MB,BIG5词组900KB。通过对比发现一些有
趣的事情。
1)算法1占用内存大些,速度慢些,但识别率高些,并且稳定.误差为8.6%,
算法2正好相反,误差为17.6%。综合两者可以提高一些识别率。
两种算法的识别率
算法1 算法2 综合
GB文件 5% 2.6% 0.7%
BIG5文件 3.6% 15% 5%
2)算法2提到的平均值184的阙值确实存在。但最好的算法不是作者所说的
第二字节算法。而是第一字节和第二字节相加的算法。用三种算法分析GB
词组,都呈正态分布:第一字节算法峰值在195,坡度陡峭,说明平均值集
中。第二字节算法峰值在207,坡度平缓,说明平均值分散。双字节相加算
法介于两者之间。
分析BIG5词组:
第一字节算法有峰值174,但坡度平缓得多。
第二字节算法有峰值160左右,更平缓,呈矩形分布,也就是BIG5常用词组
的第二字节的编码范围分布比较均匀。
双字节相加算法是两者的迭加。
所以较好的算法是:
flag = (a * c1 + c2) / (a + 1) (a = 5 ~ 7为佳)
以184为界,GB词组有5%的词的平均值小于184,BIG5词组有15%的词的平均
值大于184,综合误差为17.6%。也就是说,对于GB码的字符串,算法2不易
错判,对于BIG5码的字符串则相反。如果是GB文件转换为BIG5码,误差要低
些,为15%,好象是GB码的编码和用字比较集中些.
3)算法1识别率提高的可能
GB2312标准的汉字有6763个,BIG5还要多些。而算法1只取600个字进行加
权,似乎少了些。加权系数从1~600规则排列,似乎不能反映字频变化的规
律。对于GB2312,按常用的2:8的规律,应选1200字左右;按小学教学大纲,
小学毕业识字2500字;按小学教学经验,识字900个左右,基本可以读书,
看报,写作文。因此,这加权范围应该在900~1000字左右。但选哪些字,字
频多少,应该是我们的语言文字专家发言的时候了。
4)新的可能算法
两岸汉字编码不同,常用语也不同,那么常用词组也不同。因此从常用词
组分析差别更大,识别率也就更高。可惜没有资料,因此现在只有设想,
没有算法。同时希望更多的人本着GPL大集市的精神,提供更多更好的算法。
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.10.32]
-- ※ 修改:.pazee 于 May 2 00:29:50 修改本文.[FROM: 202.105.97.28] ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.105.97.28]
|
|