黃皓
摘? 要: 在簡繁漢字轉(zhuǎn)換的處理中,一對多漢字消岐和避免分歧詞過度轉(zhuǎn)換是兩大難題。構(gòu)造一對多詞表、通用詞表、分歧詞表,并在詞表中加入轉(zhuǎn)換的限制性規(guī)則,根據(jù)候選詞最前或最后的一個字能否與相鄰字另外組詞,可對該詞的有效性進(jìn)行判斷。使用詞表中的規(guī)則對當(dāng)前語句上下文進(jìn)行匹配,綜合分析名詞、動詞、量詞和姓氏、詞頻等屬性,從而實現(xiàn)消岐和轉(zhuǎn)換的智能化。據(jù)此實現(xiàn)了一個簡繁轉(zhuǎn)換系統(tǒng),實踐證明這是一個行之有效的解決辦法。
關(guān)鍵詞: 簡化字; 繁體字; 分詞; 詞對照表; 上下文
中圖分類號:TP311? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2021)09-22-04
Abstract: One-to-many Chinese character disambiguating and avoiding excessive conversion of divergent words are two difficult problems in the conversion of simplified and traditional Chinese characters. One-to-many word list, common word list, divergent word list are constructed, and the restrictive rules of conversion are added to these word-lists. The validity of the candidate word can be judged according to whether the first or last character of the word can be combined with the adjacent word to form another word. The rules in word list are used to match the current sentence context, and the attributes of noun, verb, quantifier, and surname and word frequency are analyzed comprehensively, so as to realize the intelligence of ambiguity cancellation and conversion. With this method, a simplified and traditional Chinese character conversion system is realized, which proves its effectiveness.
Key words: simplified Chinese character; traditional Chinese character; word segmentation; word-list; context
0 引言
簡繁漢字間的轉(zhuǎn)換是客觀需求。我國在1956年進(jìn)行了文字改革,并且以法律形式對漢字的使用進(jìn)行規(guī)范。在海外,新加坡、馬來西亞采用與大陸相同的簡化漢字,而在臺灣、香港、澳門等地區(qū)則沿用繁體漢字。幾十年來,兩岸三地在漢字編碼、字形標(biāo)準(zhǔn)、習(xí)慣用法等方面都存在著很大的區(qū)別。隨著海內(nèi)外交往不斷增多,許多文件、信函、書籍等需要在簡體與繁體之間進(jìn)行轉(zhuǎn)換,相關(guān)的轉(zhuǎn)換系統(tǒng)也有很多。
1 現(xiàn)有簡繁轉(zhuǎn)換系統(tǒng)存在的一些問題[1]
1.1 編碼沒有覆蓋足夠的漢字
早期的簡繁轉(zhuǎn)換系統(tǒng)只是在簡體GB碼與繁體BIG5碼之間進(jìn)行轉(zhuǎn)換,由于GB漢字集僅有6763個字,BIG5有13053個字,在GB與BIG5的映射中存在大量的缺字、漏字。簡體GBK包含了繁體BIG5所有的漢字,但只是漢字的一個子集。而一些號稱支持Unicode的系統(tǒng)也僅支持基本字符平面,其他字符平面的漢字被忽略了,如“”字。
1.2 只處理簡繁漢字一對一的轉(zhuǎn)換
一些轉(zhuǎn)換系統(tǒng)構(gòu)造一個簡化字與繁體字的一一對應(yīng)表,不考慮“一簡對多繁”和“一繁對多簡”的情形,只是簡單地采用其中一個字而忽略其他候選字,于是在轉(zhuǎn)換一對多漢字時就會出現(xiàn)如“頭發(fā)”、“樹乾”、“干隆”這樣的錯誤。
1.3 一對多處理不能很好地消岐
由于漢字簡化時將多個字歸并為一個字,如“斗”和“鬥”都簡化為“斗”,“后”與“後”都并為“后”,僅憑單字本身無法確定轉(zhuǎn)換的目標(biāo)字,需要借助更大的語言單位(如詞)來甄別,這是目前簡繁轉(zhuǎn)換亟需解決的關(guān)鍵問題。
1.4 未能很好地遵循目標(biāo)中文標(biāo)準(zhǔn)、規(guī)范或習(xí)慣
繁體字雖然在臺灣、香港、澳門及海外華人社區(qū)廣泛使用,但也存在一些細(xì)微的差別。如“線”對應(yīng)的繁體字,臺灣為“線”,港澳為“綫”,類似的字還有如表1。
一些系統(tǒng)將“壩”字轉(zhuǎn)為“垻”,“說”字轉(zhuǎn)為“説”等,而“垻、説”均非臺灣所用規(guī)范字。再就是在外來詞方面要么沒有處理,要么轉(zhuǎn)換的結(jié)果未如人意,如將“貝克漢姆去了老撾”轉(zhuǎn)為“碧咸去了寮國”,而“碧咸”是“貝克漢姆”的香港音譯,在臺灣地區(qū)的譯法則是“貝克漢”。
2 簡繁一對多轉(zhuǎn)換的消岐思路
2.1 以一對多詞表為基礎(chǔ)
字的轉(zhuǎn)換異常在于簡繁漢字之間存在“一對多”的問題[2]。部分簡化字對應(yīng)兩個、三個甚至四個繁體字;反之亦然。僅憑單字本身不能夠做出備選漢字的選擇,必須依賴于字所處的環(huán)境。詞可以幫助確定備選字,如將“發(fā)射”中的“發(fā)”轉(zhuǎn)換為“發(fā)”,而將“頭發(fā)”中的“發(fā)”轉(zhuǎn)換為“髮”。簡繁一對多詞表(如表2、表3)的建立是簡繁轉(zhuǎn)換的關(guān)鍵,這依賴于對《簡化字總表》、詞典和語料的分析研究[3]。
2.2 使用通用詞表來判斷詞的有效性
通過一對多詞表來比對是基礎(chǔ),假如詞表中無相應(yīng)的詞,轉(zhuǎn)換就可能失敗。詞的比對一般依賴于詞的劃分,但分詞處理也會帶來一些問題[2],如“我出去看了一出戲”,設(shè)分詞結(jié)果為“我/出去/看/了/一/出/戲”,后邊的“出”字被分解為單字,使得“一出”這樣的詞無法比對成功。所以我們換一個思路,不進(jìn)行分詞處理,而對候選詞前后字進(jìn)行組詞判斷,再根據(jù)詞頻判斷詞的有效性。如“今天必須發(fā)一批貨物”,“須”字與前一個字“必”構(gòu)成了詞“必須”,從而將候選詞“須發(fā)”排除掉,這也是一種解決問題的簡便方法。
2.3 根據(jù)規(guī)則分析語句上下文
2.3.1 單字形式
一對多漢字并非總是以詞的形式出現(xiàn),當(dāng)它呈現(xiàn)出單字形式時,如“他理了發(fā)”,就需要根據(jù)字所處的語句上下文進(jìn)行判斷[4]。通過標(biāo)點符號得到該字所處語句,然后利用如下規(guī)則進(jìn)行匹配:
? 發(fā).*貨、理.*發(fā) 可匹配語句中如“發(fā)了很多貨”、“理了個發(fā)”。
? 發(fā)*貨、理*發(fā) 起始結(jié)束字串可以交換,既包括上一條規(guī)則,也可匹配“貨發(fā)了沒有”、“發(fā)是小明幫我理的”。
2.3.2 相同詞
采用詞表也存在難以確定候選字的情況,如“散發(fā)”,既可為“花兒散發(fā)著芳香”,也可為“風(fēng)兒吹著我的散發(fā)”,前者是“發(fā)”,后者是“髮”。類似的相同詞還有很多[5],如表4所示。
根據(jù)詞所在語句的上下文進(jìn)行判別,增加以下規(guī)則:
? 發(fā) 地散發(fā),散發(fā)(出)|(著)|(了)#
? 髮 的散發(fā),裸|袒|赤|披|簪|帶|衣|被|服|裝|身|肩|足|腳|跣|頭|舌?散發(fā),散發(fā)*沐|臥|坐|眠|歸|吹|歌|吟|撫|弄|邀|醉|飲...
轉(zhuǎn)換規(guī)則中的符號“|”表示或的關(guān)系,“散發(fā)(出)|(著)|(了)#”意味著比對“散發(fā)出”、“散發(fā)著”、“散發(fā)了”三個字串,符號“#”來表示比中即認(rèn)可此“發(fā)”-“發(fā)”對應(yīng)關(guān)系?!埃俊?、“*”表示短句或句子,這樣便可以處理“跣足散發(fā)”、“人生在世不稱意,明朝散發(fā)弄扁舟”這樣的字串了。
2.3.3 詞性分析
根據(jù)相同詞對應(yīng)的詞性不同,可依據(jù)前后字進(jìn)行區(qū)分。動詞前可以加上“地”,后面可以跟著“出”、“著”、“了”,而名詞的前后均可加上“的、之”等。
量詞可作為數(shù)量單位。在一對多漢字中可作量詞的有“斗、發(fā)、個、出”等,如這些字前有“一二三四五六七八九十百千萬幾兩”等數(shù)字,則可以作出判斷??捎梅枠?biāo)示此規(guī)則,如“#斗”。
姓氏的處理是一大難題?!坝?、余、沈、鐘”等一對多漢字也是常用姓??蓪v史上的名人建立詞表,但把所有姓名收錄是不現(xiàn)實的。因為姓名常常作為主語或賓語,所以如果這些字位于句子開頭或結(jié)尾位置、且不夠成詞組,那么可推定為姓氏;再就是現(xiàn)代漢語中常稱呼“老于”、“小鐘”等,在一篇文章中同一姓名往往會出現(xiàn)多次,可據(jù)上下文進(jìn)行判斷。
2.3.4 詞頻、優(yōu)先級與默認(rèn)值
遇到一對多漢字時,要綜合考慮轉(zhuǎn)換規(guī)則、詞頻、優(yōu)先級、默認(rèn)值等情況,判斷相應(yīng)的候選字。以“太陽一出來,我就出去看了出精彩的電影,忘了出股票了。”為例,“出”可對應(yīng)繁體字為“出、齣”。在詞表中可定義轉(zhuǎn)換規(guī)則如下:
? 出 出口,出去,出來,出風(fēng)頭,魚貫而出,情人眼里出西施,…
? 齣 #出,這出,出.*電影,…
根據(jù)使用頻度及組詞數(shù)量,轉(zhuǎn)換為“齣”的情形遠(yuǎn)少于“出”,因此“出”為默認(rèn)值。第一個“出”字,首先比中“齣”的規(guī)則“#出”,然后在“出”中比中詞“出來”,那么選擇哪一個呢?我們規(guī)定詞的優(yōu)先級高于規(guī)則,因此轉(zhuǎn)換結(jié)果為“出”;而第四個“出”字都沒比中,則取默認(rèn)值“出”。
3 分歧詞的處理
六十幾年來,兩岸在外來詞、科技術(shù)語、外國地名人名的翻譯及一些習(xí)慣用詞方面存在著很大差異,如表5所示。
建立分歧詞對照表,化學(xué)元素單字和標(biāo)點符號可以簡單地直接轉(zhuǎn)換。
3.1 分歧詞處理中的常見問題
首先是分詞問題。必須把詞從語句中分離出來,如“精武門源自霍元甲的精武體育會”,不能將“門源”轉(zhuǎn)換為“亹源”。因為“源”與后面的“自”可以組成“源自”一詞,所以對兩個字構(gòu)成的分歧詞均應(yīng)通過與前后字的組詞分析其有效性,方法參考2.2節(jié)。
其次是單、雙向問題。一些詞的轉(zhuǎn)換是單向的,如繁體轉(zhuǎn)簡體時可將“朋馳”轉(zhuǎn)換為“奔馳”,可簡體轉(zhuǎn)繁體將所有的“奔馳”都轉(zhuǎn)換為“朋馳”,就會鬧出如“車在公路上高速朋馳”的笑話。再如繁體“塔克辛”可以轉(zhuǎn)為“他信”,然而簡體“他信不信?”就不一定能轉(zhuǎn)換為“塔克辛不信?”。
不管分詞還是單、雙向處理都是為了解決過度轉(zhuǎn)換問題。在IT術(shù)語中,“宏”通常與“巨集”相對應(yīng),如“宏病毒”-“巨集病毒”、“宏匯編”-“巨集組合”等等,可是將“宏偉”轉(zhuǎn)換為“巨集偉”就錯了。又如非洲國家“貝寧”對應(yīng)繁體“貝南”,但不能將央視主持人撒貝寧轉(zhuǎn)為撒貝南;“信息”所對應(yīng)繁體中文一般為“資訊”,但“工業(yè)與信息化部”則不宜進(jìn)行轉(zhuǎn)換。諸如此類的還有:軟體動物-軟件動物,近衛(wèi)文麿-親衛(wèi)文麿,月球質(zhì)量-月球品質(zhì)等。
3.2 修改詞表結(jié)合上下文進(jìn)行分歧詞條件限定
在分歧詞表加入限制性條件,程序通過對詞所在語句上下文分析,判斷是否進(jìn)行轉(zhuǎn)換。如:
? 他信 塔克辛 >麥格塞塞獎|泰|政|華|政治|抗議|+·|·+|+總理|總理+
? 軟件 軟體 <-動物
? 貝寧 貝南 >撒-
? 信息化 資訊化 >-部
? 近衛(wèi) 親衛(wèi) +軍|+師|+旅|+團(tuán)|+隊
? 質(zhì)量 品質(zhì) ~物體|物質(zhì)|重力|勢能|物理|星|天體|太陽|地球|月球|分子|原子
符號意義如表6所示。
如規(guī)則“>撒-”表示繁體“貝南”可直接轉(zhuǎn)簡體“貝寧”,而簡體“貝寧”轉(zhuǎn)繁體時,如前一字為“撒”,則不進(jìn)行轉(zhuǎn)換;“~物體|物質(zhì)”表示當(dāng)語句中出現(xiàn)“物體”、“物質(zhì)”時,不進(jìn)行“質(zhì)量-品質(zhì)”的轉(zhuǎn)換。
4 簡繁轉(zhuǎn)換系統(tǒng)的實現(xiàn)與測試
系統(tǒng)分為分歧詞處理、一對多漢字處理和一對一漢字轉(zhuǎn)換三個層次,簡繁或繁簡轉(zhuǎn)換的處理過程是相似的。據(jù)此實現(xiàn)的簡繁轉(zhuǎn)換系統(tǒng)將UNICODE、GBK和BIG5編碼的文本先轉(zhuǎn)為UTF8編碼,然后再進(jìn)行處理。
系統(tǒng)轉(zhuǎn)換的結(jié)果令人滿意。使用一些繁體語料在字級別的轉(zhuǎn)換中,經(jīng)繁-簡、簡-繁轉(zhuǎn)換后,比較繁體原始文件與轉(zhuǎn)換結(jié)果,完全相同的漢字占97%左右,考慮到原始語料中使用異體字的情況,正確率應(yīng)該更高,分歧詞也能較好地轉(zhuǎn)換出來。使用3.3GHz的CPU進(jìn)行簡繁轉(zhuǎn)換速度約為26K漢字/秒。
5 結(jié)束語
簡繁轉(zhuǎn)換是中文信息處理的重要課題。該問題一方面在于簡繁之間存在一對多現(xiàn)象,另一方面在于兩岸在外來詞、專業(yè)術(shù)語、外國人地名等翻譯和一些習(xí)慣用詞方面存在差異,解決問題的關(guān)鍵是如何消岐、避免分歧詞過度轉(zhuǎn)換。本文提出了依據(jù)詞表和語句上下文進(jìn)行語義分析,通過規(guī)則進(jìn)行約束的方法,能更準(zhǔn)確地進(jìn)行轉(zhuǎn)換。當(dāng)然,自然語言非常復(fù)雜,生活中的一些語句甚至人也會理解錯誤,因此偶爾轉(zhuǎn)換出錯也屬正常。本系統(tǒng)對現(xiàn)代文較為有效,對古文還需語料庫的支持,改進(jìn)方向是不斷完善詞表及規(guī)則,進(jìn)一步提高轉(zhuǎn)換正確率。
參考文獻(xiàn)(References):
[1] 戴紅亮.漢字簡繁文本智能轉(zhuǎn)換系統(tǒng)中語言學(xué)問題分析[J].遼寧師范大學(xué)學(xué)報(社會科學(xué)版),2016.3:115-120
[2] 龐禎軍,姚天財.基于對照表以及語義相關(guān)性之簡繁漢字轉(zhuǎn)換[J].計算機(jī)工程與應(yīng)用,2015.51(4):115-119
[3] 沙宗元,沈亮.《通用規(guī)范漢字表》與《簡化字總表》簡繁漢字對比分析[J].中國文字學(xué)報,2017.
[4] 徐志學(xué).不作簡化偏旁用的簡化字簡繁、繁簡非對稱現(xiàn)象分析[J].三峽論壇(三峽文學(xué)·理論版),2018.5:48-55
[5] 王同億.高級漢語詞典[M].海南出版社,1996.