張 巍, 李 雯, 陳 丹, 李增杰
(中國海洋大學信息科學與工程學院,山東 青島 266100)
基于隱含狄利克雷分布的多語種文本的自動檢測研究*
張 巍, 李 雯, 陳 丹, 李增杰
(中國海洋大學信息科學與工程學院,山東 青島 266100)
本文提出無監督的基于隱含狄利克雷分布(LDA)的潛在語義模型來處理多語種混合文本的語種鑒別問題。區別于一般的依據困惑度對模型進行篩選的方法,本文介紹一種基于最小描述長度(MDL)的新方法,用collapsed Gibbs Sampling(CGS)學習算法來訓練得到相應的LDA模型。本文采用mitlm工具包生成N-gram計數文件并構建了用于多語種識別的字符級語言模型。之后本文使用了3種不同的語種鑒別系統與LDA模型做對比實驗。實驗選取ECI/MCI標準數據庫中9種歐洲系語言進行鑒別實驗,在沒有任何標注的情況下,實現了較好的準確率和召回率結果。
多語種識別;無監督;潛在狄利克萊分配;最小描述長度;Collapsed Gibbs抽樣
隨著現代互聯網技術的不斷發展,海量的文字信息隨之產生,其中會出現不同語種的混雜現象。多語種識別問題在網絡文本的自然語言處理領域是普遍存在的。在全球信息化的今天,同一網頁文本中出現兩種或者兩種以上語言文字的可能性是很大的。如何從混合文本中找出某種語言或者按照語種分類文本就很有應用價值了。
多語言文本識別的研究側重于對算法和模型進行改進和優化,目前的主要研究方式都是利用監督或者半監督的方法進行標注等研究,而這些方法會存在一些問題。比如當文本中含有非語料庫語言時,那么用基于這個語料庫訓練出的模型就不能識別該文本所有的語種。或者訓練語料最初就是混合有一些未知語種的,對于這些未知的語種,我們所了解的信息可能十分有限,所以若要構建單語語料庫就會變得相當麻煩。比如要從維基百科等頁面獲取語料構建單語語料庫時,通常會混合多種語言。其中有些語言對我們來說是完全陌生的,還有些關系親近的語言混合在一起,很難用預訓練語言識別工具識別出來。
現有的監督和引導方法仍難以解決這些問題,因此找到一個完全無監督的語言識別方法是尤其重要的。本文針對這一問題,提出了一種完全無監督的語言識別方法。在該方法中,將基于語料庫的N-gram計數作為語言特征文件,不做任何平滑、修剪或插值處理。從語言識別的角度,對隱含狄利克雷分布(簡稱LDA)主題模型進行了重定義。采用基于LDA模型的CGS抽樣(Collapsed Gibbs Sampling)來實現無監督的語言識別。同時,區別一般的依據困惑度對模型進行篩選的方法,本文將介紹一種基于最小描述長度原則的新方法。
文本的多語種識別系統就是對需要計算機加工的以文本為載體的多種自然語言進行語種判定。系統需要對混雜了各種語言的文本進行語種識別,首先要做的就是收集各種語言文字的文本語料以用來構建語料庫,然后提取各種語言的內在結構的規律和特征。每種語言的特征都有區別于其他語言,對該自然語言進行內在規律的描述就需要建立語言模型[1]。
本文的主要任務是對基于LDA的多語種識別模型的構建進行相關研究。首先選擇性能最佳的mitlm工具包(其下載網址為http://github.com/mit-nlp/mitlm)生成N-gram計數文件,完成字符級語言模型的訓練工作并構建用于多語種識別的字符級語言模型。然后將langID語種識別系統、Guess_language語種識別系統和本方法進行對比實驗,并對實驗結果進行了詳細分析。最后,通過基于LDA的CGS來實現無監督的語種識別算法,成功構建了基于LDA模型的字符級統計語言模型,解決了表示問題。實驗結果表明:在沒有任何標注的情況下,通過改進LDA主題模型困惑度的問題,將基于LDA模型多語種識別方法與最新的監督學習識別工具相比,表現出具有可比性的精確度和召回率。
2.1 LDA模型基本理論
為了能夠使用無監督的方法鑒別語種,本文采用主題模型領域中的LDA模型。主題模型是對文檔中發現隱藏的抽象主題的一種統計模型方法。LDA模型[2]是主題模型中最流行的一種,它是對文檔集進行聚類的過程,在聚類之前需要說明要聚成的主題數目是多少。其過程是一種無需監督的學習方式,包含著兩個層次的映射:文檔~主題~詞匯。
如果給定文檔集的主題數為K個,則每個文檔對應于含有K個潛在主題的多項式分布。其中第k個主題對應于一個覆蓋詞匯表的多項式分布Φk。詞匯表由給定語料中所有互異的單詞構成。對于第j個文檔,它對應于主題的分布θj是以α為參數的狄利克萊分布作為先驗分布。對于第k個主題,它對應于詞匯的分布Φk對是以β為參數的狄利克萊分布作為先驗分布。第j個文檔中的第i個單詞xij,先由文檔~主題的分布θj生成j文檔中第i個單詞的主題zij=k,再由主題~單詞的多項式分布Φk生成單詞xij。因此,LDA模型的生成過程表示式為:

其中:Dir(*)表示狄利克萊分布;Mult(*)是多項式分布。
2.2 LDA的語言識別
傳統的LDA的思想是文檔被表示成潛在主題的隨機混合,每一個主題都是一個詞的分布。為了將LDA應用到語種鑒別中,我們把句子表示成潛在語言的隨機混合,在這里每種語言以N元計數的形式表示。
這種方式實際上就構成了文檔~語言和語言~N-gram的層次結構。它也可以通過LDA建模的方式來實現語種識別,在本文中暫稱為LDA-LI。下面給出了生成LDA-LI模型的偽代碼[3]:
//Language plate
for all languages k∈[1,K] do
//document plate
for all documents j∈[1,D] do
sample document lengthNj~Poiss(ξ)
//n-gram plate
for all n-grams i∈[1,Nj]in document j do

sample document lengthNj~Poiss(ξ)。
在LDA-LI的識別階段,一個文檔無論長短都會以一定的概率被歸類為某種語言。一個文檔可能以不同的概率從屬于多個主題,那么就選擇概率最大的那種語言作為該文檔的從屬語言。我們就認為這個文檔是以最大的可靠性分類到該語言的。本文中識別單位是句子,也就是一句一句鑒別語種。LDA模型很嚴格,如果一個句子中含有幾個其他語種的單詞,該句子就會被鑒別為其他語種。而我們選取的ECI/MCI標準數據庫中句子語種比較單一,語種混雜的情況非常少,所以有較好的語種分類可靠性。
3.1 Gibbs抽樣


3.2 樣本文檔和特征空間
語料庫在使用之前要先轉換成對應的樣本文檔。首先將文本文件轉成基于字符的N-gram計數文件,每一行代表一個句子的N-gram計數信息,這些計數信息又包含了該句子所含有的元組和它們出現的次數。
N-Gram計數中N的選取關系著統計語言模型的性能好壞。當N較大時,提供了更多的語境信息,等價類的區別性大但是可靠性低,計算量大,訓練語料需要很多;而當N較小時,語境信息少,等價類的區別性小但是可靠性高,計算量小,訓練語料需要不多。由于N-gram計算是有代價的,一般計算復雜度是N的指數分布。所以在自然語言處理當中,N小于等于5。基本上對于亞詞級和詞級語言現象,N從1~5基本可以覆蓋。故本文將N設置在1~5之間,它可以從短元組或長元組中獲取更多的信息。由于LDA具有平滑稀疏數據的能力,因此在這里只使用原始的N-gram計數,它可以不經過任何平滑,修剪或插值處理。實際上,平滑和修剪處理完全由超參數完成,它通常被配置較小的默認值(<1)。
3.3 模型選擇和主題數
LDA主題模型的一個重要問題是如何確定適當的主題數量,這屬于模型選擇問題[5]。在大多數情況下,常常用困惑度來評價數據模型在主題數取不同值時的表現,其公式為:

其中:njv表示測試數據中第j個文檔的第v個詞出現的頻率。如果模型是使用Gibbs抽樣得到的,可以使用每個單詞出現的概率來計算困惑度。其公式為:
但在實際情況中,困惑度始終會隨著主題數量增加而降低。一般而言,困惑度越低越好。但是能夠得到困惑度低的主題數可能遠遠大過實際的主題數。由于困惑度不一定要偏向小的主題數。因此使得困惑度在相同識別性能下可能不是尋找最小主題數的好方法。
所以在本文將介紹基于最小描述長度準則的新方法來尋找到盡可能小的主題數。最小描述長度準則是奧卡姆剃刀的一種形式化,其思路是:給定一個假設集合,能使得數據得到最小壓縮的假設就是最好的假設。MDL是由Rissanen在1978提出的[6]。Grünwald 在2005年又對這種方法作了改進[7],這里使用改進的MDL。在給定模型T下數據D的復雜度如公式為:
Complexity(D|T)=L(T)+L(D|T) 。
L(T)是模型T的參數復雜度,而L(D|T)表示數據D在模型T的分布下的最小編碼長度。一般來說,沒有一種簡單的方法表示L(T)和L(D|T),但考慮到LDA為貝葉斯模型,如下公式可以結合測試集上w的聯合熵和給定的主題模型T寫為:

根據最大熵原理,每個文檔應該有相同的發生概率,那么在測試集的文檔上主題分布的估計為


H(w|k)=-∑jβjklogβjk。
需要注意的是,那些不存在于測試集但存在于訓練集的條件項,在最大熵原理下具有相同的概率。
這樣,公式的第一個參數懲罰具有更多主題的模型且偏差對H(w,T)的影響比對困惑度的影響小。因為在不同的測試集H(T)和H(w|T)隨著pk的更改而更改,所以改進后的方法明顯提高了H(w|T)的有效性。
4.1 系統實現流程
多語種識別系統分為2個階段:第一個階段是LDA模型的偽訓練過程;第二個階段是利用LDA模型進行語種識別。系統流程圖如圖1所示:

圖1 系統流程圖Fig.1 System flowchart
第一階段為數據偽訓練階段。首先選定合適的語料庫,接下來進行數據的預處理工作。由于語料庫的數據不能直接用來構建N-gram計數,在實際操作中我們需要對語料中的標點符號、數字、大小寫等字符進行一些處理。根據需要保留一些有助于語種識別的符號并刪掉一些相對于語種識別來說無關緊要的符號。得到預處理過的數據以后,選擇可靠性高的mitlm語言模型工具生成1~5元的N-gram計數文件。得到N-gram計數文件的過程就是提取語料特征的過程。接著對數據集進行Collapsed Gibbs采樣直到其收斂并更新LDA模型的參數。
第二階段為語種識別階段。首先對測試文本也做特征提取工作,根據需要保留一些有助于語種識別的符號并刪掉一些相對于語種識別來說無關緊要的符號。然后將抽取出的1~5元N-gram計數文件通過Collapsed Gibbs抽樣直到其收斂,就可以得出主題分布,即語種分類結果。
4.1 語料庫的抽取
在實驗中,使用初始歐洲語料庫/多語言語料庫(ECI/MC1)。它是在語言識別的研究(中使用最廣泛的一個語料庫,包含27種不同語言,有著小說,詩歌等多種豐富的語料環境。
在這個語料庫挑選其中的9種語言進行實驗。每種語言的名稱、字符標識以及選取語言的字母數如下:荷蘭語(DUT-291K)、英語((CHI-108K)、法語(FRE-108K)、德語(GER-171K)、意大利語(ITA-99K)、葡萄牙語(POR-107K)、西班牙語(SPA-107K)、瑞典語(SWE-91K)和土耳其語(TUR-109K)。對每種語言,我們使用90%的訓練數據及10%的測試數據。
4.2 文本預處理
直接從上面語料庫抽取到的數據格式是混亂的,需要對這些數據進行一系列的預處理才可以進行下一步的識別實驗。文本預處理的步驟如下:
第一步:為了能讓mitlm能夠按照句子統計詞頻
將抽取到的數據以句子為單位進行分割。文本分割功能利用Perl腳本編寫程序實現,生成一行為一個文本文件的多個小文本文件。
第二步:由于語料庫包含多國語言,有些語言包含特殊字符,如果編碼格式不對,打開文本是就會顯示亂碼。所以需要在程序中統一語料文本的編碼格式為UTF-8,解決亂碼不識別的問題。
第三步:對于語料庫分好的小文本數據,需要對多余字符以及空格進行處理。由于標點符號、數字等對語言識別的結果沒有多少貢獻意義,因此,將語料文本中的語料除了字母(包括特定字母)和上撇號保留外,其余的字符刪除。由于在刪掉一些字符的情況下,會留出多余的空格。因此在上一步處理完成后,需要將多余空格合并。為了標識空格我們使用space_這個標識替換句子中的所有空格。
4.3 N-Gram計數文件處理
本文選用mitlm工具構建1~5元統計語言模型。首先把9種語言的文本數據混合,一共用10組訓練數據,每組9個文本文件。通過文本的預處理得到了數以萬計的小文本。一條mitlm命令只作用于一個小文本文件,所以我們使用批處理命令以方便同時處理大量文本,將它們按照以下命令格式寫入train.sh文件:
./estimate-ngram-o 5-t./task/0/fre.txt-wc./task/0/fre.counts
-t后面是輸入文本的路徑,-wc是輸出文本的路徑。
將生成的命令列表train.sh拷貝到Ubuntu12.04下,打開命令終端,輸入chmod a+x train.sh,使得train.sh獲取執行權限。然后再輸入:dos2unix train.sh。最后運行./train.sh。
mitlm在處理文本時會自動地在句首和句末分別加上這樣的界定標志。因為在一元模型中不需要這種界定標志,所以需要將一元中的帶標志的項刪掉。為了后續實驗的順利進行,還需要對處理后的文本進行文本后處理。
以生成5元計數文件格式為例,說明文本后處理過程:
第一步:將預處理中的標記、、space_刪掉。
第二步:檢查生成的小文本個數和源文本個數是否一致。如果一致,則匯總小文本,將它們合并到同一個文本中。如果不一致的話,執行第三步。
第三步:在mitlm中產生計數文件時,會把小于4個字符的文本自動忽略。這就導致了生成的計數文件個數小于源文件夾中文件的個數,因此需要做對比刪除處理,在源文件夾中刪掉計數文件中沒有的文件,然后再按序合并。
在構建完成字符級的N-Gram統計語言模型之后,在此基礎上,本文接著進行了2個關鍵實驗,第一個實驗是LDA-LI系統主題數目與困惑度的關系實驗,第二個實驗是采用10折交叉驗證的方法分別進行LDA-LI與langID和Guess_language識別系統的測試和對比試驗。
5.1 LDA-LI系統主題數目與困惑度的關系實驗
本節實驗將對LDA-LI取不同的主題數值來驗證語種識別的困惑度。由圖2可以看出,隨著主題數目取值越大,語種識別的困惑度就越低。我們知道,困惑度越低就說明在識別模型的性能越高。但是,只一味地追求低困惑度似乎不那么可靠。獲得低困惑度的主題數目遠遠高于實際的主題數目。
不同于困惑度的選擇,使得LDA-LI的描述長度H(w,T)達到最小值的主題數是9,和實際的語種數目一樣。如圖3所示,發現在沒有任何標注的情況下,MDL這種方法似乎知道實際的語種數。

圖2 主題數目和困惑度的關系Fig.2 The relationship between topics and perplexity

圖3 主題數和H(w,T)的關系Fig.3 The relationship between topics and H(w,T)
由圖2和3可知,主題數目取9時LDA-DI的描述長度H(w,T)達到最小值,和實際語種數一樣。而如果一個句子含有幾個其他語種的詞,該句子會被單獨作為一個Clustering/Topic。所以通常情況下,Topic Number會比實際語種數稍大。實際上,在主題數目選擇為12或者16的時候,LDA-LI的識別準確率和召回率是最好的。主題數目為12的時候識別所用的時間也比主題數為16的時候好。因此,MDL實際上給出了一個參考的語種數目,LDA-LI中需要兩個或者更多的主題來描述一種語言。
5.2 10折交叉驗證實驗
我們已經分好了10組測試數據,將分別在langID[8]工具、Guess_language[9]識別工具和LDA-LI系統上進行測試。需要說明的是,我們假定langID工具和Guess_language識別工具中的語言模型是通過非常大的訓練語料庫訓練得到的。我們直接使用工具中的模型。LDA-LI使用的模型則是通過有限的語料庫得到的。首先,我們對3種工具都通過10組測試文本進行識別,完成所有識別任務就可以得到1~10組的實驗結果。
然后,每一組識別結果用txt文本的格式保存。之前我們保留了測試文本中的語言分布情況,根據語言分布情況對識別結果進行統計。每一組測試中需要統計的內容有:9種語言中每一種語言的句子總數、識別正確的句子個數、識別為該語言的句子的個數。
最后,計算每組測試中的每種語言的準確率和召回率,并將上一步的統計內容和準確率召回率一并制成表格。
本文首先通過多語種識別系統對數據進行訓練,得到10組訓練數據,每組訓練數據中包含9種語言。然后又使用進行10折交叉驗證,以10組訓練數據為準,共有10個識別結果集合。
對langID工具和Guess_language識別工具也作以上工作并將10組訓練結果記錄并制成表格。LDA-LI我們分別使用12個主題數和16個主題數進行分類。我們將每一組測試數據的每種語言的句子數目統計出來,然后統計了正確句子的個數和識別為該語言的句子的個數。準確率的計算是:正確的句子/識別為該語言的句子;召回率[10-11]的計算是:正確的句子/句子數目。

表1 9種語言10折交叉驗證的平均精確度 /%
由表1和圖3可以看出,在使用相同訓練集測試集的時候,表現最好的是Guess_language識別工具。需要說明的是,此識別工具的模型可以由構建字符級的語言模型的方法完成,然后使用逆頻技術保留最能代表某種語言的300個元組。在此模型上進行識別,其精確度很高,一般都在99%左右,最低的平均準確率也在97%以上。相比而言,langID在有限的訓練集上訓練模型進行識別,得出的結果不如大數據量訓練的模型識別的平均準確率高。該實驗中,我們還對LDA-LI的主題數進行了12和16的取值。我們發現LDA-LI的表現不穩定,根據語言的不同,語言和語言之間的平均準確率差別比較大。另外,這兩種主題數下的分類,都不能使LDA-LI產生讓人很滿意的結果。

圖4 9種語言10折交叉驗證的平均精確度Fig.4 Average precision on 10 fold validation of 9 languages

圖5 9種語言10折交叉驗證的平均召回率Fig.5 Average recall on 10 fold validation of 9 languages

表2 9種語言10折交叉驗證的平均召回率 /%
由表2和圖5可以看出平均召回率方面,langID的值普遍高于其他兩種識別系統。Guess_language識別工具的表現比較穩定,語言和語言之間的差距不是很大。相比而言,langID的穩定性稍微差一些。LDA-LI識別系統在主題數取16的時候穩定性要高于取12的時候。
本文介紹了一種無監督的基于LDA的多語種文本語種識別系統。首先將從語料庫中抽取的文本數據進行預處理,得到純凈的實驗需要的多個小文本文件。然后使用mitlm工具包完成字符級語言統計模型的構建,使用基于LDA的CGS來實現無監督的語種識別算法。通過LDA-LI系統主題數目與困惑度的關系實驗結果表明使用改進的使用最小描述長度的方法可以較好地確定主題數和困惑度的關系。最后通過LDA-LI、langID和Guess_language三種識別系統的10折交叉驗證對比實驗,結果表明雖然在準確率方面Guess-language的識別效率要高,但是就實驗的數據集消耗而言,Guess-language需要大數據量訓練集,而LDA-LI可以在小規模有限數據集就可完成,所以就整體性能而言LDA-LI測試的平均準確率和召回率高些。未來的工作將考慮如何進一步提高N-Gram的識別性能空間,結合LDA模型和Collapsed Gibbs抽樣技術結合最小主題數的方法對多語言文本進行更好的識別和分類。
[1] 黃昌寧. 統計語言模型能做什么?[J]. 語言文字應用, 2002(1): 77-84.
Huang Changning. What Can We Do With Statistical Language Model?[J]. Language Application, 2002(1): 77-84.
[2] Ramage D, Hall D, Nallapati R, et al. Labeled LDA: A supervised topic model for credit attribution in multi-labeled corpora[C]// Singapore: Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing: Volume 1-Volume 1. Association for Computational Linguistics, 2009: 248-256.
[3] Zhang Wei, Robert A, Clark J, et al. Unsupervised Language Filtering using the Latent Dirichlet Allocation[C]. Singapore: Proc of Interspeech, 2014: 1-4.
[4] Porteous I, Newman D, Ihler A, et al. Fast collapsed Gibbs sampling for latent Dirichlet allocation[J]. Proceedings of Acm Sigkdd International Conference on Knowledge Discovery & Data Mining, 2008, 16: 569-577.
[5] 石晶, 李萬龍. 基于LDA模型的主題詞抽取方法[J]. 計算機工程, 2010, 36(19): 81-83. DOI: 10. 3969/j. issn. 1000-3428. 2010. 19. 028.
Shi Jing, Li Wanlong. Subject extraction method based on the LDA model[J]. Computer Engineering, 2010, 36(19): 81-83. DOI: 10. 3969/j. issn. 1000-3428. 2010. 19. 028.
[6] Shi J. Modeling by shortest data description[J]. Automatica, 1978, 14(5): 465-471.
[7] Grunwald P. A Tutorial Introduction to the Minimum Description Length Principle[M]. Advances in Minimum Description Length Theory & Applications, 2004.
[8] Lui M, Baldwin T. An off-the-shelf language identification tool[C]. Python: Proceedings of the Acl System Demonstrations, 2012: 25-30.
[9] Bird A, Klein E, Loper E. Natural Language Processing with Python—Analyzing Text with the Natural Language Toolkit[M]. New York: Computational Linguistics-Applications. Studies in Computational Inteeligence, 2009, 458.
[10] Goutte C, Gaussier E. A probabilistic interpretation of precision, recall and f-score, with implication for evaluation[J]. Lecture Notes in Computer Science, 2005: 27: 345-359.
[11] 朱學芳, 徐建平. 計算機語音信號處理與語音識別系統[J]. 南京郵電大學學報:自然科學版, 1998(5): 113-115.
Zhu Xue Fang, Xu Jianping. Computer speech signal processing and speech recognition system[J]. Journal of Nanjing University of Posts and Telecommunications: Natural Science Edition, 1998(5): 113-115.
LDA-BasedApproachforAutomaticDetectionofMultilingualText
ZHANG Wei, LI Wen, CHEN Dan, LI Zeng-Jie
(College of Information Science and Engineering Technology, Ocean University of China, Qingdao 266100, China)
The paper proposed an unsupervised multilingual identification method based on Latent Dirichlet Allocation to deal with the automatic detection of multilingual text. From the perspective of speech recognition, it reforms the LDA for language identification, using n-grams as the features. Different from the usual method of selection of topic number according to the perplexity, the paper introduces a new method based on minimum description length(MDL for short), adopting the Collapsed Gibbs Sampling as the learning method to construct the unsupervised language identification based on the LDA model. The paper takes the mitlm toolkit to generate N-gram counting files and establishes the character level’s language model in multilingual identification. Then the paper uses three other language identification systems for comparison with our LDA model. The experiment chooses nine euro languages form the ECI/MCI benchmark to do the identification experiment, at the same time the paper makes a detailed analyze on the trail results, realizing a good accuracy and recall result without any annotation.
multilingual identification; unsupervised; LDA; MDL; Collapsed Gibbs sample
TP391
A
1672-5174(2017)12-130-07
責任編輯 陳呈超
10.16441/j.cnki.hdxb.20150211
張巍, 李雯, 陳丹, 等. 基于隱含狄利克雷分布的多語種文本的自動檢測研究[J]. 中國海洋大學學報(自然科學版), 2017, 47(12): 130-136.
ZHANG Wei, LI Wen, CHEN Dan, et al. LDA-based approach for automatic detection of multilingual text[J]. Periodical of Ocean University of China, 2017, 47(12): 130-136.
山東省自然科學基金項目(ZR2012FM016)資助
Supported by National Science Foundation of Shandong Province(ZR2012FM016)
2015-10-10;
2016-09-20
張 巍(1975-),男,副教授。E-mail:weizhang@ouc.edu.cn