摘 ?要: 漢語中有1000多個(gè)多音字,正確的判斷多音字并進(jìn)行注音,是計(jì)算機(jī)拼音合成的難點(diǎn)之一。為了實(shí)現(xiàn)對多音字的自動(dòng)識(shí)別標(biāo)注,采用最大向前匹配、最大向后匹配法對詞句進(jìn)行分詞處理。再構(gòu)建條件概率表,對多音字進(jìn)行整理歸類。最后系統(tǒng)的進(jìn)行注音。通過《中文拼音詞典》模塊、文本分詞模塊、《漢字條件概率表》模塊、《漢字條件概率表》計(jì)算模塊、自動(dòng)產(chǎn)生文本拼音模塊構(gòu)成拼音自動(dòng)生產(chǎn)系統(tǒng)。
關(guān)鍵詞:?中文文本;漢語拼音;自動(dòng)生產(chǎn)系統(tǒng)設(shè)計(jì)
中圖分類號:?TP391????文獻(xiàn)標(biāo)識(shí)碼:?A????DOI:10.3969/j.issn.1003-6970.2019.09.033
本文著錄格式:侯雨鈴. 中文文本漢語拼音自動(dòng)產(chǎn)生系統(tǒng)設(shè)計(jì)方案[J]. 軟件,2019,40(9):144-147
Chinese Text Chinese Pinyin Automatic Generation System Design
HOU?Yu-ling
(Beijing University of Technology, Beijing?100080)
【Abstract】:?There are more than 1000 polyphonic words in Chinese. Correctly judging multi-sounding words and making phonetic transcriptions is one of the difficulties in computerized pinyin synthesis. In order to realize the automatic identification of multi-tone words, the maximum forward matching and maximum backward matching method are used to process word segmentation. Reconstruct the conditional probability table and classify the polyphonic words. Finally, the system performs phonetic transcription. Through the “Chinese Pinyin Dictionary” module, text segmentation module, “Chinese character condition probability table” module, “Chinese character condition probability table” calculation module, automatically generate text pinyin module to form a pinyin automatic production system.
【Key words】:?Chinese text; Chinese pinyin; Automatic production system design
在生活中,我們經(jīng)常會(huì)遇到一些不認(rèn)識(shí)的字或不知道準(zhǔn)確讀音的字,可是卻很少有人會(huì)真正地去查它的讀音。因?yàn)槲覀儧]有足夠的時(shí)間去翻開字典并找到那個(gè)字,這導(dǎo)致有很多中國人在交流的時(shí)候會(huì)說出錯(cuò)誤的讀音。甚至在各種中文演講的時(shí)候會(huì)出現(xiàn)讀音不準(zhǔn)的問題,在下面聽演講的人也會(huì)不自覺地記住錯(cuò)誤的讀音[1-5]。
例如,聲調(diào)的錯(cuò)誤在日常生活中經(jīng)常發(fā)生。枸杞中的“杞”應(yīng)讀三聲;浙江的“浙”應(yīng)讀四聲等,這些都是人們在平時(shí)容易讀錯(cuò)的讀音。
又如,有些漢字的讀音很特殊。例如,和面、和稀泥中的“和”字應(yīng)該讀“huò”,而不是“hé”,許多中國人都經(jīng)常把這些字讀錯(cuò)。
不光中國人為漢字的讀音發(fā)難,外國人學(xué)中文的時(shí)候也會(huì)為讀音發(fā)難。在國外,學(xué)中文最難的一步就是學(xué)漢字的讀音,尤其是中文還有很多多音字。假如一個(gè)外國人在學(xué)一篇中文課文,而漢字的讀音他一個(gè)也不知道,他難道要一個(gè)一個(gè)在字典里查嗎?那么查一天也查不完。這就給他學(xué)中文的夢想造成了很大的阻礙。
雖然現(xiàn)在互聯(lián)網(wǎng)上的電子詞典很多,但是它們有很多常見的錯(cuò)誤。
以上這些事情都說明了要給漢字注音的重要性。既然用人工來給漢字注音費(fèi)時(shí)費(fèi)力,那么給漢字注音這個(gè)工作由計(jì)算機(jī)來執(zhí)行,學(xué)習(xí)效率高得多?;谌斯ぶ悄艿挠?jì)算機(jī)查字典的速度要比人類快的多,因此設(shè)計(jì)了“中文文本漢語拼音自動(dòng)產(chǎn)生系統(tǒng)”[6-10]。
中文文本漢語拼音自動(dòng)產(chǎn)生系統(tǒng)由《中文拼音詞典》模塊、文本分詞模塊、《漢字條件概率表》模塊、《漢字條件概率表》計(jì)算模塊、自動(dòng)產(chǎn)生文本拼音模塊所構(gòu)成。
《中文拼音詞典》模塊為自動(dòng)產(chǎn)生文本拼音的基礎(chǔ),文本分詞模塊對輸入的中文文本進(jìn)行分詞,形成一個(gè)一個(gè)字和詞?!稘h字條件概率表》計(jì)算模塊從《中文拼音詞典》中計(jì)算在一個(gè)漢字后面接一個(gè)漢字的條件概率,為消除漢字的不同讀音提供基礎(chǔ)。自動(dòng)產(chǎn)生文本拼音模塊通過查《中文拼音詞典》,并且使用《漢字條件概率表》,對分詞后的文本進(jìn)行拼音自動(dòng)生成,就像人查詞典一樣,同時(shí)對多音字的情形,經(jīng)過思考,確定多音字的準(zhǔn)確拼音[11-13]。
圖1給出了中文文本漢語拼音自動(dòng)產(chǎn)生系統(tǒng)的結(jié)構(gòu)。
圖2給出了中文文本漢語拼音自動(dòng)產(chǎn)生系統(tǒng)的工作流程。
在圖2中,有關(guān)“多音字詞分析”的過程,如圖3所示。
《中文拼音詞典》是文本拼音自動(dòng)生成的基礎(chǔ)。對每個(gè)單字或詞,給出了它們的拼音。當(dāng)一個(gè)字是多音字時(shí),詞典收集了它們的所有讀音。
《中文拼音詞典》共分為兩列。第一列是詞或字,第二列是它的拼音。表1給出了詞典結(jié)構(gòu)和樣例。
目前,《中文拼音詞典》涵蓋所有常見的漢字,也含有從小學(xué)到大學(xué)的各種日常詞條、專業(yè)詞條,共計(jì)有185285多萬條。
在今后的應(yīng)用中,該詞典今后可以不斷擴(kuò)充,從而增加了本系統(tǒng)的應(yīng)用范圍。
本項(xiàng)目采用兩種分詞方法:最大向前匹配、最大向后匹配。同時(shí)本項(xiàng)目也采用三種策略,來選擇一組分詞結(jié)果:第一,當(dāng)這兩種方法的分詞結(jié)果不一致時(shí),采用分詞個(gè)數(shù)少的那一組分詞。第二,如果它們的分詞結(jié)果中的分詞個(gè)數(shù)一樣,那么選擇單字個(gè)數(shù)少的那一組分詞結(jié)果。第三,如果它們的分詞結(jié)果中的單字個(gè)數(shù)也一樣,那么選擇最大向后匹配的那組分詞結(jié)果。
例如,對句子“他出席了中國人大會(huì)議”,
最大向前匹配的結(jié)果是:他 出席 了 中國人 大 會(huì)議
最大向后匹配的結(jié)果是:他 出席 了 中國 人大 會(huì)議
按照第二條策略,本項(xiàng)目選擇了最大向后匹配的結(jié)果,因?yàn)樗膯巫种挥?個(gè),而最大向前匹配的結(jié)果有2個(gè)單字。
有些漢字可能有多個(gè)讀音,讀什么音往往與它們在句子中所處的位置有關(guān)。因此,需要計(jì)算漢字與拼音之間的條件概率,形成一個(gè)程序可以使用條件概率表。
在中文文本漢語拼音自動(dòng)產(chǎn)生系統(tǒng)中,《漢字詞條件概率表》的格式有兩種如下:
字1字2字1的拼音P ???字1的拼音P的概率
詞1null ???詞1的拼音P ???詞1的拼音P的概率
其中,字2是字1的后接漢字。
《漢字條件概率表》的產(chǎn)生是根據(jù)《中文拼音詞典》進(jìn)行的。過程是:
對一個(gè)詞W,它由 字1字2 ...字n構(gòu)成,它們對應(yīng)的拼音為:拼1拼2 ...拼n。記住(字1 ?字2 ?拼1)出現(xiàn)1次,同樣,(字2 ?字3 ?拼2)出現(xiàn)1次,…。
另外,在《中文拼音詞典》中,可以計(jì)算出字1讀成拼1的次數(shù)、字2讀成拼2的次數(shù),等等。所以,我們可以按照以下方式計(jì)算《漢字詞條件概率表》中的:
對詞(至少含兩個(gè)漢字)而說,如果它有多個(gè)拼音,則按照以下方法計(jì)算:
為了快速查到《中文拼音詞典》的字詞和對應(yīng)的拼音,需要定義一種快速的數(shù)據(jù)結(jié)構(gòu)。本項(xiàng)目采用字詞到拼音向量的map方法,及map
這種結(jié)構(gòu)既滿足了快速定位字詞,也滿足標(biāo)記字詞的多音字的需要。
在從中文拼音詞典中查詢一個(gè)字詞的拼音時(shí),如果它具有k個(gè)拼音P1,…,Pk(k>1),那么就得判斷哪個(gè)拼音為正確的。這本身是一個(gè)困難的問題。為此,我們設(shè)計(jì)了三種策略,來處理多音字詞問題。
策略1:對三字或三字以上的詞W,如果它有多個(gè)拼音,那么任意選一個(gè)拼音。這個(gè)策略是合理的,因?yàn)槿只蛉忠陨系脑~讀成不同的拼音,這個(gè)可能性非常低!
策略2:對二字詞W1W2,如果它有k個(gè)拼音P11P12,P21P21,…,Pk1Pk2。如果k=1,那么直接使用W1W2的拼音P11P12;否則,選擇W1W2的拼音為Pi1Pi2,其中Pi1Pi2的在《中文字詞條件概率表》概率最大。
策略3:對單字W1,如果它有k個(gè)拼音P11、...、P1k(k>1),那么要考慮兩種情形。
根據(jù)上述策略,本項(xiàng)目采取的多音字分析的工作流程如圖3所示。
為了判斷中文文本漢語拼音自動(dòng)產(chǎn)生系統(tǒng)的效果,需要挑選一些課文進(jìn)行測試??梢蕴暨x小學(xué)五年級語文課本上的幾篇課文,經(jīng)過中文文本漢語拼音自動(dòng)產(chǎn)生系統(tǒng)計(jì)算后,檢查哪些自動(dòng)生產(chǎn)的拼音是正確的,哪些是錯(cuò)誤的,然后計(jì)算出正確的比例是多少。
在本項(xiàng)目中,測試課文應(yīng)該在1000字左右。
走[zǒu] 出門[chū mén],就[jiù] 與[yǔ] 微風(fēng)[wēi fēng] 撞[zhuàng] 了[le] ?滿懷[mǎn huái],風(fēng)[fēng] 中[zhōng] 含[hán] 著[zhe] 露水[lù shuǐ] 和[hé] 梔子花[zhī zi huā] 氣息[qì xī] 的[de] 微風(fēng)[wēi fēng] 撞[zhuàng] [le] 個(gè)[gè] 滿懷[mǎn huái]。早晨[zǎo chén],好[hǎo] 清爽[qīng shuǎng] !心里[xīn lǐ] 的[de] 感覺[gǎn jué] 好[hǎo] 清爽[qīng shuǎng]。
不[bù] 坐車[zuò chē],不[bù] 邀[yāo] 游伴[yóu bàn],也[yě] 不帶[bù dài] 什么[shén me] 禮物[lǐ wù],就[jiù] 帶[dài] 著[zhe] 滿懷[mǎn huái] 的[de] 好心情[hǎo xīn qíng],踏[tà] 一[yī] 條[tiáo] 幽徑[yōu jìng],獨(dú)[dú] 自去[zì qù] 訪問[fǎng wèn] 我的[wǒ de] 朋友[péng you]。
本文介紹了一種中文文本漢語拼音自動(dòng)產(chǎn)生設(shè)計(jì)方案。通過運(yùn)用采用最大向前匹配、最大向后匹配法對詞句進(jìn)行分詞處理,再對條件概率表的拼音系統(tǒng)匹配,完成了注音。經(jīng)過實(shí)際測試,注音結(jié)果的正確率良好。
參考文獻(xiàn)
[1]?基于局部上下文特征的組合的中文真詞錯(cuò)誤自動(dòng)校對研究[J]. 劉亮亮, 曹存根. 計(jì)算機(jī)科學(xué) 2016, 43(12), 30-35.?DOI: 10.11896/j.issn.1002-137X.2016.12.005.
[2]?Kuckich K. Techniques for automatically correcting words in text[J]. ACM Computing Surveys?(CSUR), 1992, 24(4): 377-439
[3]?施得勝, 王良志, 陳志達(dá), 等. 基于統(tǒng)計(jì)的中文基于統(tǒng)計(jì)的中文錯(cuò)字偵測法[J]. 電腦與通訊, 1992, 8: 19-26.
[4]?施恒利, 劉亮亮, 王石等. 漢字種子混淆集的構(gòu)建方法研究[J]. 計(jì)算機(jī)科學(xué), 2014, 41(8): 229-232, 253
[5]?張照煌. 中文錯(cuò)別字自動(dòng)訂正方法初探[J]. Comm un i cations?of C0LIPS, 1994, 4(2): 143-149
[6]?劉亮亮, 王石, 王東升, 等. 領(lǐng)域問答系統(tǒng)中的文本錯(cuò)誤自動(dòng)發(fā)現(xiàn)方法[J]. 中文信息學(xué)報(bào), 2013, 27(3): 77-83.
[7]?黃炳羽. 對未來中文信息處理拼音文字性編碼方案的初步設(shè)計(jì)[J]. 西安文理學(xué)院學(xué)報(bào)(自然科學(xué)版), 2006, 9(4): 77-81.
[8]?趙博軒, 房寧, 趙群飛, 等. 利用拼音特征的深度學(xué)習(xí)文本分類模型[J]. 高技術(shù)通訊: 中文, 2017, 27(7): 596.
[9]?卓利艷. 字詞級中文文本自動(dòng)校對的方法研究[D]. 鄭州大學(xué), 2018.
[10]?趙瑛, 田宇, 李響. 漢語拼音移動(dòng)學(xué)習(xí)軟件設(shè)計(jì)開發(fā)研究[J]. 教師博覽(科研版), 2017(5): 11.
[11]?基于多種上下文信息的聯(lián)機(jī)手寫中文文本識(shí)別方法及系統(tǒng)實(shí)現(xiàn)[D]. 華南理工大學(xué), 2017.
[12]?ChurchKW, GalewA Probability scoring for spelling correction[J]. Statistics and Computing, 1991, 1(2): 93-103.
[13]?Islam A, Inkpen D. Real-word spelling correction using Google WebIT3-grams[C].?Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing. Volume3. 2009: l241-1249.