APP下载

基于逆向最大匹配分词算法的汉盲翻译系统

2021-10-15杨文珍徐豪杰汪文妃宣建强吴新丽潘海鹏浙江理工大学虚拟现实实验室浙江杭州310018

计算机应用与软件 2021年10期
关键词:多音字盲文分词

杨文珍 徐豪杰 汪文妃 宣建强 赵 维 吴新丽 潘海鹏(浙江理工大学虚拟现实实验室 浙江 杭州 310018)

0 引 言

盲文是盲人传递获取信息的特殊文字。世界通用的布莱尔盲文符号每方有6个点位,依据点位的单点凹凸状态,每方存在64种排列组合情况,盲人通过摸读不同的点字符号读取信息。汉语盲文是我国盲人摸读书写的文字符号,其对应的是汉字读音而非字形[1]。

纸质盲文书籍厚重、制作繁琐、成本高昂,且现有盲文书多以医学、文学和法学类为主,知识陈旧且覆盖范围狭窄,无法满足我国广大盲人多领域、多层次的阅读需求[2-3]。在当前信息无障碍社会的时代背景下,汉盲翻译系统旨在将电子文本转换为盲文以供盲人获取更丰富的信息[4]。

19世纪50年代,黄乃先生主持设计了以普通话读音为基础、以汉语词组为单位的现行盲文方案,该方案简单易学的特点,使之成为中国大陆普及率最高的盲文方案。为简化盲文,现行盲文通常省略声调,单纯由声母方位和韵母方位组成,图1为“梦想”的不带调现行盲文。

图1 “梦想”对应的现行盲文

本文设计开发的汉盲翻译系统,能够减少多音字的混淆错误,获得较符合分词连写规则的分词结果,有较高的综合汉盲翻译准确率,可以帮助盲人摒弃厚重的盲文书籍,获取更丰富的信息,具有较强实用性。

1 相关研究

不同于英语盲文,字母和盲文符号之间有一一映射关系,汉盲翻译是包含多层次转换的复杂过程。汉语注重语义理解,故汉语盲文的翻译过程不是简单的逐字转换,而是先要根据盲文分词连写规则,对文本做分词连写处理,然后再转换成对应的盲文[5-6]。分词连写原则可以减少语句歧义,避免音节结构过于分散,大幅度提高了盲文阅读效率。中文词语由开放的汉字组成,如果没有严格意义上的组词要求,任意汉字组合在一起都可能成为一个词,词与词之间并不像英文文本有空格作为界限,中文分词一旦出现偏差,极有可能影响对句子的语义理解。因此,中文分词是汉盲翻译的难点之一,且在语音识别、搜索引擎等领域也存在大量应用需求[7]。

目前,中文分词方法按原理主要可以分为三类:基于词典机械匹配法、基于概率模型统计法和基于深度神经网络的语义理解法。后两类分词方法相对词典匹配方法更能克服中文分词中存在的歧义和未登录词这两大难题,但是需要通过大量语料集进行训练,建立语法规则库或含有语义信息的词向量,算法实现过程比基于词典匹配方法繁琐许多,不适用于嵌入式弱计算平台。

基于字典的分词方法性能取决于词典的词汇覆盖率,某种程度上依赖于存储丰富词汇的词典。此外,词典匹配分词方法的准确率与匹配策略、扫描方式也存在关系,由此可将词典匹配分词法划分为四类:逆向最大匹配、正向最大匹配、逆向最小匹配和正向最小匹配。语言学规律已经表明,汉字中词组长度与文本所要表达的信息量大致呈正相关。因此,当词典中匹配到多个词并且词与词之间是包含关系时,最长的词组序列往往是首选。此外,中文语义表达中往往将重要的主干成分后置,所以逆向最大匹配的切分精确度会稍高于正向最大匹配。

根据盲文的表达方式和盲人的阅读习惯,汉语盲文分词应遵守汉语的基本语法逻辑和使用习惯,并符合汉语盲文的分词连写规则,以帮助盲人高效摸读获取知识和信息。为了减少单音节词可能带来的歧义以及为了简化汉语盲文篇幅,汉语中的部分表达在盲文体系中需要连写处理。另外,为避免音节长度过长对盲人拼读大段盲文文本造成压力,词的长度通常不超过四个音节[8]。对于四音节及四音节以上的词语,可以根据语义适当缩短单词,例如“中华民族伟大复兴”,应该分词为“中华|民族|伟大|复兴”。而对一些惯用语,要适当延长以减少零散单字,比如“开心得拍起了手”,建议分词为“开心得|拍起了手”,其中“得”“了”作为助词分别前连“开心”“拍起”,以减少盲文方数。由于汉语盲文分词连写规则繁多,完全依赖计算机自动实现盲文的分词连写存在困难。

黄河燕等[9]根据盲文分词连写要求建立了多条基于SC文法的特定规则,在字典匹配的分词算法基础上,对分词结果进行标记,并根据规则库进行连写处理。由于盲文分词连写规则繁杂,该方法很难涵盖所有规则,且未考虑多音字混淆问题。文献[10-11]对盲文分词连写规则库进行改写和补充,同时利用统计模型对分词结果进一步排歧,但算法复杂度高,效果难以提升。杨潮等[12]从语料中提取出现过的连写字词组合,建立连写示范库,对文本进行基于连写组合库的切分处理。吕先超[13]基于规则分词和连写示范库相结合的汉盲转换模型,开发出一款汉盲自动转换软件SunBraille,主要面向Web和服务器端的应用。Wang等[14-15]提出一种基于盲文语料库的汉盲转换方法,该方法采用机器学习手段直接对盲文语料进行学习训练,不考虑汉盲转换的中间过程与逻辑。但标准盲文语料收集困难,校核工作繁琐,该工作目前仍处于语料库建设阶段[16]。孙宇等[17]用遗传算法优化BP中的某些参数,一定程度上提高了分词的准确性,但该方法前期预训练时间较长,算法计算量大,对运行平台有一定要求。由于基础研究薄弱,资源不够充分,我国现有的汉盲翻译系统普遍在实用性方面表现不够好。

本文采用逆向最大匹配的分词算法,通过词库自主修改和多音字的词组-拼音库,进一步解决汉盲翻译中多音字、未登录词、盲文分词连写等问题,并实现了一套轻量级适用于嵌入式平台的汉盲翻译系统。该系统减少了语句歧义,提高了汉盲翻译的准确率,有着较高的实用性。

2 汉盲翻译系统设计与实现

2.1 汉盲翻译整体流程

为了让汉盲翻译结果更便于盲人高效摸读学习,本文设计的汉盲翻译系统主要包括逆向最大匹配分词算法、汉拼转换、拼盲转换、盲文点序生成等,总体流程如图2所示。

图2 汉盲翻译系统的整体流程

根据字符类型的不同,如汉字、阿拉伯数字、标点符号、英文字母等,算法把原始文本划分为汉字和非汉字两类。非汉字文本有相对应的符盲对照库可直接进行符盲转换得到盲文点序。对于汉字文本,首先要进行中文分词,再利用汉字拼音库、多音字词语拼音库对其进行汉拼转换,然后再通过拼音盲文对照词典进行拼盲匹配,最终得到盲文点序。过程中可根据盲文分词连写规范进行修改和添加词语,丰富词典库,以得到更符合分词连写规则的汉盲翻译结果。

2.2 逆向最大匹配分词

逆向最大匹配分词算法是将待切分句子按从句尾到句头的顺序截取字符串,与词典库中的词进行逐一匹配,以贪心的方式切分出当前位置上长度最大的词。本文分词系统所采用的词库为清华紫光输入法词库,共收集了548 387个常用词,是目前收录比较完整的词典之一。

在字典匹配的过程中,使用二维指针进行定位存储以减少不必要的匹配,将字典中每个词的第一个字节和最后一个字节作为二维变量,利用二维指针数组把含有相同第一个字节和最后一个字节的多个词串关联起来进行存储。在匹配字符串时使用第一个字节和最后一个字节直接进行检索定位。该种存储方式提高了字典遍历匹配效率,算法时间复杂度保持在O(n)。

词典可对分词效果产生影响,故可根据分词结果判断是否需要在词典中添加或修改有助于盲文分词连写的词语。原文中若存在人名、地名、网络新词等典型未登录词时,需要及时添加至词库,从而更符合汉语盲文分词连写的要求。

2.3 汉字文本的盲文翻译

基于上述中文分词的处理结果,系统继而实现汉字文本到盲文的翻译过程。在汉盲翻译过程中,对于数字、标符、英文字母等,系统中建有与之相对应的盲文编码,可直接对其进行匹配转换。而对于汉字文本,其转换过程需要通过拼音实现,图3为汉字文本的汉盲翻译流程。

图3 汉字文本的汉盲翻译流程

纯汉字文本经过分词后得到单独汉字或者词语序列WS,对于单独汉字,将其与汉字拼音库进行遍历查找匹配得到与之相对应的拼音PS。对于词语序列,系统中建立了与分词词典对应的拼音库,根据分词中所得到的词语直接定位到对应的拼音字符串。本文程序在实现过程中将词语拼音库与词典中的词同时用二维数组指针进行逐个存储,即在分词环节定义的结构体中加上词语拼音库的字符元素。词语拼音库中每个拼音串由多个拼音中间隔空格组成,这样大大方便了将拼音串拆分为多个独立的拼音PS。

根据盲文转换规则,将得到的拼音PS继续转换为盲文二进制序列。首先分别建立声母、韵母、整体认读音节的盲文对照库,这些对照库在程序中分别以结构体形式存储。将拼音PS与单方音节盲文对照库中的音节元素进行遍历匹配,如果匹配结果为单方音节,则可直接得到拼音PS的盲文序列BS,否则为声母韵母组成的两方音节。此时,先将拼音PS的前两个字符与声母盲文对照表中的声母元素进行匹配,匹配成功得到与声母对应的盲文点序,然后将拼音PS的声母部分去掉继续与韵母对照表中的韵母元素进行匹配,匹配成功得到与韵母对应的盲文点序,最后将声、韵母的盲文点序拼接在一起得到拼音PS的盲文点序BS。

2.4 盲文点序生成

将中文转换为盲文阅读设备可有效读取的数据,是汉盲翻译的最终关键环节。从盲文点结构出发,系统将盲文设备的触觉凸点设计为“1”,触觉凹点对应于“0”。按照盲文单方内点位顺序,左列从上至下为“123”点位,右列为“456”点位,整体点位序号可表示为“123456”,则盲文符号满方可以表示为“111111”,空方可以表示为“000000”。使用二进制点序表示盲文点的凹凸信息并作为盲文电子阅读设备的输入信号是非常直观高效的。

为便于盲人阅读,盲文文本是以空方的形式来体现分词间隔的。根据现行盲文的分词方式,本文汉盲转换中将以上每次得到的盲文序列BS后面都尾加“000000”的空方,对标点符号、英文字母、数字等非汉字字符串的盲文序列,也都尾加空方。由此,将每次得到的盲文点序按照文本顺序依次相连起来,便得到了最终的汉盲翻译结果。为让汉盲翻译结果呈现清晰,本文在表述时将分词结果中的空格替换为“|”符号,对应盲文中的空方。例句“2001年,中国正式加入WTO。”中含有汉字、数字、字母、标点等所有类型字符,以及未登录词“WTO”,“WTO”在分词处理前被添加至词库,故在分词连写处理过程中,作为一个整体被切分出来,对分词连写处理后的句子进行现行盲文的汉盲翻译,各个处理阶段如图4所示。

图4 汉盲翻译各处理阶段示意图

3 汉盲翻译系统测试与分析

本文将上述汉盲翻译程序移植应用到基于ARM的嵌入式盲文学习机中[18],实验测试汉盲翻译系统在分词连写、未登录词、多音字等方面的性能表现。

本文将该系统输出的盲文二进制点序作为盲文学习机中触觉机械本体的凹凸控制序列,并同时以盲文点阵的形式显示在盲文点显学习机的LCD液晶显示屏上,如图5所示。LCD显示屏上的盲文点阵“黑色实心圆”对应点显器触觉点阵的凸点,“空心圆”代表点显器触觉点阵的凹点,显示屏上的盲文符号与机械本体装置的盲文点阵凹凸点相对应。该嵌入式盲文学习机实现了盲文-触觉、LCD显示屏-视觉、语音朗读-听觉的三重同步呈现,帮助盲文学习者快速熟悉掌握盲文。

图5 基于ARM的嵌入式盲文学习机使用展示

3.1 逆向最大匹配分词的盲文翻译测试

为测试系统中逆向最大匹配分词算法的效果,该节选取容易产生分词错误的典型句子样本,针对“逆向”和“最大”的匹配原则,设计了正向、逆向最大匹配的分词对比实验和逆向最小、最大匹配的分词对比实验。

3.1.1正向、逆向最大匹配的分词结果对比

例句1:北京大学生前来应聘

正向最大匹配分词结果:北京大学|生前|来|应聘

逆向最大匹配分词结果:北京|大学生|前来|应聘

例句2:独立自主和平等互利的原则

正向最大匹配分词结果:独立自主|和平|等|互利|的|原则

逆向最大匹配分词结果:独立自主|和|平等互利|的|原则

例句3:他说的确实在理

正向最大匹配分词结果:他|说|的确|实在|理

逆向最大匹配分词结果:他|说|的|确实|在理

观察以上3个例句可知,正向最大匹配的分词结果会使句子的预期表达失真,导致语句歧义,而逆向最大匹配的分词结果是符合语义的。从实验结果可以看出,逆向最大匹配分词能够较好地避免语义歧义,使得最终翻译得到的盲文文本有更可靠的阅读性,有效帮助盲人正确理解文本意义。

3.1.2逆向最小、最大匹配的分词结果对比

例句4:总工程师和其他工作人员议论纷纷

逆向最小匹配分词结果:总|工程|师|和|其他|工作|人员|议论|纷纷

逆向最大匹配分词结果:总工程师|和|其他|工作人员|议论纷纷

例句5:信息化时代里残疾人便利许多

逆向最小匹配分词结果:信息|化|时代|里|残疾|人|便利|许多

逆向最大匹配分词结果:信息化|时代|里|残疾人|便利|许多

例句6:红十字会的老职工说说笑笑

逆向最小匹配分词结果:红十字|会|的|老|职工|说说|笑笑

逆向最大匹配分词结果:红十字会|的|老职工|说说笑笑

从这3个例句中可以看出,含有符合盲文分词连写规则的词,比如“总工程师”“老职工”“信息化”“说说笑笑”,通过逆向最大匹配分词均能被划分出来,但逆向最小匹配分词结果却不符合中文盲文简化篇幅的原则。因此,逆向最大匹配中文分词结果更符合盲文分词连写规范,能够提高盲文摸读效率。

3.2 未登录词盲文翻译测试

为测试该汉盲翻译系统能够通过添加未登录词的方式提高分词连写处理准确率,提升盲文简洁性,特此选取含人名、地名等未登录词的典型例句作为测试样本,并对比添加未登录词前后的翻译结果。

例句7:费孝通向人大常委提交报告

添词前翻译结果:费孝|通向|人大常委|提交|报告

把句中人名未登录词“费孝通”添加到词典库。

添词后翻译结果:费孝通|向|人大常委|提交报告

例句8:航天员翟志刚是齐齐哈尔人

添词前翻译结果:航天员|翟|志|刚|是|齐|齐|哈|尔|人

把句中未登录词“翟志刚”“齐齐哈尔”添加到词典库。

添词后翻译结果:航天员|翟志刚|是|齐齐哈尔|人

从以上2个例句添词前后的汉盲翻译结果观察发现,添加未登录词“费孝通”“翟志刚”“齐齐哈尔”后,系统将未登录词作为整词进行切分转换,使盲文呈现更加简洁,且翻译结果更贴近语义。该实验表明汉盲翻译系统通过添加未登录词的方式,可以有效提高翻译准确率,翻译结果更利于盲人阅读。

例句1-例句8的汉盲翻译结果如表1所示。

3.3 多音字盲文翻译测试

为测试汉盲翻译系统具备良好多音字识别性能,本文选择了典型多音字作为测试样本,并对比了同一多音字在不同词语搭配中的翻译结果,如表2所示。

表2 多音字盲文翻译结果

在多音字的测试内容中,包含4种类型的多音字,分别是:声母不同的多音字,如“dan”和“tan”;韵母不同的多音字,如“mo”和“mu”;声韵母均不同的多音字,如“ka”和“qia”;以及仅有声调之差的多音字,如“干净”和“枝干”,其中“干”分别是第一声和第四声。观察对比实验结果可知,该汉盲翻译系统对多音字有一定的识别区分能力,可以防止因为多音字读音混淆造成的汉盲翻译错误。

由于现行盲文标调率极低且未形成明确的标调规定,遇到多音字时,盲人需要猜测读音,这大大降低了摸读效率。对于含有多音字的词组,分词处理阶段将其切分为整体,继而对整体进行字音转换,得到拼音字符串,从而翻译生成对应的盲文点序。该方法较好地解决了多音字混淆的问题,盲人可以确定出含多音字词组的正确语义。

3.4 测试总结与分析

目前汉盲翻译主要面临多音字难以区分、未登录词不能增添、不符合盲文分词连写规则等问题。

由于多音字在词组中往往具有确定的读音,故针对汉盲翻译中多音字混淆的解决办法是,建立与分词词库相对应的词组-拼音库,当字音转换阶段遇到多音字时,遍历词库得到多音字所在的词组,继而在词组-拼音库中匹配,得到含多音字词组的拼音字符串,对拼音字符串作点序化匹配即可得到盲文点序。

该系统具有较好的开放性,分词前将文本中的人名、地名等专有名词添加至未登录词词典中,分词处理过程中,算法将优先遍历该词典,将未登录词正确识别且切分出来。同时,针对汉语盲文繁杂的分词连写规则,正式翻译前可对分词词库进行修改校准,继而得到较为正确的分词连写结果。

本文设计实现的汉盲翻译系统具有较好的开放性和实用性。文献[9-13]采用统计规则与特殊词库匹配相结合的方法,算法复杂度高。本文的汉盲翻译系统算法原理简单,方便快速部署应用,适用于弱计算的嵌入式平台。文献[14-15,17]所用的方法需要大规模统一规范标注的汉盲对照语料库,且在前期训练中需要长时间优化调参。本文的汉盲翻译系统与基于机器学习的方法相比,不需要先验的标准汉盲语料库,无须训练调参,就能获得较准确的汉盲翻译结果。

盲文专家对盲文学习机内容进行实际摸读校核,内容包括小学一年级的14篇语文课文和11篇古诗文,如图6所示,总共约2 500个字符,准确率达到96.8%。其中错误主要在于少量标点符号对应的盲文,汉字盲文符号几乎全部正确,标点错误原因在于国家盲文标准先后对标点盲文做了相应更改,本文系统中的标点符号盲文按照《国家通用盲文方案》设计。盲文专家的实际摸读校核表明,该汉盲翻译系统准确率高,具备较好的实用性。

4 结 语

汉盲翻译是盲文数字化的核心技术,有助于解决盲文书籍供给不充分、内容不平衡等问题,为信息化时代盲人信息无障碍获取提供了一定基础条件。针对汉盲翻译所面临的分词连写、多音字、未登录词等难题,本文利用基于逆向最大匹配分词算法,研发出一套轻量级的汉语盲文翻译系统,并应用到基于ARM的嵌入式盲文学习机中,以进行系统测试。

汉盲翻译按处理步骤大致可分为分词连写处理、汉拼转换、拼符转换三个过程,本文对以上三个任务做了明确阐述,并针对性地提出了解决方案。系统采用逆向最大匹配算法进行分词连写处理,相比于基于统计模型和基于语义理解的机器学习算法,本文所用算法无需庞大语料库和复杂语法规则库的支撑,计算量少,能够实时进行中文分词,满足嵌入式盲文学习机实时汉盲翻译的设计需求。观察测试结果可知,该系统能够得到较符合盲文分词连写规则的中文分词结果,且较好地避免因多音字混淆引起的汉拼转换错误,通过审核添改词典,提高未登录词识别翻译准确率。

猜你喜欢

多音字盲文分词
制作盲文书籍,点亮黑暗世界
Making Braille children
分词在英语教学中的妙用
结巴分词在词云中的应用
结巴分词在词云中的应用
韩国首推盲文护照
趣味多音字(二十二)
你会读多音字吗?
趣味多音字(十七)
多音字也能出糗