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