APP下载

基于GA-BP算法的普通话盲文分词算法及其应用探析

2018-07-24李纯莲

长春大学学报 2018年7期
关键词:码表盲文分词

孙 宇,李纯莲,b

(长春大学 a.特殊教育研究中心; b.计算机科学技术学院, 长春 130022)

盲文又称点字,它是以6点或者8点按照不同的组合方式来表达普通文字的一种特殊文字形态。盲文有两种表现形式:一种是印刷体形式,主要在普通书籍和电脑屏幕上显示,这种盲文形式只能供明眼人阅读;另外一种是盲文的刻印体形式,点字显示器和绝大多数盲文出版物使用这种形式,刻印版盲文不仅可供触觉摸读,也可供视觉阅读,所以它适用于盲人和明眼人两个群体[1]。

目前,世界上几乎所有的主流盲文都起源于法国盲人教师布莱尔(Braille)盲文的设计思想,只是不同语言体系的盲文对布莱尔盲文整体框架赋予了不同的含义,汉语盲文自然也不例外。汉语盲文形式多样,当前主流的汉语盲文有普通话盲文、国语点字和粤语盲文,这三种盲文各有特点[2]。中国大陆地区推行的是普通话盲文,普通话盲文的研究热点不少,但是普通话盲文信息化研究的核心问题是如何准确高效地对普通话盲文进行分词。

1 普通话盲文的分词规则和分词算法

现在,全球绝大多数国家使用的语言都是以词(Word)为单位进行书写的,其中词与词在书写时用空格隔开。然而,汉语的书写却是一个例外。汉语中字与词的界限相对于英语、法语、西班牙语和德语等其他主流语言而言,字和词在概念上不能分得很清晰。汉语分词是汉语信息化过程中必须解决的核心问题之一,汉语分词在汉语语音识别(SR, Speech Recognition)和汉语文本语音转换(TTS, Text To Speech)中有着重要的作用。但汉语分词算法现在还不是很完善,目前,世界各大厂商出品的相关软件对汉语的语音识别和文本语音转换都不能完成得尽善尽美,包括美国苹果公司、微软公司和中国科大讯飞这些著名企业的产品,核心原因之一就是汉语的分词算法还处于发展过程中。当前,汉语分词的一个常用算法是使用串匹配来进行分词,串匹配算法以汉语词库为基础,通过目标语言与词库比较得到分词。由于汉字具有无限的组词能力,词库不能穷尽所有的汉语分词,所以串匹配算法不可避免地具有一定的局限性。在学术上,还有很多分词算法处于研究中,但结果都不是非常理想。

汉语普通话盲文本身实行分词,这种盲文分词不同于普通的汉语词语。汉语普通话盲文分词是以普通词语为基础,以汉语拼音正词法为参考,根据普通话盲文本身固有的特点,按照《汉语盲文分词连写规则》(1992年版)进行分词的。汉语盲文分词的词库相比于普通汉语词库,其容量和复杂性是大大增加的[3]。对于汉语普通话盲文的分词,在其计算机处理过程中,也可以采用串匹配算法,但是因为汉语盲文分词词库的规模更加庞大,所以串匹配算法在计算机汉语盲文分词的处理过程中并不十分理想。本研究抛弃了基于词库的串匹配等算法思想,从人工智能的角度出发,采用遗传算法——BP神经网络等自适应学习策略来进行汉语盲文分词的探索,为汉语盲文分词的计算机处理提供一种思路。

2 BP网络和遗传算法在汉语盲文分词中的应用

汉语普通话盲文的分词规则相对比较复杂,而且没有固定的规律可以遵循,如果凭借读者的汉语知识和语法常识对盲文进行分词,那么效率和准确性就非常高。计算机依靠逻辑推理对问题进行逐步分析进而得出结论是强项,但让计算机依靠已有的知识和经验来解决问题,却是近年来才发展起来的研究热点,这些人工智能算法在汉语普通话盲文的处理过程中也大有用武之地。

2.1 BP神经网络和BP神经网络算法

神经网络算法是模拟人脑学习过程的算法,属于学习算法的范畴,BP(Back Propagation)神经网络是整个神经网络系统的一个组成部分,BP算法是一种有效而且相对简单的神经网络算法。

依靠人的知识经验,对汉语普通话盲文进行分词已经非常成熟,无论什么复杂成分的汉语句子,都可以得到十分准确的盲文分词结果。对于输入和输出都可知的系统,如果是线性结构的,那么得到它的数学模型在算法上已经达到了实用的程度。然而,对于非线性结构,尤其是很难找到数学模型的非线性结构,传统的数学算法已经很难应用。人工智能算法(对本文来说主要是指BP神经网络算法和遗传算法)为这类问题提供了有效的解决途径,汉语普通话盲文分词就属于找不到数学模型的非线性结构。

对于BP神经网络而言,它本质上由三层构成,即输入层、输出层和中间层。中间层又叫隐含层。BP算法从根本上讲,是将信息在神经网络中正向传递,对误差在反向传输中进行控制,直至把误差控制到理想的精度时,BP算法结束。本文提出BP算法的初步结构模型如下:

图1 BP神经网络基本结构

由图1可知,本文拟采用一个三层的单隐层前馈BP神经网络。输入层输入信号的数目由盲文句子中文字个数和编码方式决定。可采用16位Unicode码编码盲文汉字,这是因为Unicode码对中、日、韩三国文字在3000H-A000H区间进行编码,它的编码和这三国的文字是唯一对应的,虽然汉字数量庞大,但Unicode码基本上覆盖了绝大多数日常使用的汉字,同时,Unicode码还是目前计算机系统最常用的编码之一。这里设句子中所包含的汉字个数为n,则输入信号个数N=16×n,每个输入信号可以表示为xi;输出层的输出信号有M个,其中M≤10,每一个输出信号可以表示为yk;在输入和输出层之间的隐含层包含信号个数通过试凑法予以确定,每个信号表示为hj。在输入层输入学习样本数据时可进行归一化处理,以提高收敛速度。我们分别用Wnt和θt表示输入层与隐含层的权值与隐含层节点对应的阈值,用Wtm和φm表示隐含层与输出层的权值及输出层节点的阈值,则在输出层节点m的输出可表示为:

所有神经元的作用函数均可选择Sigmoid函数

由于本文拟解决的问题是汉语盲文的分词算法,因此,首先需要对于那些连续书写的汉语普通话盲文文本经过盲汉转换软件转换成明文,或者对于那些需要转换成盲文的明文汉语作为输入材料,然后对这些素材中的汉字按照盲文分词的规则进行分词。就分词算法而言,输入的数据是汉字的Unicode码,输出的数据表示每个汉字是否被切分的标志,即为0~1之间的数值,再根据大量的样本训练,确定切分的取值范围。根据实验统计数据,一般认为,当满足误差精度时,输出值落在(0.7,1)区域为切分状态,输出值落在(0,0.3)区域为拒切分状态。

2.2 遗传算法及其对BP神经网络参数的优化

遗传算法(Genetic Algrithom)是模拟生物界的遗传现象,主要包括了生物在遗传过程中的复制、交叉和变异等遗传过程,属于进化算法的一种。遗传算法具有以下优点:(1)从问题的一组解开始进行搜索,解区域的覆盖范围比较大,有利于全局寻优;(2)同时从问题空间的多个解进行评估,使算法陷入局部解的风险减小;(3)问题域不受连续可微等的约束,适用范围较广;(4)算法适用于并行计算,也适于采用动态自适应技术进行进化计算。

在用遗传算法解决实际问题时,通常需要完成以下3项工作:(1)确定适应度函数。适应度函数用于表示所求解的问题,进化过程中,个体对环境的适应能力是以适应度函数为依据的,适应度函数的值应该是正值,所以通常都需要对实际问题的目标函数做一些处理。(2)编码。由于遗传算法模仿的是生物进化过程,首先需要将问题空间的参数转换成具有某种基因结构的染色体,此过程即为编码。编码方式可以采用二进制、浮点数、字符等形式,其中以二进制编码最为常用。(3)遗传操作。在通过编码组成需要进化的初始种群后,就需要通过以下3个遗传操作算子进行进化以便实现优胜劣汰。

选择算子:从进化的种群中淘汰掉劣质个体,选择优异的个体参加下一代进化。这些被选择的优异个体,可以直接参与进化,也可以通过交叉配对衍生新个体后再参与进化。

交叉算子:进化的种群中的个体两两组合,并按照某种规则替换或重组,通过产生新的基因组合而产生新的个体。

变异算子:从进化的种群中按照一定规则选择某个或某些个体,改变其某些基因的值,即通过基因的突变而产生新的个体。

对于每一代种群,都要经过3个遗传操作后再判断其适应度函数的变化,一旦到达预设的收敛条件,则进化结束,而当前种群中最优个体即为所求问题的最优答案。

本文拟采用多种群遗传算法对BP神经网络的权值和阈值进行优化,适应度函数设置为BP神经网络训练得到的误差,采用二进制编码,复制选择算子,部分基因交叉重组,随机变异,且交叉在种群间进行。基本流程如图2所示。

图2 GA-BP算法基本流程

3 盲文分词算法的应用

前已述及,盲文分词是普通话盲文(包括现行盲文和双拼盲文)的基本单元,盲文分词不仅在盲人的摸读过程中起着重要的作用,而且在盲文的信息化过程中也扮演着非常重要的角色。比如以普通话盲文(尤其是现行盲文)为基础的输入法、盲文到普通汉字的转换等,原因在于盲文分词是盲文码表的最基层结构,而盲文码表在盲文输入法和盲汉转换中有着不可替代的作用。

从理论上讲,普通话盲文分词具有如下重要意义: (1)有利于在计算机上检验盲文-汉字输入法设计理论的全过程,进而使盲文-汉字输入法更加适合盲人使用。因为提高普通话盲文的汉字输入效率,良好的盲文分词(当然,还包括合适的普通话盲文标调)是确保正确输入的重要手段。 (2)有利于探索汉字盲文码表的各种优化方法,因为汉字盲文码表的研究与开发是汉字盲文输入法的最核心工作,而汉字盲文码表的研究是一个不断螺旋上升、否定之否定的探索过程。简而言之,盲文码表本质上也是一种外码码表,它类似于汉字的拼音编码(如全拼、双拼和简拼等),只不过这种码表比较特殊,它是盲文信息化过程必备的“中间体”。 (3)可以为计算机处理盲文到汉字的转换中存在的难题积累经验。例如,探索“怎样提高多音字汉盲转换效率”的各种策略,包括运用不同的词语匹配方法,以及引入语料库、互联网、大数据和云算法等新技术。

从实践上讲,盲文分词具有如下意义: (1)有利于盲人学习汉字和计算机文字录入。因为国内主流的现行盲文是一种拼音文字,学习现行盲文势必会导致盲校出身的盲人对汉字理解得比较模糊;同时,国内盲人的计算机应用水平普遍偏低,对计算机文化了解甚少。因此,良好的盲文分词可以降低汉字输入的错误率。 (2)有利于进一步推进盲文的信息化。因为盲文输入法中用到的汉字盲文码表的研发是一项非常重要的基础工程。可以毫不夸张地说,汉字盲文码表是实现汉字的盲文输入法以及在计算机上进行汉字和盲文、不同码制的汉语盲文之间相互转换的最重要基础资源。

4 实验测试要求

这里给出几个典型的测试实例。首先,用BP—GA模型对汉语句子按照《汉语盲文分词连写规则》对典型句子进行切分;其次,在切分结果满足普通话盲文分词连写规则的条件下,对这些切分结果进行普通话盲文转换。转换的结果可以使用中国大陆的法定盲文——现行盲文或者双拼盲文表现。

例1: 他从南边跑到北边去跳绳。

按照普通话盲文分词连写规则进行盲文分词,输出应该是:他 从 南边 跑到 北边 去 跳绳。

例2: 盼望着,盼望着,东风来了,春天的脚步近了。

对应的普通话盲文分词连写结果为:盼望着,盼望着,东风 来 了,春天的 脚步 近 了。

例3: 前天他去了上海,因为要出席一次重要的专业峰会。

普通话盲文分词连写结果为: 前天 他 去了 上海, 因为 要 出席 一次 重要的 专业 峰会。

总之,对算法的最终要求是:经过算法若干次训练得到的结果,要与上述给出的人工分词相近,不能存在太大误差,否则需要对这些人工智能算法进行再修正(比如调整算法中的参数等),直至结果满意为止。

5 结论

采用神经网络算法、遗传算法等这一类人工智能算法,为解决汉语普通话盲文的分词提供了一条新的思路。推而广之,神经网络算法和遗传算法在盲文分词的应用场景中也有重要的价值,比如前面提到的盲文-汉字输入法以及盲文-汉字的转换(包括在这二者中用到的匹配和查找盲文分词等技术)。人工智能算法模拟自然界的现象,包括生物的进化过程和学习过程,在解决汉语普通话盲文分词以及其他盲文信息化方面也显示出一定的优越性。然而,BP算法和遗传算法的理论目前还并不完善,正处于不断发展的过程中,比如BP网络的层数选择问题,遗传算法的种群大小问题,收敛速度的提示问题等等,都需要继续深入地研究。如果用以上算法能成功地实现汉语盲文的自动分词,必然会大大促进汉语盲文的信息化工作向更深层次发展,从而更加有利于加速我国盲人融入信息化社会的进程。或者说,可以使他们更好地学习、工作和生活,即更好地与“明眼人”社会接轨。

猜你喜欢

码表盲文分词
布莱叶:发明盲文,在黑暗中“看见”世界
制作盲文书籍,点亮黑暗世界
Making Braille children
结巴分词在词云中的应用
iGPSPORTiGS618智能GPS码表测评
皱皱眉头就是一首诗
廉价亲民黑鸟单车BB10 GPS码表评测
值得重视的分词的特殊用法
盲文纸质出版物与数字资源一体化研发初探
轻松上手 码表踏频组