楊新生 胡立生
摘 要:古漢語在語法和形態(tài)上與現(xiàn)代漢語有著本質的區(qū)別。從統(tǒng)計的角度出發(fā),首先為古漢語設計一個標記集,將隱馬爾可夫模型(HMM)與維特比算法相結合,以此對古漢語進行詞性標注。通過對傳統(tǒng)方法的改進,最終bigram模型和trigram模型的標注準確率分別提高到94.9%和96.5%,同時未登錄詞的標注精度也有顯著提高。該方法應用于古漢語詞性標注中,能根據(jù)古漢語的特點有效提高標注精度,并且在古漢語機器翻譯等領域有廣泛應用。
關鍵詞:詞性標注;古漢語;隱馬爾科夫模型
Abstract:Classical Chinese is essentially different from modern Chinese in grammar and form. From a statistical point of view, a tag set is designed for classical Chinese firstly, then Hidden Markovian Model (HMM) and Viterbi algorithm are used to tag part-of-speech in classical Chinese. The accuracies of bigram model and trigram model are improved to 94.9% and 96.5% respectively compared to traditional method, and the accuracy of unknown words is also improved significantly. This method can effectively improve the accuracy of part-of-speech tagging according to the characteristics of classical Chinese, and has wide applications in the field of machine translation of classical Chinese.
Key words:part-of-speech tagging;classical Chinese;Hidden Markovian model
0 引言
詞性標注是自然語言處理的基礎。它為句子中的單詞選擇最恰當?shù)木浞悇e序列(詞性),并將其輸出傳遞到下一級處理中,通常是語法分析器。在過去的20年里,詞性標注的準確率在Penn Treebank[1]等著名英語語料庫中得到顯著提高。同時中文詞性標注的準確率也在顯著提高[2]。有許多用于詞性標注的機器學習方法,其中最成功的是基于規(guī)則和基于統(tǒng)計的方法。
典型的基于規(guī)則的標注器使用上下文信息為有歧義的單詞分配詞性標簽[3]。一般基于規(guī)則的標注器錯誤率要高于基于統(tǒng)計的標注器,該方法通過一組確定性的規(guī)則而不是一個大型統(tǒng)計表進行標注[1]。在基于規(guī)則的標注器中可以通過上下文規(guī)則作為約束來提高標注準確率。
基于統(tǒng)計方法的標注器無需對輸入進行任何句法分析就能夠獲得很高的精確度[2]?;诮y(tǒng)計的方法有很多,著名的有隱馬爾科夫模型和最大熵模型。隱馬爾科夫模型在詞性標注中應用最廣泛,它起源于維特比算法[4]。在該模型中,通常利用人工標注的語料庫進行訓練,以此獲得單詞-標記的概率[5]。最大熵模型可以更好地利用上下文信息,這種方法比隱馬爾科夫模型具有更高的精確度[6]。
隱馬爾科夫模型最大的局限性是未登錄詞的預測問題,以往研究表明對未登錄詞標注的準確率明顯低于已知單詞。在英文的詞性標注中,可以根據(jù)單詞后綴進行預測[1],但此方法對中文不適用。
現(xiàn)代漢語是沒有分隔詞的,例如以下短語“研究生命起源”,可以分隔為“研究生/命/起源”,還可以被分隔為“研究/生命/起源”。顯然,第一種分詞結果是錯誤的。正確的分詞是詞性標注的第一步,這使中文的詞性標注比其他語言更難。一般來看,古漢語是比現(xiàn)代漢語更難理解的,因為兩者所用的語法不同。但從詞性標注的角度來看,古漢語要更簡單,因為大多數(shù)詞都是單字形式,不需要分詞。
關于標點符號,古漢語是沒有標點符號的,本文所有輸入都通過人工的方式進行處理。國內(nèi)大多數(shù)古漢語文獻都已經(jīng)被手工加過標點,因此本文的方法仍然適用。
在未登錄詞預測方面,歐洲語言中的詞性標注大多數(shù)利用后綴或未登錄詞的上下文信息進行預測,但中文沒有后綴也沒有大小寫區(qū)分,特別是在古漢語中,一個字就是一個詞,所以無法繼續(xù)拆分。
與印歐語系相比,現(xiàn)代漢語和古漢語的處理過程,如圖1所示。
在計算機中,中文由GB/BIG5編碼表示,無法從編碼中獲取任何包含結構或意義的信息。本文將結合隱馬爾科夫模型提出簡單有效的方法來解決未登錄詞的標注問題。
1 古漢語的語料庫和標記集
標記集的設計對標注算法的準確性和效率至關重要,而大部分使用那些著名語料庫和配套標記集作為標準測試平臺的研究人員都忽視了這一點。此外,古漢語中的歧義要比印歐語系更多,因此本節(jié)將著重介紹語料庫的構建和標簽集的設計。
1.1 語料庫
為了評估文中的標注算法和標記集,這里利用一些經(jīng)典名著,如《論語》、《道德經(jīng)》等建立了一個小型語料庫。
該語料庫選擇文本的標準是:省略專有名詞,省略非常生僻的詞,省略特殊語法。由于這三個標準對大多數(shù)古漢語著作都成立,所以本文的語料庫確實反映了典型的古漢語特征。最后得到了大約1 000個詞的語料庫作為訓練集。對于測試集,這三個標準仍然成立。本文從《荀子》中選擇一段相對簡單的文本作為測試集,長度大約是200個詞。
1.2 標記集
標記集的設計存在一個權衡的過程,大小通常為20到400不等。一方面,為了獲得較高的自動標注精度,將動詞、形容詞等基本詞匯類別劃分為謂語、定語等子類別。這些區(qū)分很重要,但它會產(chǎn)生數(shù)據(jù)稀疏的問題。考慮到本文語料庫比較小,這里沒有使用過于精確的標記集。
漢語語法側重于詞語序列而不是詞形信息,因此它比印歐語系等缺乏靈活性的語言更加容易引起歧義。換句話說,對詞性標注來說上下文信息比詞匯信息更有價值??紤]到這一點,本文設計了一個標記集,它不僅包含詞匯類別,而且包含一個詞可能所屬的句子成分。例如,將形容詞分為4個子類別,如形容詞作定語等,這種區(qū)分是影響標注準確率的一個重要因素,如表1所示。
同時注意,此標記集中將標點分為兩類,分別為終止性標點和停頓性標點。
2 標注算法
本文的標注算法基于隱馬爾科夫模型實現(xiàn)。
2.1 隱馬爾科夫模型
為避免數(shù)據(jù)稀疏的問題,詞性標注器中n-grams通常n<4,本文使用了unigrams,bigrams和trigrams。
與傳統(tǒng)HMM不同的是,這里將詞頻表示為單詞-標記的概率,而不是標記-單詞的概率。
2.2 動態(tài)規(guī)劃算法
本文的標注算法基于Viterbi算法,本質上是動態(tài)規(guī)劃。為了編程的簡單性和標注的準確性,這里在每個句子前添加終止符標點,并假設每個句子都以句號結束。
2.3 未登錄詞處理
由于中文沒有后綴,歐洲語言使用的基于單詞后綴對未登錄詞標注的方法不適用于現(xiàn)代漢語或古漢語。本文提出對于訓練集中沒有出現(xiàn)過的詞,將其單詞-標記概率表示為每個標記的unigrams概率。例如,對于一個未登錄詞w,如式(10)所示。
3 結果分析
3.1 準確率
本文從《荀子》中選擇了一段相對簡單的文本作為測試集,長度大約為200個詞。首先測試了標記集和算法的學習曲線。隨著訓練集的增大,結果顯示如圖2所示。
同時還測試了整體的標注準確率,以及針對已知詞和未登錄詞的標注準確率。
圖2是標注器的學習曲線,可以看出標注準確率取決于訓練數(shù)據(jù)的數(shù)量。語料庫大小就是訓練集的長度。隨著語料庫的擴大,bigrams的準確率從74.0%上升到94.9%,trigrams的準確率從69.1%上升到96.5%。當語料庫較小時,trigrams的準確率低于bigrams,主要是由于數(shù)據(jù)稀疏問題。最后,當上下文信息更加豐富時,trigrams準確率則高于bigrams,如圖3所示。
從圖3的學習曲線可以看出對已知詞的標注,bigrams和trigrams的初始準確率分別為79.1%和74.7%。結果表明,相比大多數(shù)英文詞性標注的結果,對于古漢語的標注,已知詞的初始標注準確率較低。這主要是因為大多數(shù)英語語料庫中出現(xiàn)的單詞中有一半以上是沒有歧義的,但古漢語中歧義較多,因此當古漢語語料庫較小時會導致其標注準確率較低。
還可從圖3看出,對未登錄詞的標注,bigrams和trigrams的初始準確率分別為65.0%和60.8%。隨著語料庫的擴大,最終的準確率分別為85.1%和93.2%。trigram模型中對未登錄詞標注的高準確率表明,當上下文信息在特定位置具有很強的確定性時,能顯著提高未登錄詞的標注精度。
4 總結
本文提出并分析了一種簡單的基于語料庫和統(tǒng)計的古漢語詞性標注方法。首先為古漢語標注設計了一套標記集,然后將隱馬爾可夫模型(HMM)和維特比算法相結合來進行詞性標注,同時還提出一種針對漢語中未登錄詞的預測方法。最后本文構建了一個小型的古漢語語料庫,選取了一個典型而簡單的文本作為測試集。結果顯示,隨著訓練集的增大,bigrams的準確率提高到94.9%,trigrams的準確率提高到96.5%。
在應用方面,本文工作主要在兩個方面發(fā)揮作用:古漢語現(xiàn)代機器翻譯和古漢語信息檢索。對于今后的工作,首先需要解決古漢語的概率上下文無關文法(PCFG)。另外本文中程序使用的語料庫較小且不包含注釋,為了進一步研究可以先人工搭建一個中型語料庫或者使用其他機構提供的語料庫。
參考文獻
[1] Brill E. A simple rule-based part-of-speech tagger[C]// Proceeding of the 3rd Conference on Applied Natural Language Processing(ACL). 地點,時間 1992:152-155.
[2] 錢智勇,周建忠,童國平, 等.基于HMM的楚辭自動分詞標注研究[J].圖書情報工作,2014,58(4):105-110.
[3] Hindle D. Acquiring disambiguation rules from text[C]// Proceedings of 27th Annual Meeting of the Association for Computational Linguistics, 地點,時間1989:頁碼.
[4] Viterbi A. Error bounds for convolution codes and an asymptotically optimal decoding algorithm[J]. IEEE Trans. on Information Theory, 1967(13):260-269.
[5] 韓霞,黃德根.基于半監(jiān)督隱馬爾科夫模型的漢語詞性標注研究[J].小型微型計算機系統(tǒng),2015,36(12):2813-2816.
[6] 余昕聰, 李紅蓮, 呂學強. 最大熵和HMM在中文詞性標注中的應用[J]. 無線互聯(lián)科技, 2014(11):頁碼?.
(收稿日期:2019.08.21)