張琳琳 楊雅婷 陳沾衡 潘一榮 李 毓
1(中國科學(xué)院新疆理化技術(shù)研究所 新疆 烏魯木齊 830011)2(中國科學(xué)院大學(xué) 北京 100049)3(新疆理化技術(shù)研究所新疆民族語音語言信息處理實驗室 新疆 烏魯木齊 830011)
隨著移動互聯(lián)網(wǎng)的普及和社交媒體的興起,跨國家的語言交流日益頻繁,導(dǎo)致多語言特別是相似語言共現(xiàn)的現(xiàn)象在網(wǎng)絡(luò)社交語境中頻繁出現(xiàn)。語種識別特別是相似語言的識別需求也愈加迫切。語種識別作為機(jī)器翻譯、跨語言檢索等眾多自然語言處理領(lǐng)域的基礎(chǔ)環(huán)節(jié)一直是研究熱點,學(xué)術(shù)界普遍將語種識別視為一種“基于某些特征進(jìn)行文本分類”的特殊文本分類(text categorization)問題[1]。Cavnar等[2]提出了N-Gram詞頻排序的語種識別方法,基于該理論,F(xiàn)rank[3]設(shè)計了使用廣泛的語種識別工具Textcat,能對74種語言進(jìn)行識別。Campbell等[5]采用支持向量機(jī)(Support Vector Machine,SVM)進(jìn)一步提升語種識別的效果。
隨著語種識別的細(xì)分,針對短文本的識別也有很多。Vantanen等[6]利用N-Gram模型結(jié)合樸素貝葉斯分類器的方法對5至21個字符的短文本進(jìn)行識別。Tromp等[7]同時采用文本中的詞本身的信息和詞與詞之間的信息,構(gòu)造了一種基于N-Gram的圖結(jié)構(gòu)模型來進(jìn)行語種識別,有效提高短文本的識別效率。Lui等[8]獲取文本的N-Gram特征,以多項式樸素貝葉斯分類器構(gòu)造了語種識別工具Langid。郝洺等[9]通過修改特征詞和共同詞的權(quán)重對基于N-Gram頻率的短文本語種識別方法進(jìn)行了改進(jìn)。
近年來,隨著神經(jīng)網(wǎng)絡(luò)的重新興起,深度學(xué)習(xí)也開始應(yīng)用在語種識別上,尤其在語音的語種識別方面已取得不錯效果。在文本處理方面,尤其對短文本分類已經(jīng)有基于詞級和基于字符級的神經(jīng)網(wǎng)絡(luò)文本分類的研究基礎(chǔ)。如Zhang等[10]利用基于字符的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)對短文本的識別已經(jīng)達(dá)到不錯的效果。
由于社交媒體的興起,Carter等[11]結(jié)合用戶信息等對推特信息進(jìn)行語種識別。在社交媒體中,常出現(xiàn)相似語言共現(xiàn)的現(xiàn)象,相似語言的語種識別也成為研究熱點。在VarDial 2016會議發(fā)布的區(qū)別相似語言(Discriminating between Similar Languages,DSL)的任務(wù)中,Malmasi等[12]用SVM和邏輯回歸等傳統(tǒng)機(jī)器學(xué)習(xí)方法在參與隊伍取得第一。Cianflone等[13]則用了基于N-Gram和神經(jīng)網(wǎng)絡(luò)的兩種識別方法。之后,Marcelo等[14]在DSL2017上用基于詞的CNN模型實現(xiàn)相似語言的識別,Belinkov等[15]用基于字符的CNN模型在DSL2016上實現(xiàn)了整體83.0%的正確率。
文獻(xiàn)[16]研究表明,雖然語種識別整體研究成熟,但文本長度越短,語料越小,語種識別難度越大。同時,語言相似度越高,識別難度也越大。
本文提出了一種針對相似語言短文本的語種識別方法,以字符為輸入,構(gòu)建包含CNN和長短期記憶(Long Short-Term Memory,LSTM)的神經(jīng)網(wǎng)絡(luò)模型。此模型能同時獲取詞中的字符組合信息和詞與詞之間的信息,并且采用字符級輸入能解決大部分未登錄詞的問題。該方法在維吾爾語和哈薩克語、波斯語和達(dá)里語等相似語言上取得不錯的效果。
1994年Cavnar等[2]提出的基于N-Gram語言模型的語種識別方法在400字以上長文本語料上能達(dá)到99.8%的準(zhǔn)確率。但在社交媒體中更多的是150字以內(nèi)的短文本,論壇、移動社交應(yīng)用中的口語文本很多是在20詞以內(nèi),有效提高短文本的語種識別效果成為關(guān)注的焦點。同時,由于地域文化因素,往往地域相近地區(qū)所使用的語言也很相似,如在新疆地區(qū)維吾爾族和哈薩克族公共居住,所使用的維吾爾語和哈薩克語很相似,所以有識別相似語言的需求。
N-Gram是指一段給定的文本中包含N個最小分割單元的連續(xù)序列[17]。最小分割單元是根據(jù)具體應(yīng)用需要而自定義的基本對,在語種識別時一般是字符、字或詞(針對漢語、日語等語言時一般是字,英語等語言一般是詞)等。
N-Gram就是N-1階馬爾可夫語言模型的表示。假設(shè)在一段隨機(jī)變量序列S1,S2,…,Sm中,如果序列中任何一個隨機(jī)變量Si發(fā)生的概率只與它前面的N-1個變量Si-1,Si-2,…,Si-n+1有關(guān),即:
P(Si|S1,S2,…,Si-n+1)=P(Si|Si-1,Si-2,…,Si-n+1)
(1)
在語種識別中,需要統(tǒng)計每個N-Gram頻率作為詞頻。N-Gram模型把語料中連續(xù)的長度為N的字符或詞序列看作一個計算單元,其中第N個位置出現(xiàn)某個字符或詞的概率只與前面N-1個位置上的字符或詞有關(guān)。
基于N-Gram的語種識別方法的主要思想是Zipf定律[18]:在人類語言中,一個字或詞出現(xiàn)的次數(shù)與頻率表中它的排序成反比。
當(dāng)以字符作為最小切割單元時,能夠獲得字符間組合信息,但無法獲得詞與詞之間的信息。反之在Cianflone等采用的N-Gram模型中[13],以詞作為最小切割單元,雖然可以獲得詞與詞之間的信息,但無法獲取詞中字符間的信息。N-Gram模型往往不能很好兼顧詞本身的信息和詞與詞之間的信息。同時,像在法語、維吾爾語中很多詞只是詞綴不同但詞根相同,如果是選擇詞作為分割單元,就無法識別這些相似的詞,從而會出現(xiàn)未登錄詞的問題。
語種識別發(fā)展一直受到文本分類研究的影響。近年神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用到文本分類。Kim等[19]用CNN網(wǎng)絡(luò)實現(xiàn)了對句子文本的有效分類。Zhang等[20]利用基于字符的CNN模型對不同文本進(jìn)行分類,表明在不同數(shù)據(jù)集上基于字符的CNN網(wǎng)絡(luò)可以實現(xiàn)不錯的效果。Kim等[21]構(gòu)建的基于字符的神經(jīng)網(wǎng)絡(luò)語言模型很好地結(jié)合了字符信息和詞之間的信息。
同時在相似語言的識別中,研究人員嘗試了基于字符和基于詞級別的CNN神經(jīng)網(wǎng)絡(luò)。Cianflone等[13]在DSL2016任務(wù)中應(yīng)用基于字符的CNN結(jié)合雙向長短期記憶網(wǎng)絡(luò)可以達(dá)到87.5%的正確率。
但單純基于字符或基于詞級別的神經(jīng)網(wǎng)絡(luò)在文本語種識別中一般不便于同時兼顧文本中詞本身的信息和詞與詞之間的信息。
本文將文獻(xiàn)[12]構(gòu)建的神經(jīng)網(wǎng)絡(luò)語言模型進(jìn)行改進(jìn)并用于語種識別的分類模型。同樣以字符作為輸入,通過CNN、LSTM以及一個全連接層實現(xiàn)語種分類。CNN在字符級上對模型進(jìn)行訓(xùn)練后,可以獲得每個單詞的詞向量,該向量包含詞本身的信息。LSTM以上層的詞向量作為輸入,處理后能獲取詞與詞之間的信息。構(gòu)建的模型如圖1所示。相較于傳統(tǒng)的模型,本模型的優(yōu)勢在于一個神經(jīng)網(wǎng)絡(luò)中兼顧了字符級和詞級的信息。
圖1 模型結(jié)構(gòu)圖
與文獻(xiàn)[21]構(gòu)建的基于字符的神經(jīng)網(wǎng)絡(luò)語言模型一樣以字符向量作為輸入。首先,對文本中包含的所有字符進(jìn)行字符向量封裝,生成一個字符向量表。字符表是一個以總字符數(shù)為列數(shù)的矩陣,每一列對應(yīng)字符向量ci,維度是d。在輸入時,以每個詞中的字符向量輸入卷積神經(jīng)網(wǎng)絡(luò)。假設(shè)單詞w是由n個字符[c1,c2,…,cn]組成,則詞w是一個n×d的矩陣。
在卷積層中,包含一組可學(xué)習(xí)的濾波器(filter)或內(nèi)核(kernels),參數(shù)初始值可隨機(jī)設(shè)置。假設(shè)一個內(nèi)核的寬度是k,個數(shù)是f,則內(nèi)核是一個d×k的矩陣。按照CNN原理,詞w經(jīng)過內(nèi)核k卷積后,會生成一個f×(n-k+1)的矩陣,矩陣中位置為(fi,j)的點是由第i個內(nèi)核與詞w中列向量[cj,cj+1,…,cj+k-1]對應(yīng)位置數(shù)乘之和加上一個偏差bi得到。卷積完后再經(jīng)過池化層,本模型中采用最大池化。對這個f×(n-k+1)的矩陣的每一行取最大值,就變成一個長度為f的向量。由于有不同寬度的內(nèi)核,每個寬度f取值不同,得到的向量長度不同。最后將這些不同內(nèi)核的向量拼接成一個向量。如圖1所示,第一組內(nèi)核的寬度k取2,個數(shù)f取3,經(jīng)過卷積和池化得到一個長度為3的向量。最后拼接得到一個長度為11的向量。
經(jīng)過CNN每個詞都會得到一個向量。在文本分類領(lǐng)域,CNN展現(xiàn)了不錯的性能。由于語種識別很大程度上受到文本分類的影響,所以模型采用了CNN。本模型中每個詞以n×d矩陣為輸入,由于CNN局部感知的特性,能很好地提取詞本身的信息。內(nèi)核在矩陣上滑動進(jìn)行卷積的過程可以模擬成基于字符生成一個N-Gram單元,內(nèi)核寬度k,類似于取k-Gram。所以本模型能很好地提取詞本身的信息。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)相比于CNN,它在處理序列問題方面有很好的優(yōu)勢。比如基于時間序列:一段連續(xù)的語音序列,一段連續(xù)的文字序列等。由于RNN采用時序反向傳播算法,如果訓(xùn)練文本的長度較長或者時序t較小,會出現(xiàn)長期依賴問題。而LSTM通過引入門控單元和線性連接,能解決RNN中出現(xiàn)的梯度消失問題。鑒于此,本模型在構(gòu)建時選用了LSTM替代循環(huán)神經(jīng)網(wǎng)絡(luò)。LSTM在時序t的輸入是Xt,ht-1是前計算單元的隱藏層的輸出,ct-1是前計算單元的歷史信息,輸出是ht和ct,而it、ft和ot分別對應(yīng)t時的輸入門、遺忘門和輸出門,gt是實際加載當(dāng)前單元的信息,ct是在t時更新后的信息。計算過程如下:
it=σ(WiXt+Uiht-1+bi)
(2)
ft=σ(WfXt+Ufht-1+bf)
(3)
ot=σ(WoXt+Uoht-1+bo)
(4)
gt=tanh(WgXt+Ught-1+bg)
(5)
ct=ft×ct-1+it×gt
(6)
ct=ot×tanh(ct)
(7)
式中:W、U是神經(jīng)網(wǎng)絡(luò)的權(quán)重系數(shù);b是偏移系數(shù);σ和tanh都是神經(jīng)元激活函數(shù)。在實驗時可以根據(jù)效果調(diào)整LSTM層數(shù),如果是雙層LSTM,那么第二層的輸入it就是第一層的輸出ot。
模型中,前面CNN的輸出作為LSTM的輸入,由于每個詞經(jīng)過CNN后都有一個對應(yīng)的向量(可看作經(jīng)過CNN可以生成對應(yīng)詞的詞向量)。故LSTM實際上是以詞作為輸入,能很好地獲取句子中詞與詞之間的信息。
在本模型中,考慮到語種識別相當(dāng)于一種特殊的分類問題,所以LSTM層后接了一個全連接層。LSTM每個神經(jīng)元的輸出將作為全連接層的輸入,全連接層可以把通過CNN和LSTM提取到的信息綜合起來。全連接層在神經(jīng)網(wǎng)絡(luò)中相當(dāng)于一個分類器,對之前的卷積層、池化層、激活函數(shù)、循環(huán)神經(jīng)網(wǎng)絡(luò)的結(jié)果進(jìn)行總結(jié),再次進(jìn)行類似于模板匹配的工作,抽象出神經(jīng)元個數(shù)的特征存在的概率大小,得到各個特征,最終得到最后一層的神經(jīng)元個數(shù)的特征。當(dāng)然也可以認(rèn)為是對于之前的卷積層和池化層,循環(huán)神經(jīng)網(wǎng)絡(luò)之后得到的特征進(jìn)行加權(quán)和。在神經(jīng)網(wǎng)絡(luò)中加入全連接層,可以使得網(wǎng)絡(luò)的容錯性增加,同時加入全連接層帶來了計算量的增加,所以全連接層的輸出值被傳遞給下一層,最后采用邏輯回歸(softmax regression)進(jìn)行分類:
(8)
式中:yi是上層的輸出;j是總的語種識別類別中任意一個類。
在本模型中類別由相似語言的語種個數(shù)決定。由于數(shù)據(jù)集選取的都是區(qū)分兩種相似語言,所以本模型在實驗中要解決的問題是二分類問題。
為了驗證該模型在相似語言短文本的語種識別效果,使用了兩個數(shù)據(jù)集對相應(yīng)模型進(jìn)行了對比實驗。第一個數(shù)據(jù)集是相似語言維吾爾語和哈薩克語語料,基線是N-Gram模型;第二個數(shù)據(jù)集是DSLCC v4.0中的兩組相似語言,基線是CNN文本分類模型。
本模型主要針對的是相似語言短文本的語種識別應(yīng)用,所以要選擇相似語言的語料。相似度越高,識別難度越大,而且訓(xùn)練語料越大效果越好,所以最好選擇活躍的相似語言。在新疆地區(qū),維吾爾族和哈薩克族等少數(shù)民族聚居,在日常生活中經(jīng)常發(fā)生兩種語言共現(xiàn)的情況。維吾爾語和哈薩克語都屬于阿爾泰語系,共用很多字符和詞,相似度高,且使用頻繁方便大量獲取。在新疆地區(qū)和同屬于阿爾泰語系的一帶一路沿線地區(qū),實現(xiàn)基于維語和哈語的語種識別具有很大的現(xiàn)實意義。所以本文選取維語和哈語作為一組對照試驗語料。
通過網(wǎng)站爬取實驗語料,主要選擇兩種語料:新聞?wù)Z料和論壇語料。新聞?wù)Z料是規(guī)范文本,論壇語料則更接近口語文本。經(jīng)過爬蟲在兩種語料中分別獲取了相對均衡的維語數(shù)據(jù)和哈語數(shù)據(jù)。其中,文本中的一個句子表示一個樣本。
爬取文本后,考慮到可能出現(xiàn)亂碼和錯誤的沒有含義的字符,統(tǒng)一對語料進(jìn)行預(yù)處理,刪除了句子長度小于7個字符的樣本。
由于文本越短,識別準(zhǔn)確率越低。在模型LSTM層實際是以句子中的詞作為輸入,LSTM長度也是以樣本中最長句子數(shù)為長度。本模型主要針對的是短文本,所以在語料預(yù)處理時刪除了長度大于20個詞的句子。考慮到文本長度的影響,對語料每個句子中的詞數(shù)做了統(tǒng)計,如圖2和圖3所示。
圖3 論壇語料句子詞數(shù)的箱型圖
圖2是新聞?wù)Z料的句子詞數(shù)的箱型圖,可以看出新聞?wù)Z料中75%的句子的詞數(shù)都不大于16,一半句子的詞數(shù)都不大于14。圖3是論壇語料的句子詞數(shù)的箱型圖,可以看出論壇語料中75%的句子的詞數(shù)都不大于12,一半句子的詞數(shù)都不大于8。整體上,新聞?wù)Z料的句子長度大于論壇語料。從表1的實驗結(jié)果也可以看出句子較長的新聞?wù)Z料識別準(zhǔn)確率更高。
表1 在維吾爾語和哈薩克語語料上的實驗結(jié)果
語料預(yù)處理時,會將標(biāo)點、數(shù)字這些無效的字符用空格字符代替。并且每個詞的開始結(jié)尾部分添加“#”字符向量標(biāo)明字母開始結(jié)束位置。同理,每個句子的結(jié)尾添加“#”的詞向量標(biāo)明句子結(jié)束。LSTM為定長,句子詞數(shù)不足時用空格詞向量補(bǔ)齊。
作為對比實驗,表1中的N-Gram模型是根據(jù)Langid原理,字符級的基于N-Gram語言模型和多項式貝葉斯分類器實現(xiàn)的語種識別模型。一般N-Gram語言模型中的N越大,結(jié)果越好,但訓(xùn)練時間越長,系統(tǒng)消耗也越大,綜合效果與效率,在新聞?wù)Z料中當(dāng)N=7時準(zhǔn)確率已經(jīng)沒有明顯提升,在論壇語料中當(dāng)N=5時準(zhǔn)確率已經(jīng)沒有明顯提升。為了保證準(zhǔn)確率,選取較大的N時,N-Gram模型將比神經(jīng)網(wǎng)絡(luò)模型消耗更多(包括計算空間和時間),且如果出現(xiàn)字符數(shù)小于N的未登錄詞時,傳統(tǒng)的N-Gram可能無法識別,但神經(jīng)網(wǎng)絡(luò)模型卻不會有未登錄詞問題(類似N-Gram語言模型的平滑問題)。
從表1中可以看出,在維語和哈語的識別上,對新聞?wù)Z料和論壇語料,本文模型相對于傳統(tǒng)的N-Gram模型準(zhǔn)確率都有提高。且本文模型結(jié)構(gòu)簡單,對語料無論句子長短都有效果,可用于短文本語種識別。
DSL2017是相似語言和方言自然語言處理會議(Proceedings of the Fourth Workshop on NLP for Similar Languages,Varieties and Dialects,VarDial 2017)公布的比賽任務(wù),針對不同任務(wù)均提供了語料。DSL2017的語料包含6組相似語言或方言。提供的語料是新聞文本的小節(jié)選。DSLCC v4.0是DSL2017的語料。
鑒于本文模型主要是對相似語言的識別,所以沒有選取方言,選了印度尼西亞和馬來西亞語(Indonesian,Malay)、波斯和達(dá)里語(Persian,Dari)這兩組相似語言。由于這6組語言語料混合,所以需要通過標(biāo)記挑選出實驗需要的兩組語料。
從DSLCC v4.0挑選出的兩組相似語言因為都是新聞?wù)Z料,是規(guī)范文本,所有沒有刪除7字符以下可能的亂碼樣本,且這些語料都是短小的新聞節(jié)選。從圖4和圖5中也可以看出,句子詞數(shù)都不超過20,符合短文本的要求,故不需要刪除長樣本,其他處理和維哈語料相同。
圖4 印度尼西亞和馬來西亞語料詞數(shù)箱型圖
圖5 波斯語和達(dá)里語語料詞數(shù)箱型圖
對比實驗時,表2中的CNN模型是以Kim(2014)對句子分類的卷積神經(jīng)網(wǎng)絡(luò)文本網(wǎng)絡(luò)[21]為原型的簡單復(fù)現(xiàn)模型。實驗結(jié)果表明:針對印度尼西亞和馬來西亞語(Indonesian,Malay)、波斯和達(dá)里語(Persian,Dari)這兩組相似語言,且語料較小時,相比于CNN模型,本文模型能得到更高的準(zhǔn)確率。因此,本文模型在相似語言短文本的小語料上仍然有效。
表2 DSL語料上的實驗結(jié)果
不同語言在兩個數(shù)據(jù)集上的實驗結(jié)果表明:相比傳統(tǒng)的N-Gram語種識別方法和神經(jīng)網(wǎng)絡(luò)方法,本文提出的方法對相似語言短文本的語種識別性能更好。由于本模型的最小粒度是字符,比基于詞級別的語種識別方法能更好地識別未登錄詞,而且模型對語料有一定依賴性,在大規(guī)模語料上效果更好。另外,LSTM采用定長的神經(jīng)元處理句子,如果語料中樣本句子詞數(shù)很小,則利用空格補(bǔ)齊,在一定程度上會影響實驗性能。
本文針對相似語言短文本,提出了一種基于神經(jīng)網(wǎng)絡(luò)的字符級語種識別方法。首先,利用CNN提取字符組合的特征信息,可以更好地處理未登錄詞,并生成每個詞的特征向量。然后,將生成的詞向量輸入到LSTM網(wǎng)絡(luò)中,即可獲得詞與詞之間的信息。最后,在兩組語料上進(jìn)行實驗,結(jié)果表明本文方法可提升相似語言短文本的識別準(zhǔn)確率。但由于神經(jīng)網(wǎng)絡(luò)往往需要大規(guī)模語料保證效果,因此語料較大時訓(xùn)練時間較長。下一步將考慮加入語言語法信息,從而進(jìn)一步優(yōu)化完善模型。