孫 宇,李純蓮,b
(長(zhǎng)春大學(xué) a.特殊教育研究中心; b.計(jì)算機(jī)科學(xué)技術(shù)學(xué)院, 長(zhǎng)春 130022)
盲文又稱點(diǎn)字,它是以6點(diǎn)或者8點(diǎn)按照不同的組合方式來(lái)表達(dá)普通文字的一種特殊文字形態(tài)。盲文有兩種表現(xiàn)形式:一種是印刷體形式,主要在普通書籍和電腦屏幕上顯示,這種盲文形式只能供明眼人閱讀;另外一種是盲文的刻印體形式,點(diǎn)字顯示器和絕大多數(shù)盲文出版物使用這種形式,刻印版盲文不僅可供觸覺摸讀,也可供視覺閱讀,所以它適用于盲人和明眼人兩個(gè)群體[1]。
目前,世界上幾乎所有的主流盲文都起源于法國(guó)盲人教師布萊爾(Braille)盲文的設(shè)計(jì)思想,只是不同語(yǔ)言體系的盲文對(duì)布萊爾盲文整體框架賦予了不同的含義,漢語(yǔ)盲文自然也不例外。漢語(yǔ)盲文形式多樣,當(dāng)前主流的漢語(yǔ)盲文有普通話盲文、國(guó)語(yǔ)點(diǎn)字和粵語(yǔ)盲文,這三種盲文各有特點(diǎn)[2]。中國(guó)大陸地區(qū)推行的是普通話盲文,普通話盲文的研究熱點(diǎn)不少,但是普通話盲文信息化研究的核心問題是如何準(zhǔn)確高效地對(duì)普通話盲文進(jìn)行分詞。
現(xiàn)在,全球絕大多數(shù)國(guó)家使用的語(yǔ)言都是以詞(Word)為單位進(jìn)行書寫的,其中詞與詞在書寫時(shí)用空格隔開。然而,漢語(yǔ)的書寫卻是一個(gè)例外。漢語(yǔ)中字與詞的界限相對(duì)于英語(yǔ)、法語(yǔ)、西班牙語(yǔ)和德語(yǔ)等其他主流語(yǔ)言而言,字和詞在概念上不能分得很清晰。漢語(yǔ)分詞是漢語(yǔ)信息化過程中必須解決的核心問題之一,漢語(yǔ)分詞在漢語(yǔ)語(yǔ)音識(shí)別(SR, Speech Recognition)和漢語(yǔ)文本語(yǔ)音轉(zhuǎn)換(TTS, Text To Speech)中有著重要的作用。但漢語(yǔ)分詞算法現(xiàn)在還不是很完善,目前,世界各大廠商出品的相關(guān)軟件對(duì)漢語(yǔ)的語(yǔ)音識(shí)別和文本語(yǔ)音轉(zhuǎn)換都不能完成得盡善盡美,包括美國(guó)蘋果公司、微軟公司和中國(guó)科大訊飛這些著名企業(yè)的產(chǎn)品,核心原因之一就是漢語(yǔ)的分詞算法還處于發(fā)展過程中。當(dāng)前,漢語(yǔ)分詞的一個(gè)常用算法是使用串匹配來(lái)進(jìn)行分詞,串匹配算法以漢語(yǔ)詞庫(kù)為基礎(chǔ),通過目標(biāo)語(yǔ)言與詞庫(kù)比較得到分詞。由于漢字具有無(wú)限的組詞能力,詞庫(kù)不能窮盡所有的漢語(yǔ)分詞,所以串匹配算法不可避免地具有一定的局限性。在學(xué)術(shù)上,還有很多分詞算法處于研究中,但結(jié)果都不是非常理想。
漢語(yǔ)普通話盲文本身實(shí)行分詞,這種盲文分詞不同于普通的漢語(yǔ)詞語(yǔ)。漢語(yǔ)普通話盲文分詞是以普通詞語(yǔ)為基礎(chǔ),以漢語(yǔ)拼音正詞法為參考,根據(jù)普通話盲文本身固有的特點(diǎn),按照《漢語(yǔ)盲文分詞連寫規(guī)則》(1992年版)進(jìn)行分詞的。漢語(yǔ)盲文分詞的詞庫(kù)相比于普通漢語(yǔ)詞庫(kù),其容量和復(fù)雜性是大大增加的[3]。對(duì)于漢語(yǔ)普通話盲文的分詞,在其計(jì)算機(jī)處理過程中,也可以采用串匹配算法,但是因?yàn)闈h語(yǔ)盲文分詞詞庫(kù)的規(guī)模更加龐大,所以串匹配算法在計(jì)算機(jī)漢語(yǔ)盲文分詞的處理過程中并不十分理想。本研究拋棄了基于詞庫(kù)的串匹配等算法思想,從人工智能的角度出發(fā),采用遺傳算法——BP神經(jīng)網(wǎng)絡(luò)等自適應(yīng)學(xué)習(xí)策略來(lái)進(jìn)行漢語(yǔ)盲文分詞的探索,為漢語(yǔ)盲文分詞的計(jì)算機(jī)處理提供一種思路。
漢語(yǔ)普通話盲文的分詞規(guī)則相對(duì)比較復(fù)雜,而且沒有固定的規(guī)律可以遵循,如果憑借讀者的漢語(yǔ)知識(shí)和語(yǔ)法常識(shí)對(duì)盲文進(jìn)行分詞,那么效率和準(zhǔn)確性就非常高。計(jì)算機(jī)依靠邏輯推理對(duì)問題進(jìn)行逐步分析進(jìn)而得出結(jié)論是強(qiáng)項(xiàng),但讓計(jì)算機(jī)依靠已有的知識(shí)和經(jīng)驗(yàn)來(lái)解決問題,卻是近年來(lái)才發(fā)展起來(lái)的研究熱點(diǎn),這些人工智能算法在漢語(yǔ)普通話盲文的處理過程中也大有用武之地。
神經(jīng)網(wǎng)絡(luò)算法是模擬人腦學(xué)習(xí)過程的算法,屬于學(xué)習(xí)算法的范疇,BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是整個(gè)神經(jīng)網(wǎng)絡(luò)系統(tǒng)的一個(gè)組成部分,BP算法是一種有效而且相對(duì)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)算法。
依靠人的知識(shí)經(jīng)驗(yàn),對(duì)漢語(yǔ)普通話盲文進(jìn)行分詞已經(jīng)非常成熟,無(wú)論什么復(fù)雜成分的漢語(yǔ)句子,都可以得到十分準(zhǔn)確的盲文分詞結(jié)果。對(duì)于輸入和輸出都可知的系統(tǒng),如果是線性結(jié)構(gòu)的,那么得到它的數(shù)學(xué)模型在算法上已經(jīng)達(dá)到了實(shí)用的程度。然而,對(duì)于非線性結(jié)構(gòu),尤其是很難找到數(shù)學(xué)模型的非線性結(jié)構(gòu),傳統(tǒng)的數(shù)學(xué)算法已經(jīng)很難應(yīng)用。人工智能算法(對(duì)本文來(lái)說主要是指BP神經(jīng)網(wǎng)絡(luò)算法和遺傳算法)為這類問題提供了有效的解決途徑,漢語(yǔ)普通話盲文分詞就屬于找不到數(shù)學(xué)模型的非線性結(jié)構(gòu)。
對(duì)于BP神經(jīng)網(wǎng)絡(luò)而言,它本質(zhì)上由三層構(gòu)成,即輸入層、輸出層和中間層。中間層又叫隱含層。BP算法從根本上講,是將信息在神經(jīng)網(wǎng)絡(luò)中正向傳遞,對(duì)誤差在反向傳輸中進(jìn)行控制,直至把誤差控制到理想的精度時(shí),BP算法結(jié)束。本文提出BP算法的初步結(jié)構(gòu)模型如下:
圖1 BP神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
由圖1可知,本文擬采用一個(gè)三層的單隱層前饋BP神經(jīng)網(wǎng)絡(luò)。輸入層輸入信號(hào)的數(shù)目由盲文句子中文字個(gè)數(shù)和編碼方式?jīng)Q定??刹捎?6位Unicode碼編碼盲文漢字,這是因?yàn)閁nicode碼對(duì)中、日、韓三國(guó)文字在3000H-A000H區(qū)間進(jìn)行編碼,它的編碼和這三國(guó)的文字是唯一對(duì)應(yīng)的,雖然漢字?jǐn)?shù)量龐大,但Unicode碼基本上覆蓋了絕大多數(shù)日常使用的漢字,同時(shí),Unicode碼還是目前計(jì)算機(jī)系統(tǒng)最常用的編碼之一。這里設(shè)句子中所包含的漢字個(gè)數(shù)為n,則輸入信號(hào)個(gè)數(shù)N=16×n,每個(gè)輸入信號(hào)可以表示為xi;輸出層的輸出信號(hào)有M個(gè),其中M≤10,每一個(gè)輸出信號(hào)可以表示為yk;在輸入和輸出層之間的隱含層包含信號(hào)個(gè)數(shù)通過試湊法予以確定,每個(gè)信號(hào)表示為hj。在輸入層輸入學(xué)習(xí)樣本數(shù)據(jù)時(shí)可進(jìn)行歸一化處理,以提高收斂速度。我們分別用Wnt和θt表示輸入層與隱含層的權(quán)值與隱含層節(jié)點(diǎn)對(duì)應(yīng)的閾值,用Wtm和φm表示隱含層與輸出層的權(quán)值及輸出層節(jié)點(diǎn)的閾值,則在輸出層節(jié)點(diǎn)m的輸出可表示為:
所有神經(jīng)元的作用函數(shù)均可選擇Sigmoid函數(shù)
由于本文擬解決的問題是漢語(yǔ)盲文的分詞算法,因此,首先需要對(duì)于那些連續(xù)書寫的漢語(yǔ)普通話盲文文本經(jīng)過盲漢轉(zhuǎn)換軟件轉(zhuǎn)換成明文,或者對(duì)于那些需要轉(zhuǎn)換成盲文的明文漢語(yǔ)作為輸入材料,然后對(duì)這些素材中的漢字按照盲文分詞的規(guī)則進(jìn)行分詞。就分詞算法而言,輸入的數(shù)據(jù)是漢字的Unicode碼,輸出的數(shù)據(jù)表示每個(gè)漢字是否被切分的標(biāo)志,即為0~1之間的數(shù)值,再根據(jù)大量的樣本訓(xùn)練,確定切分的取值范圍。根據(jù)實(shí)驗(yàn)統(tǒng)計(jì)數(shù)據(jù),一般認(rèn)為,當(dāng)滿足誤差精度時(shí),輸出值落在(0.7,1)區(qū)域?yàn)榍蟹譅顟B(tài),輸出值落在(0,0.3)區(qū)域?yàn)榫芮蟹譅顟B(tài)。
遺傳算法(Genetic Algrithom)是模擬生物界的遺傳現(xiàn)象,主要包括了生物在遺傳過程中的復(fù)制、交叉和變異等遺傳過程,屬于進(jìn)化算法的一種。遺傳算法具有以下優(yōu)點(diǎn):(1)從問題的一組解開始進(jìn)行搜索,解區(qū)域的覆蓋范圍比較大,有利于全局尋優(yōu);(2)同時(shí)從問題空間的多個(gè)解進(jìn)行評(píng)估,使算法陷入局部解的風(fēng)險(xiǎn)減??;(3)問題域不受連續(xù)可微等的約束,適用范圍較廣;(4)算法適用于并行計(jì)算,也適于采用動(dòng)態(tài)自適應(yīng)技術(shù)進(jìn)行進(jìn)化計(jì)算。
在用遺傳算法解決實(shí)際問題時(shí),通常需要完成以下3項(xiàng)工作:(1)確定適應(yīng)度函數(shù)。適應(yīng)度函數(shù)用于表示所求解的問題,進(jìn)化過程中,個(gè)體對(duì)環(huán)境的適應(yīng)能力是以適應(yīng)度函數(shù)為依據(jù)的,適應(yīng)度函數(shù)的值應(yīng)該是正值,所以通常都需要對(duì)實(shí)際問題的目標(biāo)函數(shù)做一些處理。(2)編碼。由于遺傳算法模仿的是生物進(jìn)化過程,首先需要將問題空間的參數(shù)轉(zhuǎn)換成具有某種基因結(jié)構(gòu)的染色體,此過程即為編碼。編碼方式可以采用二進(jìn)制、浮點(diǎn)數(shù)、字符等形式,其中以二進(jìn)制編碼最為常用。(3)遺傳操作。在通過編碼組成需要進(jìn)化的初始種群后,就需要通過以下3個(gè)遺傳操作算子進(jìn)行進(jìn)化以便實(shí)現(xiàn)優(yōu)勝劣汰。
選擇算子:從進(jìn)化的種群中淘汰掉劣質(zhì)個(gè)體,選擇優(yōu)異的個(gè)體參加下一代進(jìn)化。這些被選擇的優(yōu)異個(gè)體,可以直接參與進(jìn)化,也可以通過交叉配對(duì)衍生新個(gè)體后再參與進(jìn)化。
交叉算子:進(jìn)化的種群中的個(gè)體兩兩組合,并按照某種規(guī)則替換或重組,通過產(chǎn)生新的基因組合而產(chǎn)生新的個(gè)體。
變異算子:從進(jìn)化的種群中按照一定規(guī)則選擇某個(gè)或某些個(gè)體,改變其某些基因的值,即通過基因的突變而產(chǎn)生新的個(gè)體。
對(duì)于每一代種群,都要經(jīng)過3個(gè)遺傳操作后再判斷其適應(yīng)度函數(shù)的變化,一旦到達(dá)預(yù)設(shè)的收斂條件,則進(jìn)化結(jié)束,而當(dāng)前種群中最優(yōu)個(gè)體即為所求問題的最優(yōu)答案。
本文擬采用多種群遺傳算法對(duì)BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行優(yōu)化,適應(yīng)度函數(shù)設(shè)置為BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的誤差,采用二進(jìn)制編碼,復(fù)制選擇算子,部分基因交叉重組,隨機(jī)變異,且交叉在種群間進(jìn)行?;玖鞒倘鐖D2所示。
圖2 GA-BP算法基本流程
前已述及,盲文分詞是普通話盲文(包括現(xiàn)行盲文和雙拼盲文)的基本單元,盲文分詞不僅在盲人的摸讀過程中起著重要的作用,而且在盲文的信息化過程中也扮演著非常重要的角色。比如以普通話盲文(尤其是現(xiàn)行盲文)為基礎(chǔ)的輸入法、盲文到普通漢字的轉(zhuǎn)換等,原因在于盲文分詞是盲文碼表的最基層結(jié)構(gòu),而盲文碼表在盲文輸入法和盲漢轉(zhuǎn)換中有著不可替代的作用。
從理論上講,普通話盲文分詞具有如下重要意義: (1)有利于在計(jì)算機(jī)上檢驗(yàn)盲文-漢字輸入法設(shè)計(jì)理論的全過程,進(jìn)而使盲文-漢字輸入法更加適合盲人使用。因?yàn)樘岣咂胀ㄔ捗の牡臐h字輸入效率,良好的盲文分詞(當(dāng)然,還包括合適的普通話盲文標(biāo)調(diào))是確保正確輸入的重要手段。 (2)有利于探索漢字盲文碼表的各種優(yōu)化方法,因?yàn)闈h字盲文碼表的研究與開發(fā)是漢字盲文輸入法的最核心工作,而漢字盲文碼表的研究是一個(gè)不斷螺旋上升、否定之否定的探索過程。簡(jiǎn)而言之,盲文碼表本質(zhì)上也是一種外碼碼表,它類似于漢字的拼音編碼(如全拼、雙拼和簡(jiǎn)拼等),只不過這種碼表比較特殊,它是盲文信息化過程必備的“中間體”。 (3)可以為計(jì)算機(jī)處理盲文到漢字的轉(zhuǎn)換中存在的難題積累經(jīng)驗(yàn)。例如,探索“怎樣提高多音字漢盲轉(zhuǎn)換效率”的各種策略,包括運(yùn)用不同的詞語(yǔ)匹配方法,以及引入語(yǔ)料庫(kù)、互聯(lián)網(wǎng)、大數(shù)據(jù)和云算法等新技術(shù)。
從實(shí)踐上講,盲文分詞具有如下意義: (1)有利于盲人學(xué)習(xí)漢字和計(jì)算機(jī)文字錄入。因?yàn)閲?guó)內(nèi)主流的現(xiàn)行盲文是一種拼音文字,學(xué)習(xí)現(xiàn)行盲文勢(shì)必會(huì)導(dǎo)致盲校出身的盲人對(duì)漢字理解得比較模糊;同時(shí),國(guó)內(nèi)盲人的計(jì)算機(jī)應(yīng)用水平普遍偏低,對(duì)計(jì)算機(jī)文化了解甚少。因此,良好的盲文分詞可以降低漢字輸入的錯(cuò)誤率。 (2)有利于進(jìn)一步推進(jìn)盲文的信息化。因?yàn)槊の妮斎敕ㄖ杏玫降臐h字盲文碼表的研發(fā)是一項(xiàng)非常重要的基礎(chǔ)工程。可以毫不夸張地說,漢字盲文碼表是實(shí)現(xiàn)漢字的盲文輸入法以及在計(jì)算機(jī)上進(jìn)行漢字和盲文、不同碼制的漢語(yǔ)盲文之間相互轉(zhuǎn)換的最重要基礎(chǔ)資源。
這里給出幾個(gè)典型的測(cè)試實(shí)例。首先,用BP—GA模型對(duì)漢語(yǔ)句子按照《漢語(yǔ)盲文分詞連寫規(guī)則》對(duì)典型句子進(jìn)行切分;其次,在切分結(jié)果滿足普通話盲文分詞連寫規(guī)則的條件下,對(duì)這些切分結(jié)果進(jìn)行普通話盲文轉(zhuǎn)換。轉(zhuǎn)換的結(jié)果可以使用中國(guó)大陸的法定盲文——現(xiàn)行盲文或者雙拼盲文表現(xiàn)。
例1: 他從南邊跑到北邊去跳繩。
按照普通話盲文分詞連寫規(guī)則進(jìn)行盲文分詞,輸出應(yīng)該是:他 從 南邊 跑到 北邊 去 跳繩。
例2: 盼望著,盼望著,東風(fēng)來(lái)了,春天的腳步近了。
對(duì)應(yīng)的普通話盲文分詞連寫結(jié)果為:盼望著,盼望著,東風(fēng) 來(lái) 了,春天的 腳步 近 了。
例3: 前天他去了上海,因?yàn)橐鱿淮沃匾膶I(yè)峰會(huì)。
普通話盲文分詞連寫結(jié)果為: 前天 他 去了 上海, 因?yàn)?要 出席 一次 重要的 專業(yè) 峰會(huì)。
總之,對(duì)算法的最終要求是:經(jīng)過算法若干次訓(xùn)練得到的結(jié)果,要與上述給出的人工分詞相近,不能存在太大誤差,否則需要對(duì)這些人工智能算法進(jìn)行再修正(比如調(diào)整算法中的參數(shù)等),直至結(jié)果滿意為止。
采用神經(jīng)網(wǎng)絡(luò)算法、遺傳算法等這一類人工智能算法,為解決漢語(yǔ)普通話盲文的分詞提供了一條新的思路。推而廣之,神經(jīng)網(wǎng)絡(luò)算法和遺傳算法在盲文分詞的應(yīng)用場(chǎng)景中也有重要的價(jià)值,比如前面提到的盲文-漢字輸入法以及盲文-漢字的轉(zhuǎn)換(包括在這二者中用到的匹配和查找盲文分詞等技術(shù))。人工智能算法模擬自然界的現(xiàn)象,包括生物的進(jìn)化過程和學(xué)習(xí)過程,在解決漢語(yǔ)普通話盲文分詞以及其他盲文信息化方面也顯示出一定的優(yōu)越性。然而,BP算法和遺傳算法的理論目前還并不完善,正處于不斷發(fā)展的過程中,比如BP網(wǎng)絡(luò)的層數(shù)選擇問題,遺傳算法的種群大小問題,收斂速度的提示問題等等,都需要繼續(xù)深入地研究。如果用以上算法能成功地實(shí)現(xiàn)漢語(yǔ)盲文的自動(dòng)分詞,必然會(huì)大大促進(jìn)漢語(yǔ)盲文的信息化工作向更深層次發(fā)展,從而更加有利于加速我國(guó)盲人融入信息化社會(huì)的進(jìn)程。或者說,可以使他們更好地學(xué)習(xí)、工作和生活,即更好地與“明眼人”社會(huì)接軌。
長(zhǎng)春大學(xué)學(xué)報(bào)2018年7期