專利名稱:一種錯別字符處理方法和系統的制作方法
技術領域:
本發明涉及人工智能計算機領域中的自然語言處理技術領域,特別是涉及從錯別 字符訓練集庫和含錯別字符的大規模語料庫中識別錯別字符詞組或者短語和創建錯別字 符詞典的一種錯別字符處理方法和系統。
背景技術:
計算機字符校對系統(如中文校對系統)是應用自然語言處理技術自動查出文本 中的輸入錯誤。它主要有兩項功能一,查錯,即找出文本中錯別字符的位置;二,糾錯,即 提供一個修改建議的候選詞集(或稱詞典)。計算機人機對話是計算機的一種工作方式,即計算機操作員或用戶與計算機之 間,通過控制臺或終端顯示屏幕,以對話方式進行工作。在第三代計算機人機對話中,人機 交流的內容主要是人習慣的自然交流語言,交流方式也是人習慣的自然語言交流方式(包 括語音和手寫等,甚至包括人的表情、手勢、步態等)。錯別字符的識別在計算機字符校對系統(如中文校對系統)和計算機人機對話等 系統中是一個重要環節。其中最重要的是建立錯別字符詞典(或稱錯別字符詞典庫,如錯 別詞詞典),如果用純手工整理的方法,則需要耗費大量的人力和財力。在實際的工作過程 中,需要查閱的語料庫和最后整理出來的詞典可能非常龐大,因此錯別字符詞典的整理工 作需要大量的時間和精力,很明顯,傳統的手工方法無法完成這樣的整理工作。因此,迫切需要一種錯別字符詞組或者短語識別和建立錯別字符詞典的錯別字符 處理方法和系統,從而提高錯別字符詞典的生成效率。
發明內容
本發明目的在于提供一種錯別字符處理方法和系統,其能夠識別錯別字符詞組或 者短語,并建立錯別字符詞典,從而提高錯別字符詞典的生成效率。為實現本發明目的而提供的一種錯別字符處理方法,包括如下步驟步驟A1,根據錯別字符訓練集庫,為訓練集中每個正確字符建立其對應的錯別字 符集合;步驟B1,在含錯別字符的大規模語料庫中,分別找出包含所述正確字符和錯別字 符的短語或詞組;步驟C1,找出正確字符和錯別字符的對應關系,建立詞組對或者短語對;步驟D1,優化所述詞組對或者短語對,將所述詞組對或者短語對中重復表述的詞 組對或者短語對篩選掉,得到所述正確字符相應的錯別字符的詞組對或者短語對。較佳地,所述的錯別字符處理方法,還包括下列步驟步驟E1,將所述正確字符相應的錯別字符的詞組對或者短語對加入到所述正確字 符的錯別字符詞典。為實現本發明目的,還提供一種錯別字符處理系統,包括錯別字符訓練集庫和含
6錯別字符的大規模語料庫,以及錯別字符詞典,還包括第一創建模塊,用于根據錯別字符訓練集庫,為訓練集中每個正確字符建立其對 應的錯別字符集合;檢索查找模塊,用于在含錯別字符的大規模語料庫中,分別找出包含所述正確字符和錯別字符的短語或詞組;篩選模塊,用于找出正確字符和錯別字符的對應關系,建立詞組對或者短語對;優化模塊,用于優化所述詞組對或者短語對,將所述詞組對或者短語對中重復表 述的詞組對或者短語對篩選掉,得到所述正確字符相應的錯別字符的詞組對或者短語對。較佳地,本發明所述的錯別字符處理系統,還包括第二創建模塊,用于將所述正確 字符相應的錯別字符的詞組對或者短語對加入到所述正確字符的錯別字符詞典。本發明的有益效果是本發明的錯別字符處理方法和系統,其能夠識別錯別字符 詞組或者短語,并建立錯別字符詞典,從而提高錯別字符詞典的生成效率,其大大緩解了手 工整理錯別字符詞典所耗費的人力和財力。
圖1是本發明實施例的錯別字符處理方法流程圖;圖2是本發明錯別字符處理方法的一具體實施例流程圖;圖3是本發明錯別字符處理系統結構示意圖。
具體實施例方式為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對 本發明的一種錯別字符處理方法和系統進行進一步詳細說明。應當理解,此處所描述的具 體實施例僅僅用以解釋本發明,并不用于限定本發明。本發明是在錯別字符訓練集庫(或稱錯別字符訓練集種子庫)和含錯別字符的大 規模語料庫的基礎上,提供一種錯別字符詞組或者短語識別和建立錯別字符詞典的錯別字 符處理方法和系統,其解決手工整理所耗費的人力和財力。在本發明實施例中,以從錯別漢字字符訓練集庫和含錯別漢字詞組或者短語的大 規模漢字語料庫中識別錯別漢字詞組或者短語和創建錯別詞詞典為例,說明本發明的錯別 字符處理方法和系統,但應當說明的是,本發明同樣適用于漢字以外的其它語言,如英語 等,其只需要設置錯別字符訓練集庫為錯別英語等的字符訓練集庫和含錯別英語等的大規 模英語等的語料庫即可。因此,本發明所述的字符包括漢語字符等全世界的各種語言字符, 其并不限定于漢語字符。為了實現上述發明目的,根據本發明的一個方面,提供了一種錯別字符處理方法, 包括下列步驟步驟S100,根據錯別字符訓練集庫,為訓練集中每個正確字符建立其對應的錯別 字符集合;步驟S200,在含錯別字符的大規模語料庫中,分別找出包含所述正確字符和錯別 字符的短語或詞組;步驟S300,找出正確字符和錯別字符的對應關系,建立詞組對或者短語對;
步驟S400,優化所述詞組對或者短語對,將所述詞組對或者短語對中重復表述的 詞組對或者短語對篩選掉,得到所述正確字符相應的錯別字符的詞組對或者短語對;步驟S500,將所述正確字符相應的錯別字符的詞組對或者短語對加入到所述正確 字符的錯別字符詞典(或稱錯別字符詞典庫)。下面以一具體實施方式
,進一步詳細說明本發明錯別字符處理方法中步驟 S100 S500的詳細實施過程。本發明這一詳細實施例中,需要設置兩個庫錯別字符訓練集庫(或稱錯別字符 訓練集種子庫)和含錯別字符的大規模語料庫。并經過本發明實施例的錯別字符處理方法 和系統處理后,得到一錯別字符詞典(或稱錯別字符詞典庫)。其中,錯別字符訓練集庫可以是手工整理出來的,也可以是通過其他方法(如計 算機檢索篩選)生成,或者為現有的各種錯別字符訓練集數據庫,或者在現有的訓練集數 據庫基礎上添加錯別字符生成的。作為一種可實施方式,該錯別字符訓練集庫中的每一項為二元組的形式,為<正確字符錯別字符>例如充值的“充”對應的錯別字可能有“沖”,“茺”等,則訓練集中應包含二元組...〈充沖〉〈充茺〉...同樣,含錯別字符的大規模語料庫也可以是手工整理出來的,也可以是通過其他 方法(如計算機檢索篩選)生成,或者為現有的各種含錯別字符的大規模語料數據庫,或者 在現有的大規模語料數據庫基礎上添加語料生成的。作為一種可實施方式,該得到的錯別字符詞典的每一項可以是四元形式,為<正確字符錯別字符正確詞組或正確短語錯別詞組或錯誤短語>其中正確詞組或正確短語,錯別詞組或錯誤短語均是在大規模語料庫中找到的。例如,〈充沖〉、〈充茺〉這兩個字符二元組,經過處理得到的四元組可能包括...〈充沖充值沖值><充沖充錢沖錢>〈充茺充值卡茺值卡〉...本發明詳細實施例中使用了一些符號,定義如下(1)若A是字符串,| |A| |表示A中所含字符的個數;(2)若A,B均是字符串,5當且僅當A是B的子串,例如若A= “你好”,B = “你好嗎”,則A是B的字串,乂 £ 5成立。(3)若A,B均是字符串,x是字符,若C是包含x的A和B的極大公共子串,則表示 為 C = (A n B) X ;例如A = “請問你好嗎”,B = “你好不好”,x = “你”,則C = (A n B) x =‘‘你好“。(4)若A,B,C,D均是字符串,x是字符,C = (A n B)x當且僅當
8^^〔,匚^乂且匚^召,若對于隊如果有叉^!),D g 乂和5,則必有^ Q C。即C是
A和B的公共子串,且C是極大的。根據本發明的一個具體實施例,如圖1的流程圖所示,本發明具體實施例的錯別 字符處理方法在步驟SlOO中,根據錯別字符訓練集庫,為訓練集中每個正確字符建立其對應的 錯別字符集合的過程包括步驟步驟Sl 設置字符Word為空,置閥值Threshold的初值為0,執行步驟S2。一般地,本發明實施例所涉及的參數,如字符Word,閥值Threshold,閥 值Thre sho 1 d-2,如果為字符串型,如字符Word,則初值為空;如果為整數型,如閥值 Threshold,閥值 Threshold-2 則初值為 O。步驟S2 為訓練集中的每個正確字符RWord,建立該正確字符RWord的錯別字符集
C(RWord)‘設置某個字符Wfford e C(Efford)當且僅當Wfford是RWord的一個錯別字;字符Wfford的標記初始化為False。在步驟S200中,在含錯別字符的大規模語料庫中,分別找出包含正確字符和錯別 字符的短語或詞組的過程中,包括步驟;步驟S3 取出一個未處理過的正確字符RWord,執行步驟S4。步驟S4 如果步驟S4是由步驟S3跳轉過來的,則設置字符Word = RWord,閥值 Threshold = RThreshold ;否則,如果步驟S4是由步驟SlO跳轉過來的,則設置字符Word =fffford,閥值 Threshold = WThreshold ;其中,閥值RThreshold為在處理正確字符時使用的閥值;而閥值WThreshold為在 處理錯別字符時使用的閥值。本發明實施例中,根據實際的經驗得到文檔中的詞,大多數情況下均為正確的,出 現錯誤的在少數。因此對于一個詞,其正確的形式應該比錯誤的形式出現的頻率高(例如 “充值”遠遠高于“沖值”出現的頻率)。因此在本發明實施例中預先根據經驗值設置兩個 閥值RThreshold和WThreshold。在處理正確的字時,使用RThreshold ;在處理錯別字時, 使用 WThreshold。步驟S5 在大規模語料庫File中檢索查找出包含字符Word的多個詞組或者短語。其中,較佳地,該詞組或者短語以字符Word為中心,左右各三個字,如果不足三 個,則取最大數。步驟S6 對步驟S5中查找出的詞組或者短語,以字符Word為中心位置,依次統計 和字符Word距離分別為1、2、3的字符在該位置出現的頻率,對于頻率小于閥值Threshold 的字符T,則將詞組或者短語中,從 T開始的遠離字符Word方向的字符清除;最后,將處理 后長度不小于2的詞組或者短語作為候選詞組或者短語。頻率的統計可采用如下(類似于n-gram)方法步驟S61 對于距離字符Word為1的字符W1,在詞組或者短語中計算他們緊鄰字 符 Word 的次數 P (VWord);例如,詞組或者短語中若包含
...“剛買的充值卡啊”“充值了啊”“買充值卡”“我充錢了啊”...當前的字符Word = “充”,以出現在Word右邊的字為例,則這些詞組或者短語中, 在Word的右邊,且和它的距離為1的漢字包含“值”,“錢”,在例子中的四個詞組或者短語 中,“值”出現的頻率為3,“錢”出現的頻率為1。對于Word左邊的字的計算方法相同。步驟S62 對于距離字符Word為2的字符W2,則統計它緊鄰字符Word和Wl出現 的次數 P(W2Z^orcLW1);例如對于上面的詞組或者短語,仍然以出現在Word右邊的字為例,則在Word的 右邊,且和它的距離為2的漢字包含“卡”,“了”,在例子中的四個詞組或者短語中,“卡”緊 鄰“充值”出現的次數為2 ;“了”緊鄰“充值”出現的次數為1,緊鄰“充錢”出現的次數為1。 對于Word左邊的字計算方法相同。步驟S63 對于距離字符Word為3的字符W3,則統計它緊鄰字符Word,Wl和W2出 現的次數 P (W3/Word. W1. W2)。例如,對于詞組或者短語“剛買的充值卡啊”,當前的字符Word = “充”,閥值 Threshold = 5,則以“充”為中心,首先統計和“充”距離為1的漢字“的”和“值”在該位置 出現的頻率。統計后,“的”在該位置上的頻率為3(3 < 5),則清空從“的”開始的遠離“充” 方向的“剛買的”三個字,“值”在該位置上出現的頻率為10(10 > 5),則在第一輪統計中, “充值卡啊”被保留下來;第二輪中,統計和“充”距離為2的漢字“卡”在該位置上的頻率,統 計后,“充值卡啊”仍然被保留下來;第三輪中,統計“啊”的頻率,結果為4 (4 < 5),則“啊” 被清掉;最后候選詞組對或者短語對為“充值卡”。步驟S7 統計步驟S6中候選詞組或者短語頻率,將頻率不小于閥值Threshold-2 的候選詞組或者短語作為新的候選詞組或者短語。由于步驟S6中找到的候選詞組或者短語數量很大,且有較多相同的,而且還有相 當一部分不是一個意思明確的詞組或者短語,因此有必要進行一些過濾,以降低系統開銷。例如,若候選詞組或者短語中包含...“充值卡” “充錢” “充值卡” “好充” “沒有充” “充值卡” “充錢” “沒有充”...經過對這些候選詞組或者短語進行統計后,“充值卡”出現的次數為3,“充錢”和 “沒有充”出現的次數為2,“好充”出現的次數為1。例如,閥值為2,則將“好充”過濾掉,而 剩下的“充值卡” “充錢” “沒有充”加入到候選詞組或者短語中。步驟S7中的閥值Threshold-2和步驟6中的閥值Threshold不一樣,其中,步驟 S6中是為字符設置的,而步驟S7中的閥值Threshold-2是為詞組或者短語設置的。其中,閥值Threshold-2根據經驗值而預先設置。步驟S8 若當前處理的是正確字符,即Word = Rfford時,則將該些候選詞組或者短語加入到字符集RPhrase中;否則,若當前處理的是錯別字符,即Word = Wfford時,則將 該些候選詞組或者短語分別順序加入到可能錯誤詞組或者短語字符集PossibleWPhrase和字符集Processed中,并將這些詞組或者短語在字符集Processed中的起始位置和末尾 位置記錄在二元組Positioner)中,置該錯別字符Wfford的標記為Ture,轉步驟S12。
其中,字符集RPhrase,用于存儲步驟S7中找到的候選詞組或者短語,這些詞組或 者短語是包含了正確字符,字符集RPhrase的初值為空。字符集PossibleWPhrase,用于將候選詞組或者短語分別順序加入到可能錯誤詞 組或者短語字符集,字符集PossibleWPhrase的初值為空。字符集Processed,用于存放步驟S6和步驟S7中已經找到的包含錯別字符Wfford 的候選詞組或者短語,字符集Processed的初值為零。由于同一個字可能是多個字的錯 別字(例如“沖”可能既是“充”的錯別字,也是“聰”的錯別字),因此當前處理的錯別字 Wfford之前也可能被處理過,為了使不至于使用步驟S6和S7重新在語料文件中查找候選 詞組或者短語,則將包含當前錯別字的候選詞組或者短語按順序裝入到字符集Processed 中,并使用Position^rd)記錄這個位置,以便后面重新遇到該錯別字符WWord時,可以迅速 從Position.-)中提出包含錯別字符Wfford的候選詞組或者短語在字符集Processed中 的位置,并提取這些候選詞組或者短語。Position(fffford)為一個二元組,第一項為包含錯別字符Wfford的候選詞組或者短語 在字符集Processed中的起始位置,第二項為該些候選詞組或者短語中的最后一個字符在 字符集Processed中的位置。步驟S9 從正確字符RWord的錯別字符集C(KW。rf)中按順序取出一個未處理過的錯 別字符fffford。步驟SlO 如果這個錯別字符Wfford標記為False,則轉步驟S4 ;否則,執行步驟 S11。步驟Sll 讀出二元組集Position^rd)中的二元組數據,并根據二元組數據在字 符集Processed中找到包含錯別字符fffford的候選詞組或者短語,并裝入到該錯別字符 Wfford的可能錯誤詞組或者短語集PossibleWPhrase中。在步驟S300中,找出正確字符和錯別字符的對應關系,建立詞組對或者短語對的 過程包括步驟步驟S12 將可能錯誤詞組或者短語集PossibleWPhrase中的詞組或者短語元素 轉換為可能正確的詞組或者短語A,并與字符集RPhrase中的詞組或者短語元素B按順序 地逐個比較,得到包含正確字符RWord和錯誤字符fffford的極大公共子詞組對或者短語對 (Α Π B)KW。rf,將(Α Π B) KWOTd加入極大公共子詞組對或者短語對字符集LargestPhrase。其中,字符集LargestPhrase,是用于存儲正確字符RWord和錯誤字符fffford的極 大公共子詞組對或者短語對的字符集,其初值為空。由于字符集PossibleWPhrase中存放的是包含有錯別字fffford的詞組或者短語, 則將該些詞組或者短語中的錯別字WWord替換為其對應的正確漢字RWord,那么替換后的 詞組或者短語A即為可能正確的詞組或者短語,例如PossibleWPhrase可能包含“沖值多 少錢”,當前Wfford為“沖”,Rfford為“充”,則將“沖值多少錢”中的“沖”替換為“充”,轉換 后的詞組或者短語為“充值多少錢”,則這個詞組或者短語就是可能正確的詞組或者短語。例如“買充值卡”e RPhrase (〃 充〃),“沖值多少錢” e PossibleWPhrase (" 沖")。將“沖值多少錢”轉換為“充值多少錢”,則包含“充”的“買充值卡”和“充值多少錢”的極大公共子詞組對或者短語對為“充值沖值”;其中正確的漢字RWord = “充”,而它對 應的一個錯別字Wfford = “沖”。步驟S13 順序地從極大公共子詞組對或者短語對字集集LargestPhrase中取出 一個詞組對或者短語對元素A。步驟S14:如果該詞組對或者短語對元素A的長度MAM彡2,則在包含該詞組 對 或者短語對的大規模語料庫File中提取它的上下文環境,無重復加入字符集Context。其中,字符集Context中的詞組對或者短語對是對字符集LargestPhrase中的每 個詞組對或者短語對提取上下文環境后得到的。因為LargestPhrase中的有些詞組對或者 短語對可能不是意思完整的詞組對或者短語對,這不是本發明所希望得到的,因此有必要 將字符集LargestPhrase中詞組對或者短語對的上下文環境提取出來,得到意思較為明確 的詞組對或者短語對,并將這些意思明確的詞組對或者短語對加入到字符集Context中。所述字符集Context的初值為空。 所述上下文環境可以為在詞組對或者短語對前后各提取兩個漢字的公共前后綴, 如不足兩個漢字,則取最大。例如=LargestPhrase中詞組對或者短語對=“充話沖值”,提取上下文環境后的 完整短語為“充話費沖話費”,其中“充話費”和“沖話費”均包含在語料庫中,“費”是“充話” 和“沖話”的公共后綴。步驟S15 如果極大公共子詞組對或者短語對字符集LargestPhrase中的詞組對 或者短語對已經取完,則執行步驟S16 ;否則轉步驟S12繼續比較。在步驟S400中,優化所述詞組對或者短語對,將所述詞組對或者短語對中重復表 述的詞組對或者短語對篩選掉,得到該正確字符相應的錯別字符的詞組對或者短語對的過 程,包括步驟;步驟S16 對字符集Context中的詞組對或者短語對元素,進行迭代,將錯誤部分 均相同的詞組對或者短語對刪除,只保留一條詞組對或者短語對,直到字符集Context不 再變化為止,得到所述正確字符相應的錯別字符的詞組對或者短語對。所述步驟S16包括如下步驟,其中,A,B,C均為字符集Context中的詞組對或者短 語對。步驟S161 如果A是B的子詞組對或者短語對,對于字符集Context中的所有不 同于A的詞組對或者短語對C,如果A都不是(B η C) KWOTd的子詞組對或者短語對,則在字符 集Context中保留A,刪除B ;即,若
都有
,則在 Context 中保留A,刪除B。例如當前RWord = “充”,Wfford = “沖”,若A = “充錢沖錢”,B = “充錢了沖錢 了”,則力e β,如果Context中任何一個短語C,(B Π C) KW。,d都不包含有“充錢”這兩個字, 則認為在Context中,B “充錢了沖線了”就是多余的,而A “充錢沖錢”就已經是一個完 整的詞組對或者短語對了,它能夠完全表達B,所以可以在Context中刪除B。步驟S162 如果A是B的子詞組對或者短語對,如果Context中的存在一個不同于 A的詞組對或者短語對C,使得A是(B η C) 子詞組對或者短語對,則在字符集Context 中加入詞組對或者短語對B Π C,刪除Α,B,C;
gp,若 X e β,且
使得
,則在 Context 中加入B η C,刪除Α,B,C;例如當前RWord = “充”,Wfford = “沖”,若A = “充話沖話”,B = “充話費50元 沖話費50元”,則J C B,如果Context中存在一個詞組對或者短語對C = “昨天充話費了昨 天沖話費了”,則(B Π C)KWOTd = “充話費沖話費”,A= “充話沖話”恰好是(B η
子詞組對或者短語對,則認為“充話費沖話費”是一個具有完整意思的詞組對或者短語對, 而認為A,B, C要么不完整,要么多余,所以可以在Context中刪除A,B, C,添加詞組對或者 短語對“充話費沖話費”。步驟S163 如果A不是B的子詞組對或者短語對,但是A和B的包含字符集RWord 和字符集WWord的極大公共子詞組對或者短語對的長度分別不小于3,則認為A和B中,都 包含有相同的且具有完整意思的詞組對或者短語對,則在字符集Context中添加公共子詞 組對或者短語對(Α Π B)KW d,刪除A和B。即,若JcX且
,則在 Context 中加入(Α Π B)KW。rd,刪除 A 和 B0例如當前RWord = “充”,Wfford = “沖”,若A = “為什么不能充為什么不能沖”,B =“怎么不能充呢怎么不能沖呢”,則(A η B)KW。rf = “不能充不能沖”,則認為“不能充不能 沖”是一個具有完整意思的詞組對或者短語對,它能夠替代A和B,因此在字符集Context 中加入公共子詞組對或者短語對“不能充不能沖”,刪除A和B。例如若字符集Context中包含“充值沖值”,“充值卡卡號沖值卡卡號”,“充值卡 密碼沖值卡密碼”,由于“充值沖值”e“充值卡卡號沖值卡卡號”,且“充值沖值”£“充 值卡沖值卡”=“充值卡卡號沖值卡卡號” Π “充值卡密碼沖值卡密碼”,則在Context中 加入“充值卡沖值卡”,而刪除“充值沖值”,“充值卡卡號沖值卡卡號”,“充值卡密碼沖值卡 密碼”。在步驟S500中,將所述正確字符相應的錯別字符的詞組對或者短語對加入到該 正確字符的錯別字符詞典的過程,包括步驟步驟S17 為字符集Context中的詞組對或者短語對元素,建立四元組< 正確字 符錯別字符正確詞組或者短語錯誤詞組或者短語〉,并加入到字符集SiyUnZU_Set中。其中,字符集SiyUnZU_Set為最后的輸出詞典,其中的每一項均為四元組形式。例如,若當前的RWord = “惠”,Wfford = “費”,Context中包含有“優惠活動優費 活動”,則在SiyunZu_Set中添加如下形式的一項四元組〈惠費優惠活動優費活動〉該四元組滿足上文中的定義,其中正確字為“惠”,錯別字為“費”,正確的詞為“優 惠活動”,錯別詞為“優費活動”。步驟S18 清空字符集 PossibleWPhrase,LargestPhrase 和 Context 中的內容。步驟S19 如果C(KWOTd)中還有字符元素沒有處理過,則轉步驟S8 ;否則,執行步驟 S20。步驟S20 清空字符集RPhrase中的內容。步驟S21 如果還有RWord未曾處理,轉步驟S2 ;否則,輸出錯別字符詞典,即字符 集Siyunzu_Set中的元素,結束。
相應地,本發明還提供一種錯別字符處理系統10,其包括錯別字符訓練集庫11和 含錯別字符的大規模語料庫12,以及錯別字符詞典13。其還包括第一創建模塊14,用于根據錯別字符訓練集庫11,為訓練集11中每個正 確字符建立其對應的錯別字符集合;檢索查找模塊15,用于在含錯別字符的大規模語料庫12中,分別找出包含所述正 確字符和錯別字符的短語或詞組;篩選模塊16,用于找出正確字符和錯別字符的對應關系,建立詞組對或者短語 對;優化模塊17,用于優化所述詞組對或者短語對,將所述詞組對或者短語對中重復 表述的詞組對或者短語對篩選掉,得到所述正確字符相應的錯別字符的詞組對或者短語 對;第二創建模塊18,用于將所述正確字符相應的錯別字符的詞組對或者短語對加入 到所述正確字符的錯別字符詞典13。本發明實施例的錯別字符處理系統10,以與本發明實施例的錯別字符處理方法相 同的過程進行錯別字符處理,因此,在本發明實施例中,不再一一詳細描述。應當說明的是,所述各字符集的實現可以根據具體需要選擇不同的數據結構,比 如鏈表,數組等等,其都是本發明實施例的一種可實現方式,其并不構成對本發明保護范圍 的限定。根據如上描述,本發明能夠從大規模語料庫中識別錯別字符詞組或者短語,且可 以通過改變閥值RThreshold和WThreshold的大小,可以調整執行的效率和結果,以使效果 達到最佳。作為一種可實施方式,本發明的錯別字符處理方法和系統可以采用計算機0#語 言實現,在visual studio 2008集成開發環境中編譯;計算機CPU為奔騰4,2. 4GHz,運行 的操作系統平臺為windows XP ;實驗數據量為25萬條中文短信語料,運行時間為19分鐘。實驗輸出為四元組的錯別詞詞典,格式為〈正確字符錯別字符正確詞組或者短語錯別詞組或者短語〉如表1所示,為〈充沖〉所對應的錯別字符識別實驗結果的一個片段。(其中,正 確的漢字為充,錯別字為沖)表1 錯別字識別示例表1中的第1列為一個正確的漢字,如(充);第2列為它所對應的一個錯別字, 如(沖);第3列為正確的詞組(或短語);第4列為對應的錯別詞組(或短語)。根據試驗結果,調整適當的參數閥值RThreshold和WThreshold,本方法和系統的 召回率在95%以上,準確率也能控制在70%以上。但是在實際應用中,高召回率可以發現 更多的錯別字詞,因此我們通常傾向于高召回率,而適當犧牲準確率。通常在應用時,識別 出來的錯別字詞也需要人工檢查。該發明可廣泛應用于字符校對系統(如中文校對系統),機器翻譯系統和人機對 話系統等方面。通過結合附圖對本發明具體實施例的描述,本發明的其它方面及特征對本領域的 技術人員而言是顯而易見的。以上對本發明的具體實施例進行了描述和說明,這些實施例應被認為其只是示例 性的,并不用于對本發明進行限制,本發明應根據所附的權利要求進行解釋。
權利要求
一種錯別字符處理方法,其特征在于,包括下列步驟步驟A1,根據錯別字符訓練集庫,為訓練集中每個正確字符建立其對應的錯別字符集合;步驟B1,在含錯別字符的大規模語料庫中,分別找出包含所述正確字符和錯別字符的短語或詞組;步驟C1,找出正確字符和錯別字符的對應關系,建立詞組對或者短語對;步驟D1,優化所述詞組對或者短語對,將所述詞組對或者短語對中重復表述的詞組對或者短語對篩選掉,得到所述正確字符相應的錯別字符的詞組對或者短語對。
2.根據權利要求1所述的錯別字符處理方法,其特征在于,還包括下列步驟步驟E1,將所述正確字符相應的錯別字符的詞組對或者短語對加入到所述正確字符的 錯別字符詞典。
3.根據權利要求1或2所述的錯別字符處理方法,其特征在于,所述步驟Al包括下列 步驟步驟All,設置字符Word為空,置閥值Threshold的初值為O ;進入步驟A12 ; 步驟A12,為訓練集中的每個正確的字符RWord,建立該正確字符RWord的錯別字符集C(RWord)‘設置字符Wfford e C(Efford)當且僅當Wfford是RWord的一個錯別字; 字符Wfford的標記初始化為False。
4.根據權利要求3所述的錯別字符處理方法,其特征在于,所述步驟Bl包括下列步驟步驟B11,取出一個未處理過的正確字符RWord,執行步驟B12 ; 步驟B12,如果步驟B12是由步驟Bll跳轉過來的,則設置字符Word = Rfford,閥值 Threshold = RThreshold ;否則,如果步驟B12是由步驟B18跳轉過來的,則設置字符Word =fffford,閥值 Threshold = WThreshold ;否則,結束;其中,閥值RThreshold為在處理正確字符時使用的閥值;而閥值WThreshold為在處理 錯別字符時使用的閥值;步驟B13,在大規模語料庫File中檢索查找出包含字符Word的多個詞組或者短語; 步驟B14,對步驟B13中查找出的詞組或者短語,以字符Word為中心位置,依次統計和 字符Word距離分別為1、2、3的字符在該位置出現的頻率,對于頻率小于閥值Threshold的 字符T,則將詞組或者短語中,從T開始的遠離字符Word方向的字符清除;最后,將處理后 長度不小于2的詞組或者短語作為候選詞組或者短語;步驟B15,統計步驟B14中候選詞組或者短語頻率,將頻率不小于閥值Threshold-2的 候選詞組或者短語作為候選詞組或者短語;其中,閥值Threshold-2根據經驗值而預先設置;步驟B16,若當前處理的是正確字符,即Word = Rfford時,則將該些候選詞組或者短語 加入到字符集RPhrase中;否則,若當前處理的是錯別字符,即Word = fffford時,則將該些 候選詞組或者短語分別順序加入到可能錯誤詞組或者短語字符集PossibleWPhrase和字 符集Processed中,并將這些詞組或者短語在字符集Processed中的起始位置和末尾位置 記錄在二元組Positioner)中,置該錯別字符Wfford的標記為Ture,轉步驟Cl ;其中,字符集RPhrase,用于存儲步驟B15中找到的候選詞組或者短語,這些詞組或者 短語是包含了正確的字符,字符集RPhrase的初值為空;字符集PossibleWPhrase,用于將候選詞組或者短語分別順序加入到可能錯誤詞組或 者短語字符集,字符集PossibleWPhrase的初值為空;字符集Processed,用于存放步驟B14和步驟15中已經找到的包含錯別字符Wfford的 候選詞組或者短語,字符集Processed的初值為零;Position(Wfford)為一個二元組,第一項為包含錯別字符Wfford的候選詞組或者短語在字 符集Processed中的起始位置,第二項為該些候選詞組或者短語中的最后一個字符在字符 集Processed中的位置;步驟B17,從正確字符RWord的錯別字符集Ctewm0中按順序取出一個未處理過的錯別 字符Wfford ;步驟B18,如果這個錯別字符Wfford標記為False,則轉步驟B12 ;否則,執行步驟B19 ; 步驟B19,讀出二元組集Position^ -)中的二元組數據,并根據二元組數據在字符集 Processed中找到包含錯別字符Wfford的候選詞組或者短語,并加入到該錯別字符Wfford的 可能錯誤詞組或者短語集PossibleWPhrase中。
5.根據權利要求4所述的錯別字符處理方法,其特征在于,所述步驟Cl包括下列步驟步驟C11,將可能錯誤詞組或者短語集PossibleWPhrase中的詞組或者短語元素轉 換為可能正確的詞組或者短語A,并與字符集RPhrase中的詞組或者短語元素B按順序地 逐個比較,得到包含正確字符RWord和錯誤字符Wfford的極大公共子詞組對或者短語對 (Α Π B)KW。rf,將(Α Π B) KWOTd加入極大公共子詞組對或者短語對字符集LargestPhrase ;其中,字符集LargestPhrase,用于存儲正確字符RWord和錯誤字符Wfford的極大公共 子詞組對或者短語對的字符集,其初值為空;步驟C12,順序地從極大公共子詞組對或者短語對字符集LargestPhrase中取出一個 詞組對或者短語對元素A ;步驟C13,如果該詞組對或者短語對元素A的長度I I A| I彡2,則在包含該詞組對或者 短語對的大規模語料庫File中提取它的上下文環境,無重復加入字符集Context ;其中,字符集Context中的詞組對或者短語對是對字符集LargestPhrase中的每個詞 組對或者短語對提取上下文環境后得到的,所述字符集Context的初值為空;步驟C14,如果極大公共子詞組對或者短語對字符集LargestPhrase中的詞組對或者 短語對已經取完,則執行步驟Dl ;否則轉步驟Cll繼續比較。
6.根據權利要求5所述的錯別字符處理方法,其特征在于,所述步驟Dl包括下列步驟步驟Dll,對字符集Context中的詞組對或者短語對元素,進行迭代,將錯誤部分均相 同的詞組對或者短語對刪除,只保留一條詞組對或者短語對,直到字符集Context不再變 化為止,得到所述正確字符相應的錯別字符的詞組對或者短語對。
7.根據權利要求6所述的錯別字符處理方法,其特征在于,所述步驟El包括下列步驟步驟E11,為字符集Context中的詞組對或者短語對元素,建立四元組〈正確字符錯別字符正確詞組或者短語錯誤詞組或者短語〉,并加入到字符集SiyUnZU_Set中; 其中,字符集SiyUnZU_Set為最后的輸出詞典,其中的每一項均為四元組形式; 步驟 E12,清空字符集 PossibleffPhrase, LargestPhrase 和 Context 中的內容; 步驟E13,如果C(KW d)中還有字符沒有處理過,則轉步驟B16 ;否則,執行步驟E14 ; 步驟E14,清空字符集RPhrase中的內容;步驟E15,如果還有字符RWord未曾處理,轉步驟A12 ;否則,輸出錯別字符詞典,即字符 集Siyunzu_Set中的元素,結束。
8.根據權利要求4所述的錯別字符處理方法,其特征在于,所述詞組或者短語以字符 Word為中心,左右各三個字;如果不足三個,則取最大數。
9.根據權利要求8所述的錯別字符處理方法,其特征在于,所述步驟B14包括下列步驟步驟B141,對于距離字符Word為1的字符W1,在詞組或者短語中計算他們緊鄰Word 的次數 P(W1ZiWord);步驟B142,對于距離字符Word為2的字符W2,則統計它緊鄰字符Word和Wl出現的次 數 P (W2/Word. W1);步驟B143,對于距離字符Word為3的字符W3,則統計它緊鄰字符Word,Wl和W2出現 的次數 P (W3/Word. W1. W2)。
10.根據權利要求6所述的錯別字符處理方法,其特征在于,所述步驟Dll包括下列步驟其中,A,B, C均為字符集Context中的詞組對或者短語對;步驟D111,如果A是B的子詞組對或者短語對,對于字符集Context中的所有不同于 A的詞組對或者短語對C,如果A都不是(B Π C)Efford的子詞組對或者短語對,則在字符集 Context中保留A,刪除B ;步驟Dl 12,如果A是B的子詞組對或者短語對,如果Context中的存在一個不同于A的 詞組對或者短語對C,使得A是(B Π C) ^㈣的子詞組對或者短語對,則在字符集Context中 加入詞組對或者短語對B Π C,刪除Α,B,C ;步驟Dl 13,如果A不是B的子詞組對或者短語對,但是A和B的包含正確字符RWord和 錯誤字符WWord的極大公共子詞組對或者短語對的長度分別不小于3,則認為A和B中,都 包含有相同的且具有完整意思的詞組對或者短語對,則在字符集Context中添加公共子詞 組對或者短語對(Α Π B)KW d,刪除A和B。
11.一種錯別字符處理系統,包括錯別字符訓練集庫和含錯別字符的大規模語料庫,以 及錯別字符詞典,其特征在于,還包括第一創建模塊,用于根據錯別字符訓練集庫,為訓練集中每個正確字符建立其對應的 錯別字符集合;檢索查找模塊,用于在含錯別字符的大規模語料庫中,分別找出包含所述正確字符和 錯別字符的短語或詞組;篩選模塊,用于找出正確字符和錯別字符的對應關系,建立詞組對或者短語對; 優化模塊,用于優化所述詞組對或者短語對,將所述詞組對或者短語對中重復表述的詞組對或者短語對篩選掉,得到所述正確字符相應的錯別字符的詞組對或者短語對。
12.根據權利要求11所述的錯別字符處理系統,其特征在于,還包括第二創建模塊,用 于將所述正確字符相應的錯別字符的詞組對或者短語對加入到所述正確字符的錯別字符 詞典。
全文摘要
本發明公開了一種錯別字符處理方法和系統。該方法包括步驟A1,根據錯別字符訓練集庫,為訓練集中每個正確字符建立其對應的錯別字符集合;步驟B1,在含錯別字符的大規模語料庫中,分別找出包含所述正確字符和錯別字符的短語或詞組;步驟C1,找出正確字符和錯別字符的對應關系,建立詞組對或者短語對;步驟D1,優化所述詞組對或者短語對,將所述詞組對或者短語對中重復表述的詞組對或者短語對篩選掉,得到所述正確字符相應的錯別字符的詞組對或者短語對;步驟E1,將所述正確字符相應的錯別字符的詞組對或者短語對加入到所述正確字符的錯別字符詞典。其能夠識別錯別字符詞組或者短語,并建立錯別字符詞典,從而提高錯別字符詞典的生成效率。
文檔編號G06F17/27GK101847140SQ20091008081
公開日2010年9月29日 申請日期2009年3月23日 優先權日2009年3月23日
發明者曹亞男, 曹存根, 汪平仄, 王東升 申請人:中國科學院計算技術研究所