索南尖措 陳家威
摘? 要: 藏文虛詞校對是藏文自然語言處理的基礎(chǔ)問題。將西藏地區(qū)口耳相傳的藏文不自由虛詞添置口訣轉(zhuǎn)化為藏文不自由虛詞識別及校對規(guī)則。在基于規(guī)則和詞庫匹配的基礎(chǔ)上,使用Python語言實現(xiàn)藏文不自由虛詞校對算法,細(xì)化了校對過程。同時討論了藏文不自由虛詞校對算法實現(xiàn)過程中的特殊情況,供讀者借鑒。
關(guān)鍵詞: 藏文自然語言處理; 藏文不自由虛詞; 校對算法; Python
中圖分類號:TP301.6? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ?文章編號:1006-8228(2019)09-13-03
Research and implementation of Tibetan function word proofreading algorithm using Python
Suonan Jiancuo, Chen Jiawei
(School of Information Science and Technology, Tibet University, Lhasa, Tibet 850000, China)
Abstract: The proofreading of Tibetan function words is the basic problem of Tibetan natural language processing. In this paper, the Tibetan function word acquisition recipe handed down orally in Tibet is transformed into the Tibetan function word recognition and proofreading rules. On the basis of rules and lexicon matching, the Tibetan non-free function word proofreading algorithm is implemented in Python language, and the proofreading process is refined. At the same time, the special situation in the process of realizing the Tibetan function word proofreading algorithm is discussed, which can be used for reference by readers.
Key words: Tibetan natural language processing; Tibetan function words; proofreading algorithm; Python
0 引言
本文研究的是藏文文本自動校對中的藏文不自由虛詞校對。目前藏文不自由虛詞校對研究方面的文獻(xiàn)較少:拉毛措提出了藏文屬格助詞的識別和自動檢錯算法[1];青海民族大學(xué)藏文信息處理與軟件研究所的公保才讓和安見才讓提出了一種基于規(guī)則和藏文語法相結(jié)合的校對算法[2];青海民族大學(xué)的卓瑪吉、安見才讓主要研究藏文文本中大量藏文不自由虛詞的識別算法[3];西藏大學(xué)的拉巴頓珠、歐珠和趙棟材用規(guī)則和統(tǒng)計相結(jié)合的方法,建立了較為全面的虛詞知識庫和規(guī)則庫,并給出切分用虛詞分塊算法[4]。他們發(fā)表的文獻(xiàn)和所做的研究對后人做藏文不自由虛詞校對研究有著極大的貢獻(xiàn)。
本文是在參考公保才讓和安見才讓發(fā)表的《藏文虛詞添置校對算法研究與實現(xiàn)》一文基礎(chǔ)上進(jìn)行研究和撰寫的。
1 藏文不自由虛詞添置口訣介紹
經(jīng)過了解,藏族學(xué)生從小學(xué)時期就開始背誦藏文不自由虛詞校對口訣,用于檢查藏文不自由虛詞使用是否正確。在藏文中,不自由虛詞分為終結(jié)詞、為格助詞、屬格助詞、作格助詞、離合詞、飾集詞、待述詞、指人后綴、時態(tài)助詞和不自由虛詞(?????)等,接下來將以終結(jié)詞為例對口訣進(jìn)行介紹和解釋。
終結(jié)詞: ???? ???? ???? ???? ???? ???? ??? ??? ???? ???
口訣為:
?????????????????????
?????????????????????????
?????????????????????????????
????????????????????????????????
藏文終結(jié)詞有“??? ??? ??? ??? ??? ??? ??? ??? ??? ???”10個,它們用于句末時為不自由虛詞,表示一句話的結(jié)束。用于句中時則表示為實詞。如“???????、?????????”等。
以上四句口訣的意思為:終結(jié)詞的使用與終結(jié)詞前一音節(jié)字的后加字相對應(yīng),也就是當(dāng)前一音節(jié)字的后加字為??時,終結(jié)詞使用???;前一音節(jié)字的后加字為??時,終結(jié)詞使用???;依此類推。
其他不同種類的不自由虛詞口訣也與終結(jié)詞相似,描述的內(nèi)容都是不自由虛詞的使用受前一音節(jié)字后加字的限制。為了使所有的口訣及其解釋令讀者一目了然,更加直觀的了解藏文不自由虛詞添置規(guī)則,我們將其轉(zhuǎn)化成圖,如圖1所示。
2 特殊情況
在藏文不自由虛詞使用過程中,大部分的虛詞使用是按照圖1所示進(jìn)行使用,但還存在以下6種特殊情況。
⑴ 再后加字??有時候會省略:在藏文音節(jié)字中,后加字??、??、??后面的再后加字??一般情況下會省略,此時若按照規(guī)則進(jìn)行校對,則會出現(xiàn)錯誤。如?????????,若按照上文提到的規(guī)則進(jìn)行校對,不自由虛詞????應(yīng)該為使用錯誤,因為后加字為??,所以不自由虛詞應(yīng)使用????,但是由于?????省略了再后加字??,所以不應(yīng)該按照后加字為??的規(guī)則去校對。按照再后加字為?的規(guī)則去校對,不自由虛詞????使用正確。
解決辦法:搜集后加字??、??、??后面的再后加字??省略的詞語,形成一個詞庫,當(dāng)遇到“???????????????????????????????????????????????????????????????????”這些不自由虛詞時,判讀不自由虛詞前一音節(jié)字是否在詞庫中,若存在,則不自由虛詞使用正確;若不存在,則不自由虛詞使用錯誤。
⑵ ????和??這兩個不自由虛詞具有黏著性,與前一音節(jié)字之間不會用分隔符分開,因此極難判斷是不自由虛詞還是后加字或再后加字。如在?????和????中,????和??是再后加字和后加字(??省略),但是在 ?????和?????中,????和??是不自由虛詞,
解決辦法:建立詞庫,當(dāng)遇到音節(jié)字后加字位置或再后加字位置為??或??的詞時,判斷該詞是否在詞庫中,若存在,則????或??不是不自由虛詞,若不存在,則????或??是不自由虛詞。由于所需建立的詞庫的龐大,且個人能力有限,因此在本算法中,將后加字位置或再后加字位置為??或??的詞標(biāo)出,人工去判斷。
⑶ 指人后綴??和?,時態(tài)助詞:???? ????? ????? ????:由于指人后綴??和??和時態(tài)助詞???? ????? ????? ????用法靈活,沒有固定的規(guī)則可以判斷它們,目前還未了解到有效的識別及計算算法,因此在本算法中暫時先不判斷它們使用是否正確,只使用綠色將其標(biāo)注,供人工去判斷使用是否正確。
⑷ 10個實詞和不自由虛詞的兼類情況:“????,????,???,???,???,???,???,???,???,????”既可能是實詞也可能是不自由虛詞,如果不作處理就會出現(xiàn)錯誤。
解決辦法:搜集以上10個音節(jié)字為實詞中一部分的情況,形成一個詞庫,當(dāng)遇到“????,????,???,???,???,???,???,???,???,????”時,判斷前一音節(jié)字+不自由虛詞和不自由虛詞+后一音節(jié)字是否在詞庫中,若不存在,則證明為不自由虛詞,若證明為不自由虛詞判斷是否符合算法規(guī)則。
⑸ 如音節(jié)字???既是自由不自由虛詞,也是不自由虛詞此類一個音節(jié)字既有自由不自由虛詞的用法也有不自由虛詞的用法。
解決辦法:目前沒有較好的解決辦法,只能先搜集音節(jié)字???作為自由不自由虛詞時組成的詞組,創(chuàng)建詞庫,在文章中遇到???時,先判斷??+后一音節(jié)字是否在詞庫中,若在,則說明是自由不自由虛詞,忽略;若不在,則說明是不自由虛詞,再按照不自由虛詞的規(guī)則去判斷。
⑹ ????與????:原本在后加字??應(yīng)該使用????,但由于????單獨存在時既可能是一個實詞(“知道”),也可能是一個不自由虛詞。因此使用????代替????。
3 藏文不自由虛詞校對算法的設(shè)計與實現(xiàn)
3.1 藏文不自由虛詞算法的設(shè)計
????和??這兩個不自由虛詞具有黏著性(詳細(xì)介紹見2特殊情況②),需要建立龐大的詞庫才可以準(zhǔn)確識別;指人后綴??和??和時態(tài)助詞???? ????? ????? ????用法靈活,沒有固定的規(guī)則可以判斷它們。因此暫不考慮????、??、指人后綴??和??和時態(tài)助詞????? ????? ????? ????的校對。在本算法中,由于后加字位置為??或??的音節(jié)字太多,所以暫時不進(jìn)行校對。將指人后綴??和??和時態(tài)助詞????? ????? ????? 以及??? 使用綠色標(biāo)出來供人工檢測。
藏文不自由虛詞校對算法流程圖如圖2所示。
由于虛實兼?zhèn)涞囊艄?jié)字判斷方法與自由不自由虛詞和不自由虛詞兼?zhèn)涞囊艄?jié)字判斷方法相同,因此在流程圖中都?xì)w于一類。
3.2 藏文不自由虛詞校對算法的實現(xiàn)
本文使用Python語言實現(xiàn)算法,并以公保才讓《藏文虛詞添置校對算法研究與實現(xiàn)》一文中的實驗文本為例,輸出結(jié)果如圖3。
使用藏文不自由虛詞添置規(guī)則判斷此結(jié)果:由于????的后加字為??,因此后面的不自由虛詞應(yīng)該使用???,而不是????;由于???的后加字為??,因此后面的不自由虛詞應(yīng)該使用???,而不是???;由于?????后加字為??,因此后面的不自由虛詞應(yīng)該使用???,而不是???;由于???的后加字為??,因此后面的不自由虛詞應(yīng)該使用????,而不是????;由于???的后加字為??,因此后面的不自由虛詞應(yīng)該使用???,而不是???;由于??和??用法靈活,使用綠色輸出,供人工判斷;
與公保才讓《藏文虛詞添置校對算法研究與實現(xiàn)》一文中的輸出結(jié)果(輸出結(jié)果見《藏文虛詞添置校對算法研究與實現(xiàn)》一文)相對比, 發(fā)現(xiàn)其文章輸出的結(jié)果有兩處錯誤:的???人工判斷是正確的,但是其標(biāo)紅輸出了; 的???其前一后加字為??,因此不自由虛詞應(yīng)該使用???,不應(yīng)該使用???,但是其輸出結(jié)果中并沒有標(biāo)紅輸出。
而經(jīng)過人工判斷,本文所研究的藏文不自由虛詞校對算法輸出的不自由虛詞數(shù)量是正確的且判斷準(zhǔn)確。
4 總結(jié)
本文通過使用不同領(lǐng)域的十個不同大小的文本對該算法進(jìn)行測試,證明該算法除本文提到的幾種特殊情況外,在藏文不自由虛詞識別及校對方面,具有良好的效果。
但是由于藏文不自由虛詞校對過程中存在許多特殊情況。而其中有一些問題還尚未解決。
⑴ 由于指人后綴??和??和時態(tài)助詞???? ????? ????? ????用法靈活,沒有固定的規(guī)則可以判斷它們,在本文中還尚未解決判斷他們使用是否正確的問題,只得將它們使用綠色標(biāo)注出來,供人工檢測。
⑵ ????和??這兩個不自由虛詞的校對需要建立龐大的詞庫進(jìn)行詞庫匹配,由于本人能力有限,目前還未能解決這兩個不自由虛詞的校對問題。
⑶ 由于某些音節(jié)字自由不自由虛詞和不自由虛詞的用法兼并,如???????中的???等等,目前暫時使用詞庫匹配的方式進(jìn)行識別和校對,尚不能完全解決該類不自由虛詞的校對問題。
對于這些藏文不自由虛詞校對方面還未解決的問題,希望以后隨著詞庫的擴充和算法的更新可以解決。
參考文獻(xiàn)(References):
[1] 拉毛措.基于正則表達(dá)式的藏文屬格的識別及其檢錯算法研究[J].電子技術(shù)與軟件工程,2018.9:142-144
[2] 公保才讓,安見才讓.藏文虛詞添置校對算法研究與實現(xiàn)[J].信息與電腦(理論版),2013.12:203-204
[3] 卓瑪吉,安見才讓.藏文不自由虛詞的自動識別研究[J].商,2014.5:116
[4] 拉巴頓珠,歐珠,趙棟材.藏文自動分詞系統(tǒng)中虛詞識別算法研究[J].計算機應(yīng)用與軟件,2017.34(9):299-301,333