汉语盲文翻译的研究*

江铭虎1,2 朱小燕2 夏莹2 包塔2 谭刚2

1清华大学中文系计算语言学研究所 北京100084

2清华大学计算机系智能技术与系统国家重点实验室 北京100084

一、盲文到汉字的翻译原理

在汉语盲文到汉字的转换中,由于盲文扫描识别或盲文码输入不可能达到100%正确,汉字的一字多音、一音多字和自然语言的歧义现象,在将扫描盲文或盲文码输入与拼音的转换、拼音与汉字转换的每一个环节,均可能发生歧义或转换错误,因此需利用知识库、统计信息库和相应的理解后处理进行多层次的歧义校正和纠错处理。在将盲文转换为拼音、拼音转换为汉字时,利用汉语的拼音知识、词知识、语法知识和语义等知识、统计信息和相应的理解后处理进行多层次的歧义校正和纠错处理,并通过信息反馈来纠正前端的扫描盲文或盲文码输入的错误,实现由盲文到汉字的相互转换。

(一)汉语盲文综合知识库的组成

l         盲文电子字典,包括词类标注、短语分析词典,盲文至拼音、音字和字音转换字典等。

l         规则库,包括词法规则、短语规则、句法规则和汉语盲文分词连写规则。盲文到拼音的转换规则较多,包括声韵母相拼规则,音调、标点符号、缩写字、重复记号、哑音等规则;常用缩写词,盲文数字﹑字母符号、整体认读音节,同音分化法,哑音定字法等规则。分词连写是汉语盲文独有的重要规则,它包括一般规则、各类词和词组规则,盲文的构词知识、词法知识和语料库统计知识,目的是处理歧义切分、一字多音和一音多字的现象。

l         统计信息库,包括建立在1700万字真实语料基础上的词、邻接词同现概率统计、标注串及词类间联接依存关系统计知识。

(二)盲文到拼音转换中的歧义

由于盲文字符是基于6点制的,可以利用盲文ASCII码与盲文字符的对应关系,以这6个圆点为盲文字符进行编码,建立一个记录所有合法的汉语拼音组合的信息表即音码表。它记录在一个合法的汉语拼音下,可查询哪些调是与实际汉字对应的。引入音码表后,可以解决大部分盲文到拼音转换中的歧义问题。但仍有一些特殊的歧义无法排除,只能采用综合知识库中的规则进行特殊的排歧,这样可使盲文到拼音的转换率几乎达100%。

(三)Markov 模型及平滑[6]

假设自然语言服从Markov源,从而把语言中的某个语法单位(单音节字﹑词﹑词性或其它语法类)看成是Markov过程的状态间的一个“转移”,利用这些单位间的同现概率或互信息概率等作为状态间的转移概率来处理各种自然语言。对于二元模型,由于存在矩阵稀疏问题,其平滑计算公式为:

                                                     (1)

其中:是经平滑后的CiCi-1后的条件概率;是训练模型中CiCi-1后的条件概率。是训练模型中Ci的单概率。可以用Markov插值从语料中迭代来求。我们从工程角度,根据经验来选择的值。二元模型中,

 (四)词级别二元模型中平滑算法的改进

在一个词级别的二元模型中,一个一字词Ci在二字词Ci-2 Ci-1后的条件概率平滑公式为:           (2)

(2)式再加入一项P(Ci|Ci-1)进行平滑以便引入更多的信息。(2)式可变为

     (3)

=9:3:1,且。另外,在求一个二字词Ci-1Ci在一字词Ci-2后的条件概率P(Ci-1Ci|Ci-2)时,若因为数据稀疏问题而造成此概率在模型中为零概率,用其它概率来推导一个近似公式:

    (4)

(4)式,P(Ci-1Ci|Ci-2)可以用P(Ci-1|Ci-2)P(Ci|Ci-1)来近似。同理,可证:

                                     (5)

(五)拼音到汉字转换中的转换多部图

文本框: 图1 拼音到汉字转换的多部图假设某一个拼音句子YT个字构成,Y=y1y2…yT。在这个句子的前后各加上分界符,构成#y1,y2,…,yT#。设拼音yi对应的汉字候选为。对与yi对应的每一个汉字候选都构造一个结点,所有与yi对应的结点构成一级。级与级之间是全连接的关系,即第i级的每一个结点与第i+1级的每一个结点之间都有一条边。边上的权为后一级汉字在前一级汉字后出现的条件概率。所形成的带权多部图如图1所示。图中,每一条边都是带权边。例如,C11C21之间边上的权为P(C21|C11),表示C11后出现C21的条件概率。

(六)Viterbi算法

Viterbi算法是一种动态规划算法。它适于在一个带权的多部图中快速搜索一条最佳路径。它分为向前和向后两个过程。在向前过程中,用它计算由初始结点到每一个结点的最佳路径,并且保存这条路径。在向后过程中,用它根据保存的结果反向得出整个图的最佳路径。采用Viterbi算法在图1所示的拼音到汉字的转换多部图中搜索一条最佳路径,
其递推公式为:

,  j=1,2,…,u1;

,  j=1,2,…,ui;

,  j=1,2,…,uT

文本框: 图2一N-Best树,已找出前四选式中G1(C1j), Gi(Cij), GT+1(#)分别为第1步、第I步和第T1步的最佳路径累积概率记录。通过计算,可得到C*就是拼音串对应的汉字串。

  (七)N-Best搜索算法

N-Best搜索算法可在图中找出具有头N大似然度的汉语句子。当图中有多条路径进入同一个结点时,Viterbi算法只对最佳路径进行扩展。由于Viterbi算法只求整个图的最佳路径,进入同一个结点的其余的路径便被舍弃,不再考虑。假设最佳路径已由Viterbi算法找到,那么次优路径应该与最佳路径共享某一段路径。因此,为了寻找次优路径,应该考虑那些与最佳路径共享某一段的所有可能的路径,即应对最佳路径的所有结点进行扩展,在扩展后的路径中寻找次优。N-Best搜索算法分为前向和后向两个过程。在前向过程中,对图中每一个结点,计算由初始结点到此结点的最佳路径,并且记录此最佳路径的累计分值和指向路径上前一个结点的指针。在后向过程中,通过比较进入终止结点的路径就可以得到最优路径。然后,为了使求次优路径时不会又选到最佳路径,把最佳路径整个复制到一个所谓N-Best树的结构中。对N-Best树中的每一个结点计算后向累计分值。后向累计分值与前向累计分值相结合,使之能够快速方便地计算出某一条路径的总分值。对N-Best树上的所有结点进行扩展,比较扩展后所有路径的分值,最大的那个就是次优路径。然后把次优路径与最优路径不同的部分复制到N-Best树中。接着计算新加入结点的后向累计分值。假设前N选路径已经求出,那么第N+1选路径可以通过比较从当前N-Best树中扩展出的路径来求得。

二、系统实现

系统实现需要把盲文图像的识别,盲文到拼音的转换,以及拼音到汉字的转换这3大模块进行系统的集成,并且生成一个可视化的界面。整个集成程序是使用Visual C++文档-视结构的程序。为了使转换具有较好的封装性,分别对盲文到拼音和拼音到汉字的转换编了两个过程类加入集成程序,实现这两个转换系统。

(一)实验

实验是从国家教委中等专业学校“八五”规划教材《语文》第一册中节选出来的。一共选了51页。此测试集中的文档类型包括说明文、散文、相声等。测试盲文到汉字转换正确率,步骤如下:

1、把书面盲文扫描成图像,使用盲文识别模块把图像识别成盲文码文件,手工改正识别中的错误,把盲文码文件转换成拼音码文件,继而转换成汉字文件。

2、在标准文本中摘出与之相应的汉字段,形成标准汉字文件,转换而得的汉字文件和标准汉字文件送入比较程序,得到比较结果,并把结果记录下来。

对于盲文到汉字转换系统的性能,做了含专有名词以及不含专有名词测试,N-Best测试。部分测试集测试的结果如表1所示。

1 盲文到汉字转换率和N-Best搜索算法测试(N=5)

盲文文件名Pinyin

总字数

转换正确字数

转换正确率 / %

五选
正确字数

五选正确率 / %

11

281

275

97.86

279

99.29

12

279

265

94.98

275

98.57

13

285

278

97.54

283

99.30

14

256

254

99.22

255

99.61

15

267

263

98.50

267

100.00

55

267

246

92.13

258

99.63

56

284

263

92.61

272

95.77

57

224

194

86.61

210

93.75

58

255

223

87.45

242

94.90

59

244

230

94.26

236

96.72

95

274

249

90.88

254

92.70

96

264

257

97.35

258

97.73

97

290

277

95.52

278

95.86

98

218

195

89.45

200

91.74

99

252

231

91.67

236

93.65

110

269

238

88.48

255

94.80

111

285

253

88.77

265

92.98

112

288

254

88.19

265

92.01

113

270

224

82.96

238

88.15

114

164

160

97.56

162

98.78

合计

5216

4829

92.58

4988

95.63

使用完全测试集对系统进行了测试(含和不含专有名词(人名,地名等)),测试结果见表3

2 转换系统完全测试集测试结果(含专有名词和不含专有名词)

盲文文件名Pinyin

总页数

总字数

正确字数(

正确率

%

正确字数

(不

正确率

(不%

1-10

10

1950

1912

98.05

1918

98.36

11-20

10

2714

2609

96.13

2615

96.35

40 –49

4

1022

965

94.42

969

94.81

55 –64

8

1935

1780

91.99

1840

95.09

90 –99

9

2295

2140

93.24

2221

96.78

110 -119

10

2604

2410

92.55

2481

95.28

合计

51

12520

11816

94.38

12044

96.20

以上是使用Viterbi搜索算法进行1选搜索时的转换正确率,或N-Best搜索算法进行的测试。其中,对每一个拼音句子进行前五选的搜索。并且,测试中只对那些系统认为有错误的1选句子才进行N-Best搜索,即使用了1选到N选转换判据。

(二)实验分析

1、盲文到汉字转换系统的转换正确率高。一方面,盲文到拼音模块的转换,解决了许多特殊字符无法转换的问题。另一方面,拼音到汉字模块的转换由于引入了统计模型,考虑了局部相关性,转换率有明显的提高。

2、盲文到汉字转换系统(含专有名词)测试结果为:94.38%。这个结果应该是一个比较客观的结果。测试的文档包括各种类型:Pinyin1-10, Pinyin11-20是说明文;p40-49p110-119是散文;p55-64是一段相声(口语味很浓);p90-99是介绍产品的一篇说明文。

3、在完全测试集中剔除专有名词后,转换正确率由94.38%提高到96.20%,提高了约两个百分点。部分测试集上的结果显示,1选正确率为92.58%5选正确率为95.63%,提高了3个百分点。这表明N-Best搜索算法用于盲文到汉字的转换是合理的,能提高系统的性能。

三、汉字到盲文的翻译

       实现汉字到盲文的转换,首先应将汉语进行分词连写,再转换成拼音,然后由拼音转换成盲文。分词连写是汉语盲文独有的重要规则。分词是把一个一个的词分开来写;连写是按照盲文的特殊性,避免音节结构过于松散,便于摸读,将一些词连起来写。分词连写,必须遵循汉语语法、语言的逻辑性、习惯性和音节长短程度的基本规则。盲文分词连写系统所用资源为按盲文分词规则修改的盲文汉语词库,在原汉语词库中,查找词条进行匹配的过程,也就是根据盲文分词的十七条规则对词条进行添加和修正的过程。由于拼音是以分词连写的形式出现的,音字转换对照表、语料统计信息库要考虑分词连写的因素,在汉字到盲文的转换过程中要克服一字多音和一音多字的现象。应用自然语言后处理来改善字音转换率。

(一)盲文分词连写系统由以下模块组成:

1、基于词频统计信息库

基于语料统计的方法能够真实反映和全面覆盖汉语的各种语言现象,对语言处理提供了较客观的质量;该方法在充分地统计语料时,利用这些统计概率数据库去合理地利用上下文相关信息和其它知识来提高语言处理正确率。

2、建立规则知识库

知识库包括常识性知识与启发性知识。常识性知识是用来切分非歧义字段所需的词法知识;启发性知识是用来消除歧义切分所需的知识,包括词法知识、句法知识甚至语义知识。它对句子的切分过程就是生成该句子的词语树的过程。影响分词精度的主要因素是歧义切分问题,解决歧义切分的主要方法是利用构词知识,如词表是汉语词法知识最直接的资源,展示了汉语的构词规则,支持汉语分词的相当一部分资源就是词表的词法知识。

3、设立切分标志

在汉语中存在着许多自然切分标志,如标点符号等,词不能跨越这些标点存在。另外存在一些非自然切分标志,如只能充当词首字或词尾字的字、不构词的单字词、复音节单纯词、拟声词等,词不能跨越这些标志而存在。设立切分标志首先收集众多的切分标志,分词时先找出切分标志,把句子切分成些较短的字段,然后进行细分。

4、利用邻接约束知识

利用自然语言中的邻接约束条件排除不合法切分来提高分词精度。汉语中某些词在句法结构中不能拥有或只能有条件拥有某些固定位置,不同词类的词之间具有特定的约束,某些单音节动词只在特定离合格式中出现等。这些语言现象可以用来解决部分歧义切分问题。邻接知识的约束方法是基于汉语词法和语义邻接知识以消除歧义。

5、利用词典进行正向反向最大匹配

利用词典进行正向或反向最大匹配来进行分词,侧重点放在检错和纠错上,通过对正、反向最大匹配产生的分词结果进行比较,一致的部分认为是正确的,不一致的部分结合上下文相关信息选取一种切分。因为对于交集型歧义切分字段来说,其正反向最大切分结果是不同的,而交集型歧义切分字段占所有歧义切分字段的90%左右。

(二)汉语转换成拼音

在汉语转换成拼音的过程中,由于汉字有多音字问题,因此,处理中先将汉语切词,词的多音现象比字的多音现象少得多,三字以上的词很少有多音现象。另一方面要研究汉语盲文,必须研究分词连写规则,将汉语用盲文分词连写规则分词后,用汉语词与拼音的对照库进行词到拼音的转换就可大大减少多音现象。

(三)拼音转换成盲文

    分词连写转换成拼音后,由拼音转换成盲文,它主要采用规则方法,利用各种盲文码与拼音的对照库进行转换。包括阿拉伯数字符号与盲文的ASCII码值对照表;拉丁字母表与盲文的ASCII码值对照表;盲文ASCII码与声母的对照结构表;盲文ASCII码与韵母的对照结构表;盲文ASCII码与标点符号的对照结构表;盲文ASCII码与盲文点字码的对照表(共64个);盲文拼音码的几种特殊形式;盲文若干常用词的缩写对照结构表。以上各个对照表请见附录。利用上面的对照库和盲文规则基本可排除所有的在拼音至盲文转换过程中的歧义。

四、结

实现了一个可以实际应用的盲文到汉字的转换系统,利用多种知识解决了盲文到拼音转换过程中的歧义;在拼音到汉字转换过程中,使用改进的Markov模型平滑算法,用ViterbiN-Best算法分别进行1选和N选的搜索,盲文到汉字转换系统的转换正确率为94.38%。若剔除专有名词,转换正确率还可上升2个百分点。对N-Best搜索算法的测试表明5选正确率比1选正确率提高了3个百分点。汉字到盲文的转换,首先是盲文分词连写,然后将词转换成拼音和拼音转换成盲文。盲文的分词连写是基于词频统计信息库,规则知识库,通过设立切分标志,利用邻接约束知识和词典进行正向、反向最大匹配来解决分词连写中的歧义和错误。词到拼音的转换过程中还有部分多音现象是利用相应的理解后处理进行多层次的歧义校正和纠错处理。实验结果表明该汉语到盲文的翻译系统具有很高的转换率,已经接近达到实用水平。

参考文献

江铭虎、朱小燕、张钹 1999盲人计算机的研究进展 《科学(Scientific American)》杂志,2451):1-3.

俞士文、朱学锋、王慧等 1998 《现代汉语语法信息词典详解》,清华大学出版社。

刘源、梁南元、王德进等 1990《现代汉语常用词词频词典》,宇航出版社。

腾伟民、李伟洪 1996 《中国盲文》,华夏出版社。

刘源、谭强、沈旭昆 1994 《信息处理用现代汉语分词规范及自动分词方法》,清华大学出版社、广西科学技术出版社。

Brown P.F, Della Pietra V.J, De Souza P.V, et al. Class-based n-gram models of natural language. Computational Linguistics, 1992, 18 (4): 467-479.

Kannan K, Ostendorf M, Rohlicek J R. Weight estimation for N-best rescoring. Proceedings of ARPA Workshop on Speech and Natural Language, 1992: 455-464.

返回



*国家自然科学基金(69982005),国家重点基础研究发展规划-973(G1998030507-3)和博士后基金资助。