站內搜索

彝學研究 Yi Study

當前位置: 首頁 > 彝學研究 > 彝學研究論文精選

彝文自動分詞技術研究

作者:陳順強 發布時間:2023-11-26 原出處:《中文信息學報》2011年3期 點贊+(
摘要:該文介紹了彝文自動分詞的技術。首先闡述了研究彝文自動分詞的必要性和重要意義,然后介紹了彝文分詞規范的原則及詞表,討論了彝文分詞的算法,最后根據彝文的特性,設計了基于Java語言的彝文自動分詞軟件并得出了良好的分詞結果。
關鍵詞:自動分詞;彝文;分詞單位
這里是彝族文化網絡博物館,海量的數據,鮮明的彝族文化特色,是向世界展示彝族文化的窗口,感謝您訪問彝族 人 網站。

yiwend8.jpg2Ez彝族人網(彝人網)- 彝族文化網絡博物館

1 引言

彝文信息處理是一項龐大的系統工程,其中涵蓋了從字、詞、短語、句子、語篇等多層面的信息加工處理任務。彝文本是大字符集的字串,因此,彝文信息處理就增加了大字符集處理和字串到詞串處理這兩大塊任務。而詞是最小的、能獨立活動的、有意義的語言成分。彝文處理應用系統只要涉及語法語義(如檢索、翻譯、文摘、校對等),就需要以詞為基本單位。隨著對語言文字信息處理研究工作的不斷深入,在過去的十幾年里,彝文信息處理在編碼和輸入法方面做了大量卓有成效的工作,彝文字處理技術趨于成熟,并已逐步在普遍推廣中,彝文信息處理技術也從字信息處理逐步轉向語言信息處理,與漢語、英語和蒙、藏、維語等語種的信息處理一樣,彝文自動分詞是彝文信息處理中一項不可缺少的基礎性工作[1]。從應用需求來看,彝文分詞的主要目的是確定彝語自然語言處理的基本分析單位,為進一步開展彝語自動分析,彝文文字識別、文本校對、詞匯獲取,進而為實現機器翻譯、篇章理解、自動文摘、文本校對、自動索引等應用處理系統做好前期準備工作[2]。這里所研究的彝文指的是1980年國務院規定頒布使用的規范彝文。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

所謂的自動分詞,就是利用計算機把一個句子按照其中詞的含義、語法意義進行切分。分詞單位指的是一個詞它具有獨立的語義或語法功能,以彝文分詞規范為依據,有二字、三字詞或四字、五字的成語、諺語、格言等[3]。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

2 制定《彝文分詞規范》和分詞詞表

國家技術監督局1992年10月4日發布了中華人民共和國國家標注《信息處理用現代漢語分詞規范》,為現代漢語信息處理進一步發展制定了規范。中國臺灣“計算機語言學會”也為了適應中文信息處理的需求,于1995年制定了《資訊處理用中文分詞規范》。國家標準的制定為少數民族文字分詞規范的研究提供技術支撐,在制定《彝文分詞規范》的基本原則時,可以借鑒以上兩個分詞規范中的適合彝文特點的比較成熟的分詞技術。根據彝語的特點和規律,《彝文分詞規范》基于適用、實用、科學的角度從彝文信息處理的實際出發,確定了彝文的分詞原則并制定了一系列具體的規則,該規范不僅適用于彝語自動分詞、彝語詞性標注、詞法分析、句法分析等彝語自動分析,而且適用于以后的彝文自動識別、機器翻譯等彝文信息處理研究[4]。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

2.1 彝文分詞規范原則

2.1.1 語義上無法由組合成分直接相加而得到的字串應該合為一個分詞單位2Ez彝族人網(彝人網)- 彝族文化網絡博物館

2.1.2 單純詞的分詞單位2Ez彝族人網(彝人網)- 彝族文化網絡博物館

2.1.3 合成詞的分詞單位2Ez彝族人網(彝人網)- 彝族文化網絡博物館

2.1.4 駢儷詞的分詞單位2Ez彝族人網(彝人網)- 彝族文化網絡博物館

2.1.5 有明顯的分詞標記的分詞單位2Ez彝族人網(彝人網)- 彝族文化網絡博物館

這里所說的有明顯的分詞標記指的是: 空格或標點符號。比如,“/”符號,逗號、句號、分號、頓號、冒號、問號、嘆號、引號、書名號、括號、破折號、省略號、間隔號、連接號等,標點符號為結尾的具有很明顯的分隔標記,就將它切分為一分詞單位。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

2.1.6 二字、三字、四字或五字以上的諺語和格言的詞分詞單位2Ez彝族人網(彝人網)- 彝族文化網絡博物館

2.1.7 術語、熟語、外來詞、音譯詞及非彝文字其他詞的分詞單位2Ez彝族人網(彝人網)- 彝族文化網絡博物館

隨著社會的不斷進步,在日常生活中不斷出現許多術語、熟語、外來詞及音譯詞,在分詞中遇到科學術語、外來詞、音譯詞的時候應視作為分詞單位。例如:2Ez彝族人網(彝人網)- 彝族文化網絡博物館

yiwen-9.jpg2Ez彝族人網(彝人網)- 彝族文化網絡博物館

在彝文文本中出現的非彝文字符號,應該保留其原有的形式一律視作為一分詞單位。如: NBA CEO OTC 1234 3.14等等。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

根據彝語的特點彝文信息處理的發展及以上所述的分詞原則,這些原則都不是一成不變的死規定,而是隨著時代和語境的變化,可增可減。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

3 彝文分詞算法

對于英語來說一個字就是一個詞,而且詞與詞之間有空格,所以計算機分析的時候不需要再做分詞,而在計算機中分析彝語就必須對彝語進行分詞。彝語屬于漢藏語系藏緬語族彝語支,和漢字一樣都是方塊字。目前中文的分詞技術發展迅速,其算法也千姿百態都有利有弊。目前比較流行的中文分詞算法有: (1)基于字符串匹配的分詞;(2)基于理解的分詞;(3)基于統計的分詞[5]。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

4 基于Java彝文分詞技術的實現

根據彝文分詞實現目標,分詞程序運行的硬件平臺確定為普通PC 機,運行的軟件平臺是流行的Windows ,根據不同模塊實現的具體情況,選擇利用Java作為系統開發語言,利用Eclipse3.2+jdk1.6+Access平臺來實現彝文分詞設計開發。用Java語言中的TreeMap的結構特性和HashMap儲存方式。TreeMap[6]是一個可以將包含的鍵根據鍵名自動按升序排列的Map 集合,排列順序可以是默認也可以根據實際情況自己設定,用它來存儲詞的字頭,可以自動排成順序,在分詞的時候直接判斷輸入的內容在TreeMap 中是否存在,有就進行下一步,沒有就輸入下一段內容,大大節省時間。HashMap 是一個二元數據存儲集合,可以存儲鍵名和鍵值,最適合用來統計某些對象出現的次數,其訪問速度非???基于計算機自動分詞的研究.李瑞芳,孫健,李娜.沈陽化工學院學報.2008年3期.255。。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

4.1 彝文自動分詞處理流程圖

yiwenshuzihua.jpg

圖1 彝文自動分詞處理流程圖

從圖1中可以看出彝文分詞要經過以下幾個步驟:2Ez彝族人網(彝人網)- 彝族文化網絡博物館

(1) 導入文本。導入用于分詞的文本,在導入工程中可以選擇文本的格式,而目前本系統只支持純文本文件的導入。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

(2) 對文本進行預處理。為了提高分詞的準確性和速度,文本在進入分詞階段前都要先進行處理,做好相應的工序,如將長篇文本分成段落式,將段落文本再處理成以標點符號為單位的句子形式,盡量把句子斷得小一些。分詞時候系統一旦遇見以標點符號為首尾的就將預處理成分詞單位。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

(3) 將詞存儲到TreeMap中,并建立HashMap數組。利用Java中的數據鏈接方法,將彝文分詞詞典中的詞逐一給予讀取出來,按照上面分詞原則里的條件設置成長度為2字、3字、4字或者5字以上來區分詞,將其分別存儲到4個HashMap數組中,然后將獲取的所有詞的第一個字存儲到TreeMap結構中,以待下一步操作。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

(4) 對TreeMap結構和HashMap數組中彝文詞進行判斷。在這一步里,首先系統判斷輸入的字是否已經在HashMap數組中存在,如果不存在那就繼續匹配,再進行判斷。而如果輸入的字已經在HashMap數組中存在,那就將其送到臨時數組中進行判斷看TreeMap結構中是否有這個詞,如果沒有就返回HashMap中再進行判斷,如有該詞已經在HashMap數組中存在,而且跟設置的長度相匹配,就得出分詞的結果,否則將返回,繼續匹配判斷。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

(5) 得出分詞結果。一個詞已經過以上幾個步驟,順利到達終點,就成功結束,得出分詞結果。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

4.2 實現過程

文本進行預處理步驟的核心代碼:2Ez彝族人網(彝人網)- 彝族文化網絡博物館

Out; //輸出流2Ez彝族人網(彝人網)- 彝族文化網絡博物館

In;//輸入流2Ez彝族人網(彝人網)- 彝族文化網絡博物館

StringBuffer s1=new StringBuffer(); //緩沖2Ez彝族人網(彝人網)- 彝族文化網絡博物館

char a=in.read();2Ez彝族人網(彝人網)- 彝族文化網絡博物館

while (a !=-1) //判斷是否已到流的終點2Ez彝族人網(彝人網)- 彝族文化網絡博物館

{2Ez彝族人網(彝人網)- 彝族文化網絡博物館

if ((a==,‖a==?!琣==;‖a==、‖a==:‖ a==/‖a==?2Ez彝族人網(彝人網)- 彝族文化網絡博物館

‖ a==!‖a==“”‖a==《》‖a==()‖a==——‖a==……2Ez彝族人網(彝人網)- 彝族文化網絡博物館

‖ a== )) //一句結束2Ez彝族人網(彝人網)- 彝族文化網絡博物館

{2Ez彝族人網(彝人網)- 彝族文化網絡博物館

String s2=new String(s1);2Ez彝族人網(彝人網)- 彝族文化網絡博物館

out.write(""); //在句子前加2Ez彝族人網(彝人網)- 彝族文化網絡博物館

out.write(s2);2Ez彝族人網(彝人網)- 彝族文化網絡博物館

out.write(""); //在句子末尾加2Ez彝族人網(彝人網)- 彝族文化網絡博物館

out.write(/n); //換行2Ez彝族人網(彝人網)- 彝族文化網絡博物館

s1=new StringBuffer();2Ez彝族人網(彝人網)- 彝族文化網絡博物館

}2Ez彝族人網(彝人網)- 彝族文化網絡博物館

else if ( a==/)2Ez彝族人網(彝人網)- 彝族文化網絡博物館

s1=s1.append((char)32); //分詞位置空格2Ez彝族人網(彝人網)- 彝族文化網絡博物館

else if (a > 256 )2Ez彝族人網(彝人網)- 彝族文化網絡博物館

s1=s1.append((char)a);2Ez彝族人網(彝人網)- 彝族文化網絡博物館

a=in.read();2Ez彝族人網(彝人網)- 彝族文化網絡博物館

}2Ez彝族人網(彝人網)- 彝族文化網絡博物館

out.close();2Ez彝族人網(彝人網)- 彝族文化網絡博物館

in.close();2Ez彝族人網(彝人網)- 彝族文化網絡博物館

文本在預處理后,以字符數組的形式存儲起來,對TreeMap結構和HashMap數組中彝文詞進行判斷核心代碼:2Ez彝族人網(彝人網)- 彝族文化網絡博物館

//first為前一個詞,second為緊隨其后的詞2Ez彝族人網(彝人網)- 彝族文化網絡博物館

public static void add(String first, String currwd){2Ez彝族人網(彝人網)- 彝族文化網絡博物館

String key=first;2Ez彝族人網(彝人網)- 彝族文化網絡博物館

String sec=second;2Ez彝族人網(彝人網)- 彝族文化網絡博物館

boolean bb=HMap.containsKey(key); //Hmap是一個已存在的HashMap,用來存儲數組。在這里判斷 first 是否在 主map 中2Ez彝族人網(彝人網)- 彝族文化網絡博物館

if (bb==false) { //若 主map 中無,則添加2Ez彝族人網(彝人網)- 彝族文化網絡博物館

HashMap hm=new HashMap(); //首先,新構造一個 子MAP2Ez彝族人網(彝人網)- 彝族文化網絡博物館

hm.put(key, new Integer(1));//存儲主KEY 的頻率hm.put(sec, new Integer(1)); //存儲 主KEY 后面緊接著的那個詞頻率2Ez彝族人網(彝人網)- 彝族文化網絡博物館

HMap.put(key,hm); //將 主KEY 和對應的 子MAP 放入 主MAP 中2Ez彝族人網(彝人網)- 彝族文化網絡博物館

}2Ez彝族人網(彝人網)- 彝族文化網絡博物館

else //若 主map 中含有該詞2Ez彝族人網(彝人網)- 彝族文化網絡博物館

{2Ez彝族人網(彝人網)- 彝族文化網絡博物館

HashMap temp=(HashMap)HMap.get(key); //返回 主KEY 所對應的 子MAP ,進行值的修改2Ez彝族人網(彝人網)- 彝族文化網絡博物館

int count=((Integer)temp.get(key)).intValue()+1; //在子map中將主key次數加 12Ez彝族人網(彝人網)- 彝族文化網絡博物館

temp.put(key, new Integer(count));2Ez彝族人網(彝人網)- 彝族文化網絡博物館

if (temp.containsKey(sec)) //判斷 子map 中是否含有該詞2Ez彝族人網(彝人網)- 彝族文化網絡博物館

{2Ez彝族人網(彝人網)- 彝族文化網絡博物館

int value=((Integer)temp.get(sec)).intValue()+1; temp.put(sec, new Integer(value));2Ez彝族人網(彝人網)- 彝族文化網絡博物館

}2Ez彝族人網(彝人網)- 彝族文化網絡博物館

else2Ez彝族人網(彝人網)- 彝族文化網絡博物館

temp.put(sec, new Integer(1)); //若無,則將其存入子map2Ez彝族人網(彝人網)- 彝族文化網絡博物館

HMap.put(key, temp); //子map 修改完畢 ,將其重新放入 主map2Ez彝族人網(彝人網)- 彝族文化網絡博物館

4.3 分詞結果

通過對一段文本的切分測試如下:2Ez彝族人網(彝人網)- 彝族文化網絡博物館

切分前的文本:2Ez彝族人網(彝人網)- 彝族文化網絡博物館

wen1.jpg2Ez彝族人網(彝人網)- 彝族文化網絡博物館

切分后的文本:2Ez彝族人網(彝人網)- 彝族文化網絡博物館

1697982403780727.jpg2Ez彝族人網(彝人網)- 彝族文化網絡博物館

5 彝文分詞中存在的難點

5.1 彝文Unicode編碼

Java支持多國語言編碼,其內核是Unicode編碼。在Java中,字符都是以Unicode進行存儲的,由于Java的String類里的char都是Unicode編碼,所以我們可以直接用字符的機內碼來判斷和識別字符。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

彝文字與英文甚至和漢字的編碼體系都是不一樣的,所以在程序中就應該讓程序來判斷我們導入的是彝文文本還是英文或者是漢文,判斷是根據文字的內碼來進行的,漢字是用GBK編碼的內碼,GBK是為了推進Unicode的實施,同時也是為了向下與我國一直沿用的字符集標注GB2312完全兼容,電子工業部與國家技術監督局聯合頒布的一個新的漢字內碼擴展規范。微軟從Windows95簡體中文版就開始就在系統中采用了GBK編碼。GBK中漢字的編碼范圍為4E00~9FA5(十進制為19 968~40 869),其中有漢字(包括部首和構件)20 902個。西南民族大學和北大方正集團公司合作研制的Unicode彝文系統,其在Unicode中的編碼范圍0xA000~0xA4C6[7]。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

在程序中文字編碼的判斷方法如下:2Ez彝族人網(彝人網)- 彝族文化網絡博物館

/*str導入文本里的文字*/2Ez彝族人網(彝人網)- 彝族文化網絡博物館

Int num=str.charAt(0);//求出字符的內碼2Ez彝族人網(彝人網)- 彝族文化網絡博物館

If(num <=128)//英文2Ez彝族人網(彝人網)- 彝族文化網絡博物館

else if(num >=19 968&&num <=40 869)//漢字,GBK編碼范圍2Ez彝族人網(彝人網)- 彝族文化網絡博物館

else if(num >=57 344&&num <=58 565)//EUDC彝文編碼范圍2Ez彝族人網(彝人網)- 彝族文化網絡博物館

else if(num >=40 960&&num <=41 282)//方正Unicode彝文編碼范圍2Ez彝族人網(彝人網)- 彝族文化網絡博物館

5.2 對彝文歧義字段的處理

是不是有了分詞算法就能比較容易地解決分詞的精度和速度呢?事實遠非如此。彝文的語法和句法結構都比較復雜,不像英文那么簡單。一個句子在不同的場景或不同的語境下,可以理解成不同的詞串、詞組串等,并有著不同的意義。所以彝文句子中存在這很多歧義和多義的現象。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

分詞中處理歧義字段的方法很多有: 基于規則的分詞消歧,基于統計方法的分詞消歧等等。文本在預處理階段就用雙向掃描的方法來發現歧義字段,就是對同一個字段分別用正向匹配和逆向匹配方法掃描切分,如果正反掃描的結果都一樣就不存在歧義,反之則有歧義需要消歧。字段的歧義有交叉歧義和組合歧義,所以在分詞中最困難的還是消歧的技術[8]。如果能處理好消歧的問題,分詞的精度也會相應提高。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

5.3 對彝文未登錄詞識別

分詞中另一個難題還數新詞的識別,也就是未登錄詞的識別。在大規模真實文本處理中,會遇到許多在字典中都沒有收錄過,但又確實能稱為詞的那些詞。最典型的是人名、地名、機構名、術語等都是很難處理的問題,而且這些又正好是人們經常使用的詞,對這些詞語的識別是件非常困難的事。分詞系統中的新詞識別十分重要?,F今新詞識別準確率已經成為評價一個分詞系統好壞的重要標志之一[9]。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

目前彝文信息處理對未登錄詞識別這領域,還沒有專項地去做研究,只是在彝文分詞中遇到時候簡單解決下,這里采用是遇到新詞就在詞典中隨時加入新詞匯來解決。相信在信息處理技術的不段深入發展后會有所突破的。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

6 結束語

彝文分詞技術前幾年西南民族大學有老師用C語言做過研究,但是,用Java語言研究開發的本文還尚屬首例。本文經過研究設計得出的彝文自動分詞軟件,在對彝文真實文本分詞的時候得到的分詞結果還是比較準確的,驗證了本文初始的研究方案,將為后面的詞性標注、彝文文字識別、文本校對、詞匯獲取,進而為實現彝語自動分析、機器翻譯、篇章理解、自動文摘、文本校對、自動索引等應用處理系統做好前期理論基礎和技術支撐。誠然,彝文自動分詞技術現在還完全沒有達到國際國內其他語言自動分詞的水平,本軟件目前還沒有大量的推廣使用,僅在實驗室,不過其彝文分詞理論是比較成熟的。但相信在彝文信息處理技術的不段深入發展以后將會有所突破的。2Ez彝族人網(彝人網)- 彝族文化網絡博物館

這里是彝族文化網絡博物館,海量的數據,鮮明的彝族文化特色,是向世界展示彝族文化的窗口,感謝您訪問彝族 人 網站。

參考文獻:
[1] 沙馬拉毅.計算機彝文信息處理[M] .北京:電子工業出版社,2000:21-67.
[2] 陳順強.規范彝文字詞頻統計系統設計語實現[J].西南民族大學學報(自然科學版),2010,4:644-648.
[3] 陳小荷.現代漢語自動分析[M] .北京:北京語言文化大學出版社,2000:35-80.
[4] 劉開瑛.中文文本自動分詞和標注[M] .北京:商務印書館,2000:1-249.
[5] 李月倫,常寶寶.基于最大間隔馬爾可夫網模型的漢語分詞方法[J].中文信息學報,2010,24(1):8-14.
[6] 龐永慶,龐麗娟.21天學通Java[M] .北京:電子工業出版社,2008:20-300.
[7] 李金發.彝語真人發音詞典的開發[J].西南民族大學學報(自然科學版),2005,10:34-37.
[8] 傅永和.中文信息處理[M] .廣州:廣東教育出版社,1999:3-120.
[9] 石民,李斌,陳小荷.基于CRF的先秦漢語分詞標注一體化研究[J].中文信息學報,2010,24(2):39-45.

作者:陳順強,西南民族大學 現代教育技術中心,四川 成都。
原載:《中文信息學報》2011年3期;文字來源:參考網。

【聲明】本文轉自公開互聯網平臺,并經彝族人網排版發布,旨在公益宣傳彝族文化和彝區發展。文章僅代表作者觀點,不代表本網完全贊同或者證明其信息真實性。文章版權歸屬作者和原媒體,如著作權人不愿意在本網發表或文章有問題,請聯系我們進行刪除或修改。特此向作者和原媒體致以敬意和感謝!  (了解更多…)
台湾佬?偷拍?娱乐?中文网