烏云塔娜
(赤峰學(xué)院 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,內(nèi)蒙古 赤峰 024000)
淺談蒙古文單詞自動(dòng)識(shí)別系統(tǒng)的研究
烏云塔娜
(赤峰學(xué)院 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,內(nèi)蒙古 赤峰 024000)
在信息技術(shù)席卷全球范圍時(shí),具有悠久文化歷史的蒙古族人也不甘落后于時(shí)代的步伐,各種用途的蒙古文軟件也像雨后春筍般涌現(xiàn)出來(lái).本文中主要描述了對(duì)蒙古文單詞自動(dòng)識(shí)別系統(tǒng)(以下簡(jiǎn)稱(chēng)為蒙文單詞識(shí)別系統(tǒng))的介紹,設(shè)計(jì)過(guò)程及今后的發(fā)展展望.
Access;Unicode;音素
我國(guó)是一個(gè)統(tǒng)一的多民族國(guó)家.國(guó)家在《憲法》和《民族區(qū)域自治法》中規(guī)定,各民族都有使用和發(fā)展自己語(yǔ)言文字的自由,并積極幫助各少數(shù)民族用自己的語(yǔ)言文字發(fā)展教育.那么,對(duì)于使用人口有320多萬(wàn)的蒙古族而言,今后人們對(duì)蒙文信息處理方面的應(yīng)用和需求將不斷擴(kuò)大.因此,借鑒和吸收其他民族的先進(jìn)經(jīng)驗(yàn)及技術(shù),開(kāi)發(fā)實(shí)用的蒙古文軟件是我們今后的發(fā)展趨勢(shì).
蒙文單詞識(shí)別系統(tǒng)是以蒙古文單詞詞性為研究的系統(tǒng).它使用了Borland C++Builder集成開(kāi)發(fā)環(huán)境,以Microsoft Access 2003為后臺(tái)數(shù)據(jù)庫(kù),以?xún)?nèi)蒙古明安圖互連網(wǎng)技術(shù)開(kāi)發(fā)有限公司開(kāi)發(fā)的Mongolian Unicode Editor為編輯器開(kāi)發(fā)出來(lái)的.
對(duì)于用戶(hù)而言,蒙文單詞識(shí)別系統(tǒng)具有對(duì)用戶(hù)輸入的一段蒙古文文字或一篇蒙古文文章自動(dòng)識(shí)別每個(gè)單詞詞性的功能.而且,也為用戶(hù)設(shè)計(jì)了系統(tǒng)幫助模塊,主要是對(duì)用戶(hù)的使用加以了說(shuō)明.
對(duì)于管理者而言,蒙文單詞識(shí)別系統(tǒng)又分別設(shè)計(jì)了管理模塊和添加模塊.管理模塊中包括詞根管理、詞尾管理、詞典管理(主要是為了后續(xù)程序設(shè)計(jì)的方便,將蒙古文單詞的詞性用大寫(xiě)英文字母分別表示出來(lái),為此而建立的Access庫(kù))、用戶(hù)管理.添加模塊中包括添加詞根和添加詞尾,主要功能是為詞根庫(kù)及詞尾庫(kù)添加或刪除詞根及詞尾.
蒙文單詞識(shí)別系統(tǒng)由11個(gè)窗口組成,其中采用的工作界面是Windows模式的操作界面.用戶(hù)只要在相應(yīng)的命令上點(diǎn)擊鼠標(biāo)即可完成對(duì)應(yīng)的操作.系統(tǒng)針對(duì)用戶(hù)的主要工作界面如下圖1所示.
1.3.1 蒙文單詞詞性的識(shí)別
用戶(hù)需要將在Unicode下編輯的蒙古文通過(guò)Windows的記事本轉(zhuǎn)換成ASCII字符集的文本,再用蒙古文單詞識(shí)別系統(tǒng)中的文件->打開(kāi)命令即可完成蒙古文單詞詞性的自動(dòng)識(shí)別工作,也可對(duì)處理后的文本進(jìn)行保存、打印等操作.
圖1
1.3.2 詞根及詞尾的添加
這個(gè)操作主要是針對(duì)管理員而言的.首先從“系統(tǒng)基本操作”窗口中點(diǎn)擊“添加”菜單,然后從彈出的子菜單中選擇“添加詞根”命令,輸入您要添加的詞根以及此詞根對(duì)應(yīng)的輸入符,再?gòu)脑~性欄中選擇當(dāng)前的詞根所能構(gòu)成的詞性,點(diǎn)擊“確定添加”按鈕,出現(xiàn)如圖2所示確認(rèn)窗口,點(diǎn)擊“確定”,出現(xiàn)數(shù)據(jù)添加成功窗口,如圖3.
圖2
圖3
如果在圖2中選擇“取消”按鈕,系統(tǒng)將不添加您此次輸入的詞根.
添加詞尾的操作基本與添加詞根的操作相同.
字庫(kù)統(tǒng)計(jì)是蒙文單詞識(shí)別系統(tǒng)設(shè)計(jì)的重點(diǎn),如果字庫(kù)收集的全面、準(zhǔn)確的話(huà),將對(duì)后繼系統(tǒng)的判斷帶來(lái)很大的幫助.但是蒙古文自發(fā)展以來(lái)已有800多年的歷史,期間文字的演變就經(jīng)歷了好幾代,即使是在現(xiàn)在,蒙古文也有好幾種寫(xiě)法.那我們到底是以什么為標(biāo)準(zhǔn)呢?最后,由于時(shí)間及人力的限制,我們主要是依據(jù)《近代蒙語(yǔ)》整理了字庫(kù).
蒙古文文字本身是拼音文字,字母上下連書(shū),行款從左到右.其中詞的結(jié)構(gòu)可劃分為詞根、詞干及詞尾部分.單詞中直接由詞根組成的詞叫基本詞.由詞根、詞干及詞尾組成的詞叫合成詞.基本詞統(tǒng)計(jì)時(shí)較容易,我們只需將蒙古文文字的所有詞根從相關(guān)的書(shū)籍上查找到錄入到庫(kù)中就可以了.但也并不是說(shuō)一點(diǎn)問(wèn)題都沒(méi)有.例如:判斷這個(gè)詞時(shí)可以是名詞也可以是形容詞,這種詞只能到語(yǔ)句的環(huán)境中才可以識(shí)別.那我們建庫(kù)時(shí)到底把這個(gè)詞列入到名詞當(dāng)中還是形容詞當(dāng)中呢?我們采取的方法是將此類(lèi)文字的詞性設(shè)成經(jīng)常使用到的詞性,盡量減少錯(cuò)誤的發(fā)生.
字庫(kù)建立當(dāng)中,輸入詞尾時(shí)也出現(xiàn)了一些問(wèn)題.例如:輸入感嘆詞“因?yàn)槲覀兊南到y(tǒng)只能一個(gè)單詞一個(gè)單詞地識(shí)別詞性(在2.2程序設(shè)計(jì)中詳細(xì)說(shuō)明).所以在建庫(kù)時(shí)不管是輸入詞根還是詞尾,中間都不可以有空格.也就是說(shuō),比如你輸入詞尾時(shí),要是輸入成那系統(tǒng)就會(huì)出現(xiàn)錯(cuò)誤.所以解決這類(lèi)問(wèn)題時(shí),我們采取的辦法是庫(kù)中只存入“”,系統(tǒng)判斷時(shí)分兩次判斷,分別都輸出成感嘆詞.這樣也不會(huì)造成什么語(yǔ)法錯(cuò)誤.但是,這樣做只能解決部分問(wèn)題,像有些連詞就不可以了.如它不是重復(fù)一個(gè)單詞,而且分別把它們?cè)O(shè)成是連詞的話(huà),也有語(yǔ)法錯(cuò)誤.這是本系統(tǒng)所未能解決的問(wèn)題,希望今后能夠有機(jī)會(huì)完善此項(xiàng)工作.
蒙文單詞識(shí)別系統(tǒng)的程序設(shè)計(jì)思路是先將導(dǎo)入的文章截取出一行,之后以空格為依據(jù)劃分出單詞,再把單詞從頭至尾以2個(gè)字節(jié)為單位進(jìn)行切分(蒙文音素在計(jì)算機(jī)中占2個(gè)字節(jié)),切分一次就到詞根庫(kù)里查詢(xún)一遍,一旦從詞根庫(kù)里查詢(xún)到就把單詞的詞根部分去掉將剩下的詞尾部分到詞尾庫(kù)里判斷,最后在單詞后面以大寫(xiě)字母N、A、M、V、R、D、G、C、S、I(N/名詞、A/形容詞、M/數(shù)詞、V/動(dòng)詞、R/代詞、D/副詞、G/后置詞、C/連詞、S/語(yǔ)氣詞、I/感嘆詞)輸出詞性.例如:判斷的詞性時(shí),第一步,先切分出“”之后到詞根庫(kù)里找,沒(méi)有相匹配的,繼續(xù)切分單詞.第二步,切分出再到詞根庫(kù)里找,沒(méi)有相匹配的,繼續(xù)切分單詞.第三步,切分出再到詞根庫(kù)里找,有匹配的,就視乘下的部分為詞尾,提取出到詞尾庫(kù)里找匹配的.有匹配的輸出結(jié)果
程序流程圖如圖4所示:
當(dāng)然在系統(tǒng)的程序設(shè)計(jì)中還有一些不夠完善的地方:
1)由于系統(tǒng)在劃分單詞時(shí)是以空格為依據(jù)的,所以在字庫(kù)中不可以有空格.這將導(dǎo)致一些詞尾無(wú)法錄入到詞尾庫(kù)中,造成詞尾的遺漏.
2)由于Borland C++Builder中的RichEdit控件不是很好的兼容Unicode中編輯的文字,所以文章識(shí)別前需將在Unicode下編輯的蒙古文通過(guò)Windows的記事本轉(zhuǎn)換成ASCII字符集的文本,再用蒙古文單詞識(shí)別系統(tǒng)識(shí)別.這給用戶(hù)的操作帶來(lái)了一定程度的麻煩.
3)由于蒙古文文字是豎寫(xiě)文字,而我們使用的Borland C++Builder中的MCSprite組件不能很好的控制換行,所以本系統(tǒng)處理后的文字也是橫排的.這給用戶(hù)的觀(guān)看帶來(lái)了一定程度的麻煩.
4)由于本系統(tǒng)設(shè)計(jì)時(shí)先從詞根庫(kù)里查找,找到匹配的之后,就截取出詞尾到詞尾庫(kù)里查找,而這種設(shè)計(jì)方法對(duì)有些單詞判斷不了的.出現(xiàn)這種情況的單詞大部分是人名.比如說(shuō)
在上述的2.2節(jié)中已經(jīng)描述了本系統(tǒng)的程序還未完善的幾個(gè)問(wèn)題,其中包括文字的轉(zhuǎn)換與編排問(wèn)題,希望今后在本系統(tǒng)的完善工作中以上問(wèn)題能夠得到解決.
字庫(kù)的建立是本系統(tǒng)的核心部分.希望今后能夠建立起一個(gè)包含蒙古文全部詞根及詞尾的字庫(kù),為蒙古文文化的發(fā)展添磚加瓦.
蒙文單詞詞性識(shí)別工作全面完善之后,可對(duì)今后蒙古文句子成分的判斷帶來(lái)幫助,也可由此判斷句子的正誤情況,是一項(xiàng)有研究?jī)r(jià)值的題目.
〔1〕余明興,吳明哲.Borland C++Builder實(shí)例精解[M].北京:清華大學(xué)出版社,2001.
〔2〕哈斯額爾敦.近代蒙語(yǔ)[M].呼和浩特:內(nèi)蒙古教育出版社,1996.
TP391.4
A
1673-260X(2011)11-0052-02