金國哲,崔榮一
(延邊大學 計算機科學與技術學院,吉林 延吉 133002)
詞性標注是指為句子中的每個單詞標注一個正確詞性的過程。詞性標注是自然語言處理中的一項基本任務,是文本分類、機器翻譯等其他自然語言處理任務的基礎,同時在語音識別、信息檢索等領域起著重要的作用。目前,英漢等語種詞性標注研究比較成熟,而朝鮮語詞性標注則較為落后,需要結(jié)合朝鮮語的語言特性,做深入研究。
圖1 朝鮮語句子中的語節(jié)和形態(tài)素
表1 朝鮮語字母表
本文的主要工作有:
(1) 提出基于字母嵌入和seq2seq模型的朝鮮語形態(tài)素原形恢復方法。
(2) 基于LSTM-CRF[2]的朝鮮語音節(jié)單位詞性標注方法及形態(tài)素為單位的標注合并。
下文內(nèi)容安排如下: 第1節(jié)介紹朝鮮語詞性標注相關的研究,第2節(jié)詳細描述朝鮮語詞性標注過程中的形態(tài)素原形恢復方法及基于LSTM-CRF的以音節(jié)為單位的詞性標注方法,第3節(jié)是實驗過程及實驗結(jié)果分析,第4節(jié)是結(jié)束語。
常用的詞性標注方法有: 隱馬爾科夫模型、最大熵模型、條件隨機場模型等,而隨著近年來深度學習的流行,基于LSTM-CRF的模型在詞性標注任務中取得了良好的效果。朝鮮語詞性標注過程中同樣可以借鑒和使用這些模型。
朝鮮語詞性標注的研究分為兩類: 第一類直接應用形態(tài)素分析器再結(jié)合統(tǒng)計模型完成詞性標注,第二類則在詞性標注過程中間接完成形態(tài)素分析。
朝鮮語屬于黏著語,形態(tài)素之間的組合變化較多,若直接以語節(jié)為單位進行詞性標注,則容易引起數(shù)據(jù)不足的問題。采用第一類方法的學者認為,利用形態(tài)素分析器預先做好形態(tài)素分析有助于解決數(shù)據(jù)不足問題[3]。這些方法大都是基于概率的模型,例如,隱馬爾科夫模型[4]或最大熵模型[5]等。另外也有學者對上述兩種模型進行了改進,例如,Lee S等人[6]提出融合朝鮮語的多種語言特征,同時放寬隱馬爾科夫假設,以此解決訓練數(shù)據(jù)不足的問題。
反觀第二類方法,通常在詞性標注過程中,間接完成形態(tài)素分析。Han等人[7]提出將朝鮮語詞性標注任務分成三個階段: 語節(jié)為單位的形態(tài)素原形恢復;語節(jié)為單位的復合型詞性標注;利用規(guī)則從語節(jié)為單位的復合型詞性標注中獲取形態(tài)素詞性標注。其中第一步和第三步均采用詞典完成轉(zhuǎn)換工作。Shim等人[8-9]的方法同樣采用復合型詞性標注,但因為采用了更小的音節(jié)為單位的復合型標注,因此相比于Han的方法,復合型標注集較小,一定程度上解決了訓練數(shù)據(jù)不足的問題。Na等人[10]同樣采用了分三步進行詞性標注的方法: 利用CRF模型將語節(jié)分解成形態(tài)素,同樣利用CRF進行形態(tài)素單位的詞性標注,通過形態(tài)素原形恢復詞典獲得最終結(jié)果。本文提出的方法屬于第二類,同時借鑒了Shim等人提出的音節(jié)單位詞性標注方法。
首先將朝鮮語句子以語節(jié)為單位輸入到形態(tài)素原形轉(zhuǎn)換模塊(該模塊是利用同一個語料庫提前訓練好的模型),通過該模塊將句子中的每個語節(jié)轉(zhuǎn)換成對應的形態(tài)素原形,如圖2中的第1步所示。之后將第1步的結(jié)果句以音節(jié)為單位輸入到訓練好的LSTM-CRF模型中。由于LSTM-CRF模型訓練過程中針對無分寫的句子進行訓練,因此LSTM-CRF的輸出實際上包含兩類標注,其中一類是分寫標注,另一類是詞性標注。圖2中第2步的實際輸出如表2所示。
本文采用了標注集合{B,I}作為分寫標注,其中B表示一個語節(jié)的首音節(jié),I代表語節(jié)中除首音節(jié)外的其他音節(jié)。
圖2 本文采用的朝鮮語詞性標注流程
音節(jié)分寫標注BIBIBIIII詞性標注dmdmncpovbvbepefsf
第3步將每個語節(jié)中(根據(jù)分寫標注B、I判定語節(jié)邊界)詞性標注相同的相鄰音節(jié)進行合并,輸出最終的詞性標注結(jié)果。
通過“分析世宗21世紀語料庫”(人工標注過詞性)中的1 000萬條語節(jié),我們發(fā)現(xiàn)了以下幾條規(guī)律。
(1) 將近19%的朝鮮語形態(tài)素在詞性標注過程中發(fā)生了變形(由句子中的寫法轉(zhuǎn)化成形態(tài)素原形)。
(2) 轉(zhuǎn)為原形的形態(tài)素長度大部分比實際寫法增加了1~3個音節(jié)單位。
基于以上分析,本文提出朝鮮語音節(jié)嵌入融入seq2seq模型的形態(tài)素原形轉(zhuǎn)換方法,如圖3所示。
圖3 形態(tài)素原形轉(zhuǎn)換模型
下一步通過音節(jié)查詢表Ls和字母查詢表LJ,將音節(jié)s和s對應的三個字母Jf、Jy、Js轉(zhuǎn)化成對應的音節(jié)嵌入向量和字母嵌入向量,計算過程如式(1)~式(4)所示。
其中音節(jié)嵌入es為d維實數(shù)向量,字母嵌入eJf,eJy,eJs均為k維實數(shù)向量。下一步通過向量拼接操作將向量es,eJf,eJy,eJs拼接成(公式中用;表示)長向量e,作為seq2seq中編碼器和解碼器Cell的輸入向量,計算如式(5)所示。
e=es;eJf;eJy;eJs,e∈d+3k
(5)
為了保持字母嵌入向量的位置信息,未采用向量加或取向量平均,取而代之的是拼接操作。用S=s1,s2,…,sm表示輸入序列(一個朝鮮語語節(jié)的音節(jié)序列),用Y=y1,y2,…,yn表示該語節(jié)的形態(tài)素原形序列。模型通過上述輸入向量的生成方法把S中的每個音節(jié)轉(zhuǎn)化成向量表示e1,e2,…,em,作為編碼器LSTM的輸入。每一個LSTM Cell的計算如式(6)所示。
ht=f(et,ht-1), ?t=1,…,m
(6)
其中f表示一個LSTM Cell的映射函數(shù),通過當前輸入et和Cell的前一個狀態(tài)ht-1,輸出Cell的當前狀態(tài)ht。模型將最后一個狀態(tài)hm作為編碼器對輸入音節(jié)序列的編碼向量,傳遞給解碼器。
解碼過程在訓練和預測階段有所不同。訓練階段將正確的形態(tài)素原形序列右移一個單位,左側(cè)填充特殊符號
訓練階段解碼過程如式(7)、式(8)所示。
(9)
通過訓練好的形態(tài)素原形轉(zhuǎn)換模型,把原始朝鮮語句子轉(zhuǎn)化成形態(tài)素原形表示的句子,我們用X=〈x1,x2,…,xn〉表示這樣的一個朝鮮語句子,其中xi為代表第i個音節(jié)的索引值,Y=〈y1,y2,…,yn〉為一個句子的分寫—詞性標注序列。模型首先把X輸入到音節(jié)查詢表,通過查詢將每個音節(jié)xi轉(zhuǎn)化成固定長度的低維實數(shù)向量。訓練過程中將音節(jié)查詢表當作可訓練參數(shù),進行動態(tài)更新。我們用LT(X)表示經(jīng)過向量化的輸入句。
模型的最后一層通過CRF預測全局最優(yōu)的分寫—詞性標注序列,計算如式(10)、式(11)所示。
基于LSTM-CRF的朝鮮語詞性及分寫標注模型如圖4所示。
本文采用了“世宗21世紀詞性標注語料庫”,其中包括原始句文件和對應的詞性標注句文件,共計803 043條句對。
圖4 基于LSTM-CRF的朝鮮語詞性及分寫標注模型
針對形態(tài)素原形轉(zhuǎn)換模型的預處理:
(1) 利用原始語料庫的句子分寫信息,將86萬個句子拆分成1 000萬個左右的語節(jié),用于形態(tài)素原形轉(zhuǎn)換模型。同時在標準的詞性標注句中加入分寫標注,用于訓練LSTM-CRF模型。
(2) 生成字典:按照字符頻率從高到低進行排序,取前6 000個字符作為字典,未出現(xiàn)在字典中的字符用
(3) 索引化:根據(jù)字典將第一步中的字符序列轉(zhuǎn)化成對應字符的整型數(shù)字序列。另外,本文中涉及的RNN結(jié)構均采用dynamic RNN,因此訓練數(shù)據(jù)按照序列長度進行排序,生成各個batch后,再以batch為單位打亂batch間的順序。
(4) 將預處理的數(shù)據(jù)按照9∶1的比例分成訓練集和測試集。
實驗中采用的數(shù)據(jù)集結(jié)構如表3所示。
表3 數(shù)據(jù)集結(jié)構
實驗中采用了tensorflow1.2框架,并用NVIDIA的1070GPU進行了加速。
具體的模型參數(shù)配置如下:
(1) 形態(tài)素原形轉(zhuǎn)換模型:編碼器和解碼器均采用了4層LSTM疊加的縱向結(jié)構和動態(tài)RNN橫向結(jié)構,LSTM Cell的大小為256,batch size設置為128,學習率為0.001,采用了Adam優(yōu)化算法,經(jīng)過5個epoch的訓練最終得到朝鮮語形態(tài)素原形轉(zhuǎn)換器。
(2) 訓練LSTM-CRF模型:模型中雙向LSTM網(wǎng)絡的輸入是大小為(128×None×128)的張量,其中第一維代表batch size,第二維None(每個batch的長度都不同)表示LSTM網(wǎng)絡的步長(一個batch內(nèi)序列長度均等于batch內(nèi)最長序列的長度),第三維表示音節(jié)向量的大小。LSTM網(wǎng)絡的輸出部分將生成(128×None×256)的張量,其中256是前向和后向兩個LSTM的Cell拼接而成的向量大小。最后通過全連接及softmax函數(shù)得到(128×None×90)的張量,其中Wout大小為256×90,bout大小則是90。其中數(shù)字90的解釋如下:語料庫中的詞性標注集合共有45種,這些詞性集合與分寫標注集合(B,I兩種)組合形成90種輸出標注集合。
首先,實驗中復現(xiàn)了Shim等人提出的基于音節(jié)的形態(tài)素原形恢復詞典的方法,并與本文提出的基于seq2seq的方法進行了對比實驗。另外,為了驗證朝鮮語字母向量的有效性,實現(xiàn)了兩種seq2seq模型:音節(jié)嵌入+seq2seq,音節(jié)嵌入+字母嵌入+seq2seq。表4中Psyllable為以音節(jié)為單位的原形恢復準確率,Peojeol為以語節(jié)為單位的形態(tài)素原形恢復準確率。
表4 形態(tài)素原形恢復準確率
從實驗結(jié)果中可以看到,相比于基于詞典的形態(tài)素原形方法,基于seq2seq模型方法將音節(jié)單位準確率提高了2~3個百分點,將語節(jié)單位準確率提高了3~4個百分點。同時,由于取得了較高的形態(tài)素恢復準確率,最大限度地降低了本階段誤差傳遞到詞性標注階段,進而影響詞性標注準確率的風險。
其次,在相同的“世宗21世紀詞性標注語料庫”條件下,實驗中復現(xiàn)了相關研究中的幾種典型的朝鮮語詞性標注方法,分別是Lee等人提出的基于隱馬爾科夫模型的方法、Han等人2004年提出的形態(tài)素原形詞典結(jié)合統(tǒng)計模型(利用馬爾科夫假設)的方法、Shim等人2013年提出的以音節(jié)為單位的CRF模型,本文提出的基于seq2seq模型的形態(tài)素原形轉(zhuǎn)換+基于LSTM-CRF的詞性標注方法。表5給出了各個模型的實驗結(jié)果。
表5 實驗結(jié)果
可以看到,本文提出的方法在音節(jié)級準確率、形態(tài)素級準確率、形態(tài)素級召回率以及F1值均高于其他現(xiàn)有的方法,其中F1值相比于現(xiàn)有最好的音節(jié)單位的CRF模型提高了1.72個百分點。與音節(jié)單位的CRF模型相比本文提出的方法在音節(jié)標注準確率上較為接近。然而本文中提出的基于seq2seq的形態(tài)素轉(zhuǎn)換方法提供了較高的形態(tài)素原形恢復準確率,因此在形態(tài)素級的詞性標注任務中由于形態(tài)素本身的原形錯誤導致的詞性標注錯誤極少,這也幫助我們提高了詞性標注準確率。
本文提出了一種新的朝鮮語詞性標注方法。該方法將朝鮮語詞性標注過程分為三步: 第一步利用seq2seq模型將朝鮮語形態(tài)素以語節(jié)為單位轉(zhuǎn)化成原形;第二步利用LSTM-CRF模型以句子為單位進行音節(jié)級詞性標注;第三步根據(jù)音節(jié)級分寫及詞性標注進行合并,得到最終的形態(tài)素級的詞性標注結(jié)果。相比于現(xiàn)有最好的音節(jié)單位的CRF模型,本文提出的方法將F1值提高了1.72個百分點。未來工作中我們希望嘗試最近較為流行的端到端的訓練模型,并進一步挖掘朝鮮語本身的語言特征,用于提高朝鮮語詞性標注的準確性。