基於監督學習的阿拉伯語拼寫糾正

摘要
本文利用QALB(卡塔爾阿拉伯語言銀行)項目提供的新語料庫,對阿拉伯語言中的拼寫糾正問題進行了研究。語料庫包含編輯、添加之前、分割、合併、添加之後、移動和其他錯誤類型。我們關注前四種錯誤類型,因爲它們造成了語料庫中超過90%的拼寫錯誤。所提出的系統具有許多模型來單獨處理每個錯誤類型,然後將所有模型集成在一起,以提供一個有效且健壯的系統,該系統實現了0.59的整體召回、0.58的精度以及0.58的F1評分,包括開發集上的所有錯誤類型。我們的系統參加了QALB 2014共享任務“自動阿拉伯錯誤糾正”,並取得了0.6分,贏得了九名參與者中的第六名。
1導言
阿拉伯語是一種高度變形的自然語言,具有大量可能的單詞(Othman等人,2003)。雖然它是3億多人的母語,但是由於缺乏其他語言,特別是英語的有用資源,直到現在還沒有覆蓋各種可能的拼寫錯誤的系統。幸運的是,QALB語料庫(Zaghouani等人,2014)將通過向註釋語料庫提供來自用戶評論、本族學生論文、非本族數據和機器翻譯數據的更正句子,從而幫助豐富阿拉伯語的資源,特別是拼寫糾正。在這項工作中,我們正在嘗試使用這個語料庫來建立一個錯誤糾正系統,可以涵蓋拼寫錯誤的範圍。
本文是EMNLP 2014會議共享任務“自動阿拉伯錯誤糾正”(Mohit等人,2014)在阿拉伯NLP研討會上提交的系統描述文件。我們在研究這個系統時面臨的挑戰是在阿拉伯語拼寫糾正方面缺乏貢獻。但願論文和工作在這個共同的任務具體和在研討會一般將豐富和繁榮這一領域。
我們的系統針對四種類型的拼寫錯誤,編輯錯誤,錯誤前添加,合併錯誤和分割錯誤。對於每種錯誤類型,建立一個模型來糾正錯誤檢測技術檢測到的錯誤單詞。使用具有上下文特徵的分類器糾正編輯錯誤和添加之前的錯誤,而通過插入或省略單詞之間的空格並基於每個候選的語言模型得分選擇最佳候選來糾正合並和分割錯誤。
本文的其餘部分結構如下。在第二節中,我們簡單介紹了拼寫糾正的相關工作。在第三節中,我們將介紹我們的拼寫糾正系統,並描述系統中使用的有效模型。在第4節中,我們列出了開發集上的一些實驗結果。在第五節中,我們給出一些結束語。
2相關工作
阿拉伯語拼寫糾錯方面的工作還不成熟,還沒有一個系統能達到很高的糾錯效率。即使使用最廣泛的阿拉伯語拼寫糾正系統Microsoft Word也不能取得良好的效果。我們的工作受到許多論文的啓發。(Shaalan等人,2012)解決了阿拉伯語單詞生成用於拼寫檢查的問題,並且他們開發了一個開源的
包含900萬個完全變形的表面詞和應用語言模型、噪聲信道模型和基於知識的錯誤糾正規則的阿拉伯語大覆蓋詞列表。除了使用語言模型和噪聲信道模型外,本文還使用了這個詞表。
(Shaalan等人,2010)針對僅使用編輯算法的候選類別不夠的情況,提出了另一種系統,其中基於轉換規則生成候選,並且使用BAMA(Buckwalter Arabic Morpho.Ana-lyzer)檢測錯誤(Buckwalter,2002)。
(Khalifa等人,2011)提出了一種文本分割系統。該系統區分waw wasl和waw fasl,據此可以預測句子在這個位置是否被分割,他們聲稱達到了97.95%的準確率。該工作中使用的特性啓發我們在錯誤糾正之前添加。
(Schaback,2007)提出了一個En-glish拼寫糾正系統,即在不同層次上解決編輯錯誤:在語音層次上採用So.x算法,在字符層次上採用一次操作之外的編輯算法,在單詞層次上採用二元語言模型,在句法層次上採用搭配模型去檢測。r-挖掘候選詞在此位置和語義層次上如何匹配,使用共現模型確定候選詞在給定上下文中發生的可能性,使用候選詞的所有模型輸出作爲特徵,並使用SVM模型對候選詞進行分類,他們聲稱對於第一候選詞和97,達到從90%到97%的重新調用。所有五位候選人的得分都高於微軟Word、Aspell、Hun.、FST和谷歌。
3提議的制度
我們提出了一個檢測和糾正各種拼寫錯誤的系統,包括編輯、分割、合併和錯誤前添加。該系統包括兩個步驟:錯誤檢測和錯誤校正。測試每個單詞的正確性。如果認爲單詞不正確,則將其傳遞到校正步驟,否則保持不變。校正步驟包含對每種類型的錯誤的特定處理,如3.3小節中詳細描述的。
資源
字典:用於拼寫檢查的阿拉伯語詞彙表1是一本包含900萬阿拉伯語單詞的免費詞典。這些單詞是從AraComLex2開源有限狀態傳感器自動生成的。
該字典用於生成候選項並使用爲QALB共享任務創建的特定版本的MADAMIRA3(Pasha等人,2014),使用基於BAMA 1.2.14(Buckwalter,2002)的形態數據庫。爲了保證每個候選詞具有與語料庫中的詞相似的特徵,對詞典中的每個詞進行特徵提取,以幫助本系統的實現。
Stoplist:使用sourceforge.net5上提供的停止單詞列表。這在後面描述的配置算法中使用。
語言模型:我們使用SRILM(Stolcke,2002)來構建一個語言模型,使用Ajdir Corpora6作爲語料庫,使用上面提到的字典中的詞彙。我們使用修改的Kneser-Ney平滑來訓練包含單圖、二元組和三元組的語言模型(James,2000)。
QALB語料庫:QALB共享任務爲拼寫糾正提供了一個新的語料庫。語料庫包含大量人工糾正的阿拉伯語句子。使用這個語料庫,我們能夠實現一個拼寫校正系統,它針對最頻繁出現的錯誤類型,這些錯誤類型是:(a)編輯錯誤,其中單詞被另一個單詞替換,(b)在刪除單詞的錯誤之前添加,©合併錯誤,其中錯誤地插入了空格,最後(d)分割錯誤,其中空間被重新插入。搬錯了地方。所提供的語料庫還有三種其他的錯誤類型,但它們發生的頻率要低得多,它們是(e)在錯誤之後添加,這與前面的添加類似,但是移除的令牌應該放在單詞後面,(f)在單詞應該被移到句子中的其他位置的地方移動錯誤,(g)在沒有li的任何其他錯誤之後發生的其他錯誤。在另外六個中,e被標記爲。
3.2錯誤檢測
QALB項目提供的培訓集、開發集和測試集帶有“列文件”,並且包含MADAMIRA生成的非常有用的特性。使用Buckwalter形態邏輯分析(Buckwalter,2002)特性,我們確定一個詞是否正確。如果單詞沒有分析,我們認爲該單詞是不正確的,並經過糾正過程。
3.3編輯錯誤更正
編輯錯誤在語料庫中佔錯誤總數的最高部分。它佔總誤差的55%以上。爲了糾正這種類型的錯誤,我們訓練一個分類器,其具有如下特徵,如錯誤模型概率、搭配和共現性:
未批評詞預處理:利用每個詞的MADAMIRA特徵,未批評詞修復了一些錯誤,如哈薩克斯、哈、塔瑪布塔和雅、阿里夫馬庫拉。
我們對未加修飾的單詞進行一些預處理,使它更有用,並修復與之關聯的is-sues。例如,我們從單詞例如(,AlrjAAAAl_AlrjAl)中刪除不正確的冗餘字符。
我們還用阿拉伯標點符號代替羅馬標點符號。()
語言模型:對於每個候選者,從所訓練的語言模型中檢索非igram、雙ram和trigram值。除了單圖、二元組和三元組值的乘積的特性之外。
似然模型:似然模型是通過迭代訓練句子來訓練的,這些訓練句子對每個編輯的發生次數、編輯的字符和編輯的類型進行計數。它的輸出稱爲混淆矩陣。
候選評分基於噪聲信道模型(Kerni.等人,1990),該模型是使用訓練過的混淆矩陣(稱爲錯誤模型)對所建議的編輯的概率乘以該詞的語言模型評分。使用的語言模型是等權重的單元圖、二元圖和三元圖。計數中的兩個模型都使用Add-1平滑。
其中x是錯誤的單詞,w是候選校正。
對於替換編輯候選者,通過將得分乘以大於1的常數,我們爲鍵盤上接近的字符或替換對屬於同一組字母組(Shaalan等人,2012)的字符的替換提供更高的分數。
對於每個候選,計算似然得分,並將其添加到candi-date的特徵向量中。
搭配:搭配模型以句子中候選者的可能性爲目標。這是使用單詞的引理和句子中單詞的POS標記完成的。
我們使用(Schaback,2007)中的算法來訓練搭配模型。具體地說,通過重新整理訓練語料庫中5000個最常出現的引理,並將其放入列表L。對於L中的每個引理,創建三個列表,列表中的每個記錄是圍繞目標引理的三個POS標記的序列。爲了訓練,我們在訓練句子上移動三個POS標籤的窗口。如果引理屬於L,則根據目標引理在三個POS標記中的位置,我們將周圍的POS標記添加到目標引理的等效列表中。
給定一個句子中的拼寫錯誤的單詞,對於每個候選更正,如果它在L列表中,則根據候選者的位置,我們對三個列表中的周圍POS標記的出現次數進行計數。
這三個似然除了它們的乘積外,還存儲在候選的特徵向量中。
共現:共現用來衡量一個單詞與上下文相匹配的可能性。其中L是搭配中最常見的引理列表。
我們在(Sch-aback,2007)中使用了共現算法。在訓練模型之前,我們將訓練句子中的每個單詞轉換爲其引理形式,並刪除停止詞。對於考試,請考慮原始文本:
從這個C中,我們得到所有出現在
圍繞目標引理b的10個單詞的半徑,其中b屬於L。我們計算在該上下文C中每個引理的出現次數。
利用上述模型,計算了目標引理b:d1的三個距離,即C中上下文詞和可能找到的上下文詞的比率。這描述了訓練上下文和給定上下文對於候選者b是多麼的相似;d2通過求和上下文引理的歸一化頻率來考慮找到的上下文引理有多重要。作爲第三個特徵,d3(b)簡單地度量了引理b的向量空間模型有多大。
對於每個候選,應用該模型,計算三個距離,並將其添加到候選的特徵向量中。
分類器:在1和2個編輯操作(插入、刪除、替換和轉置)內生成由Levenshtein距離(Levenshtein,1966)測量的候選更正之後,我們使用python NLTK的實現通過Naive-Bayes分類器運行它們,以找出哪個更正最有可能對inco進行更正準確的話。
利用QALB項目提供的訓練集對分類器進行訓練。對於訓練集中的每個編輯校正,針對不正確的單詞生成所有候選詞,並使用上述技術計算特徵向量(如表1所示)。如果候選者是正確的,那麼訓練特徵向量的標籤是正確的,否則就不正確。
然後,使用經過訓練的分類器,在開發集或測試集上執行相同的操作,其中我們將不正確的單詞替換爲分類器提示的單詞。
3.4在糾錯之前添加
錯誤之前的添加主要是標點錯誤。在QALB訓練中訓練分類器。
表1:編輯錯誤分類器使用的特性集。
利用上下文特徵實現了一個分類器。這四個單詞都有兩個特徵:標記本身和詞性標記,對於下一個單詞只有pregloss,因爲如果單詞的pregloss是“和”,則更有可能出現一個新句子。由於MADAMIRA提供了語料庫和爲斷言詞生成的特性,這些特性是可用的。
在QALB訓練集上訓練分類器。我們逐字遍歷所有訓練句子並獲得上述特徵(如表2所示),如果該單詞在校正之前有匹配的添加,則用添加的before標記標記訓練或標籤將是空字符串。
爲了應用該模型,在刪除所有標點符號之後對QALB開發語句執行相同的操作,因爲它們可能不正確,並且分類器的輸出要麼是空的,要麼是在當前單詞之前添加的提示符號。
3.5合併錯誤更正
合併錯誤是由於錯誤地在兩個單詞之間插入空格而引起的。ap-proach只是試圖將每個單詞與其後繼單詞聯繫起來,並檢查它是否是一個有效的阿拉伯單詞,然後根據語言模型評分對其進行排序。
3.6分割誤差校正
拆分錯誤是由於刪除兩個單詞之間的空格而引起的。該方法是模擬地獲取單詞的所有有效分區,並嘗試校正這兩個分區,並使用語言模型評分給他們一個排名。分區至少有兩個字符長。
4個實驗結果
爲了瞭解每個錯誤類型模型對整個系統性能的貢獻,我們採用了模型的增量方法。我們使用python7和NLTK8(Loper and Bird,2002)工具包實現了這個系統。在QALB語料庫訓練集上對模型進行訓練,並將訓練模型應用於開發集,得到訓練結果。我們的目標是實現高的召回率,但不會丟失太多的精確度。使用M2得分器(Dahlmeier和Ng,2012)評估模型。
首先,我們僅從預處理的非批評單詞開始,然後添加編輯錯誤分類器。在分類器之前添加加法是對系統的一個重大補充,因爲系統能夠顯著地增加校正誤差的數目,特別是分類器之前添加提出了太多的錯誤建議,從而降低了精度。然後加入了合併校正技術。最後我們加入了分離誤差校正技術。該系統對9860個錯誤和16659個黃金錯誤進行了校正,並提出了17057個校正,最終的系統召回率爲0.5919,精度爲0.5781,F1評分爲0.5849。詳情見表3。
5結論與未來工作
本文提出了一種用於誤差檢測和校正的一體化系統。系統處理四種類型的拼寫錯誤(編輯、添加之前、合併和分割錯誤)。該系統在開發組中成功糾正了約60%的拼寫錯誤,取得了良好的效果。此外,各種誤差修正模型還有很大的改進空間。
我們計劃通過結合更多的智能技術和模型進行拆分和合並來改進當前的系統。另外,分類器之前的添加還需做很多工作來改進覆蓋率,因爲錯誤大多是缺少標點符號。對於編輯分類器,需要解決實際單詞錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章