本發(fā)明屬于自然語言處理領域,特別涉及一種基于編輯距離的信息模式模糊匹配方法。
背景技術:
近幾年來,社交網絡的迅猛發(fā)展格外的引人注目。同時,社交網絡平臺的自身特點使得人們傳統(tǒng)的溝通方式發(fā)生了巨大的改變。也使得用戶在使用社交網絡平臺時忽略了很多傳統(tǒng)意義上對文字的嚴格要求。因此,在中文編輯是會出現如下問題:第一,中文輸入法帶來的同音字替換或由個人習慣帶來的近音字替換。中文用戶大部分使用中文輸入法,而在使用中文輸入法時很容易造成一些同音不同字的錯誤,或是由于地域問題對同一個詞會有不同的表達方式。第二,文字使用更加簡潔,出現很多組合詞。由于推文對內容字數的嚴格要求,使得用戶在文字使用上更加簡潔,出現了很多組合詞。但是在信息檢索時我們并不能窮舉出所有的詞。這使得對社交網絡中的信息進行篩選與匹配變得比以前更加困難。因此,需要有更高效的方法對社交網絡中的信息進行處理。
編輯距離是俄羅斯科學家Vladimir Levenshtein在1965年提出的一個概念,所以又稱為Levenshtein距離。最經典的編輯距離定義為:兩個字符串之間,由一個轉換成另外一個所需要的最少的操作次數。在Levenshtein的定義體系中有三種原子操作包括:替換、插入、刪除等。
技術實現要素:
本發(fā)明的目的在于,為了解決上述問題,提出了一種基于編輯距離的負面信息模式模糊匹配方法,能夠有效的提高模式匹配的查全率,同時,在保證查準率的情況下提高模式匹配的F-score。
為實現上述發(fā)明目的,本發(fā)明采用的基本技術方案包括如下內容:針對具體背景情況,通過基于漢字的編輯距離計算方法計算兩個字符串的漢字距離;通過基于拼音的編輯距離計算方法計算兩個相應漢字的拼音字符串間的拼音距離;采用將漢字距離與拼音距離相結合的模式模糊匹配方法,來進行負面信息檢測,在模式匹配的過程中先計算推文中所有的詞語與Trigger(觸發(fā)詞)類關鍵詞的距離,當存在的值小于設定的編輯距離閾值時再與Entity(實體詞)類關鍵詞進行匹配。
進一步地,基于漢字的編輯距離計算方法如下所述。
基于漢字的編輯距離計算方法主要是研究在進行漢字字符串匹配時,兩個字符串之間的 編輯距離。在本發(fā)明中模式是由Entity和Trigger組成,Trigger為模式串的核心組成部分,它是連接上下文的關鍵。
綜上所述,本發(fā)明在計算編輯距離的時候,只考慮Trigger表中的詞語與待匹配詞語之間的距離。因此,本發(fā)明定義:設Μ為數據庫中定義的負面信息類型的集合,E為負面信息類型,t為代表每個負面信息類型的Trigger詞,即:
Μ={Ei|i=1,2};Ei={tij|j=1,2...n},
設Φ為待匹配的目標串,x為目標串中的元素,即:Φ={xi|i=1,2...n},
設Dist1為模式串與目標串之間的最小編輯距離,則:
在本發(fā)明中,由于目標串是按模式串長度進行連續(xù)字符串匹配,所以定義:
其中|tij∩xi|為目標串與模式串集合的交集,實際意義為目標串與模式串的最大匹配長度。例如:“痛批”與“痛罵”的最大匹配長度為1。|tij|為模式串的長度,如“痛罵”的長度為2。
在本發(fā)明中,由于模式串中Trigger詞多數是由兩個或三個漢字組成,則在匹配的過程中,會有不同的模式串與目標串匹配距離相同。在這種情況下,本發(fā)明認為匹配到的次數越多,與模式串之間的距離越小。
進一步地,基于拼音的編輯距離計算方法如下所述。
在社交網絡平臺的實際應用中,大量用戶由于使用拼音輸入法會經常產生同音字、近音字的錯誤。同音字是現代漢語里語音相同但字形和意義不同的字。例如,在我國不同地區(qū)由于地域文化差異,在一些發(fā)音上也有自己的不同習慣,最常見的有:前后鼻音混用(ing/in,ang/an,eng/en),平卷舌混用(z/zh,c/ch,s/sh),(l/n)混用。在計算模式串與目標串的距離時,本發(fā)明給同音字/近音字之間的距離賦予較小的權重。
定義:設Μ′為數據庫中定義的負面信息類型的集合,E′為負面信息類型,t′為代表每個負面信息類型的Trigger詞,即:
Μ′={E′m|m=1,2},E′m={t′mk|k=1,2...n},
設Φ為待匹配的目標串,x為目標串中的元素,即:Φ′={xi′|i=1,2...n},
設Dist2為模式串與目標串之間的最小編輯距離,則:
在本發(fā)明中,由于目標串是先按漢字進行匹配后,再計算拼音的編輯距離,所以定義:
其中,|t′mk∩xi′|為模式串與目標串集合的交集,實際意義為模式串和目標串的最大匹配長度。例如:當t′mk為“tongpi”,xi′為“tongma”,則它們的最大匹配長度為4。|t′mk∪xi′|為模式串與目標串集合的并集,實際意義是模式串與目標串中包含所有字符的最小長度和,“tongpi”和“tongma”的最小長度和為8。Dif(||xi′|-|t′mk||)為模式串與目標串的字符長度差,考慮到用戶使用拼音輸入法時的習慣,本發(fā)明設定當有多個目標串與模式串匹配時,目標串與模式串之間的長度差越小,則認為兩者之間的距離越近。同時本發(fā)明參照字母在電腦鍵盤上的位置,設定一個單字母距離矩陣。即在鍵盤上的位置越相近,兩者之間的距離越小,從而確定β的值。
當兩個字符串的長度不同時計算字符串中的字符在鍵盤上的距離是沒有意義的,因此只有當Dif(||xi′|-|t′mk||)的值等于零時才會計算β的值。因此對公式進行改進得到:
其中:
在計算鍵盤上字母之間的距離時參考用戶在使用鍵盤時的標準手勢,在標準的鍵盤手勢使用規(guī)則中左手小拇指負責的字母為“Q,A,Z”,左手無名指負責的字母為“W,S,X”,左手中指負責的字母為“E,D,C”,左手食指負責的為“R,F,V,T,G,B”,對應的右手小拇指負責的字母為“P”,右手無名指負責的字母“O,L”,右手中指負責的為“I,K”,右手大拇指負責的字母為“U,J,M,Y,H,N”。因為鍵盤上的字母組成的并不是一個完整的矩陣,本發(fā)明在充分考慮用戶使用標準的鍵盤手勢情況下,根據同一個手指負責的字母之間的距離更小的原則,將第二行和第三行的字母向左靠齊,同時對右邊的位置進行填充處理。定義β的取值公式如下:
在上述公式中,字母在鍵盤中的位置越近,它們之間的距離越小,例如:“Q”與“A”的距 離為1,“Q”與“W”的距離為1,“W”與“A”的距離為2。在考慮鍵盤距離的影響不會弱化其他距離的作用情況下,根據鍵盤中兩字母的最大距離對公式進行改進得到:
其中,為鍵盤中兩個字母的最大距離,根據本發(fā)明定義的鍵盤中任意兩個字母之間的距離計算公式:得到:
進而得到:
最終,得到基于拼音的編輯距離計算公式為:
其中:
進一步地,基于編輯距離的模式模糊匹配方法如下所述。
本發(fā)明在針對所研究問題的具體背景情況,采用基于漢字距離和拼音距離相結合的模式模糊匹配方法,定義:Dist=αminDist1+(1-α)minDist2,其中,Dist為最后漢字距離和拼音距離的加權和,minDist1為漢字的最小編輯距離,minDist2為拼音的最小編輯距離。α為加權系數。
基于編輯距離的模式模糊匹配方法來進行負面信息檢測主要是在模式匹配的過程中先計算推文中所有的詞語與Trigger類關鍵詞的距離Dist,當存在Dist的值小于設定的編輯距離閾值時再與Entity類關鍵詞進行匹配。匹配到Entity后輸出結果即為負面信息。
綜上所述,通過本發(fā)明的技術方案,能夠有效的提高模式匹配的查全率,同時,在保證查準率的情況下提高模式匹配的F-score。
附圖說明
參考附圖詳細描述了本發(fā)明,應當理解,附圖以及相應的描述應當被理解為是說明性的而非限制性的,其中:
圖1示出了基于編輯距離的負面信息模式模糊匹配方法的具體流程;
圖2示出了基于編輯距離的負面信息模式模糊匹配方法的查準率;
圖3示出了基于編輯距離的負面信息模式模糊匹配方法的查全率;
圖4示出了基于編輯距離的負面信息模式模糊匹配方法的F-score。
具體實施方式
下面結合附圖以臺灣地區(qū)領導人選舉作為示例來對本發(fā)明的優(yōu)選實施方式進行詳細說明。
近幾年來,社交網絡的迅猛發(fā)展格外的引人注目。同時,社交網絡平臺的自身特點使得人們傳統(tǒng)的溝通方式發(fā)生了巨大的改變。也使得用戶在使用社交網絡平臺時忽略了很多傳統(tǒng)意義上對文字的嚴格要求。
(1)中文輸入法帶來的同音字替換或由個人習慣帶來的近音字替換。
中文用戶大部分使用中文輸入法,而在使用中文輸入法時很容易造成一些同音不同字的錯誤,或是由于地域問題對同一個詞會有不同的表達方式。如在關于臺灣地區(qū)的推文中會出現“MG149轉偵字案柯文哲首被人告罰,早經調查局徹查,2014臺灣地區(qū)領導人選舉跳針N次的MG149再被翻出,改成偵字案,有無政治因素?”其中“告罰”和“告發(fā)”同音。
(2)文字使用更加簡潔,出現很多組合詞。
由于推文對內容字數的嚴格要求,使得用戶在文字使用上更加簡潔,出現了很多組合詞。但是在信息檢索時我們并不能窮舉出所有的詞。如在關于臺灣地區(qū)領導人選舉的推文中,會經常出現“狀告”、“控告”、“提告”、“申告”等詞。不難發(fā)現它們之間有著相同的組合結構。
針對以上情況,本發(fā)明提出一種基于編輯距離的負面信息模式模糊匹配方法。
編輯距離是俄羅斯科學家Vladimir Levenshtein在1965年提出的一個概念,所以又稱為Levenshtein距離。最經典的編輯距離定義為:兩個字符串之間,由一個轉換成另外一個所需要的最少的操作次數。在Levenshtein的定義體系中有三種原子操作包括:替換、插入、刪除等。在Damerau的定義體系中有四種原子操作包括:插入、刪除、替換、相鄰交換。Levenshtein距離可以處理多重編輯錯誤,而Damerau距離只能處理單一的編輯錯誤。本發(fā)明重點介紹Levenshtein距離。
基于漢字的編輯距離計算方法如下。
基于漢字的編輯距離計算方法主要是研究在進行漢字字符串匹配時,兩個字符串之間的 編輯距離。在本發(fā)明中模式是由Entity和Trigger組成,Trigger為模式串的核心組成部分,它是連接上下文的關鍵。同時,在針對臺灣地區(qū)領導人選舉具體背景情況下,Entity中關鍵人物或黨政組織不會出現大的變化,截止本發(fā)明撰寫時,重要人物都在本發(fā)明的Entity表中。在對相關推文進行具體統(tǒng)計分析后,推文中有很多對Entity表中的人物的簡稱為別稱,但是出現非別稱但是意指同一個人的只有“蔡依林”與“蔡英文”。如“民進黨主席蔡依林表示...黨主席換人了?-政治-自由時報電子報”,這里的蔡依林其實指的是蔡英文。這類推文通常是一些網名發(fā)表的無意義的垃圾推文。
綜上所述,本發(fā)明在計算編輯距離的時候,只考慮Trigger表中的詞語與待匹配詞語之間的距離。因此,本發(fā)明定義:設Μ為數據庫中定義的負面信息類型的集合,E為負面信息類型,t為代表每個負面信息類型的Trigger詞,即:
Μ={Ei|i=1,2},
Ei={tij|j=1,2...n},
設Φ為待匹配的目標串,x為目標串中的元素,即:Φ={xi|i=1,2...n},
設Dist1為模式串與目標串之間的最小編輯距離,則:
在本發(fā)明中,由于目標串是按模式串長度進行連續(xù)字符串匹配,所以定義:
其中|tij∩xi|為目標串與模式串集合的交集,實際意義為目標串與模式串的最大匹配長度。例如:“痛批”與“痛罵”的最大匹配長度為1。|tij|為模式串的長度,如“痛罵”的長度為2。
在本發(fā)明中,由于模式串中Trigger詞多數是由兩個或三個漢字組成,則在匹配的過程中,會有不同的模式串與目標串匹配距離相同。在這種情況下,本發(fā)明認為匹配到的次數越多,與模式串之間的距離越小。
基于拼音的編輯距離計算方法如下。
在社交網絡平臺的實際應用中,大量用戶由于使用拼音輸入法會經常產生同音字、近音字的錯誤。同音字是現代漢語里語音相同但字形和意義不同的字。例如,在我國不同地區(qū)由于地域文化差異,在一些發(fā)音上也有自己的不同習慣,最常見的有:前后鼻音混用(ing/in,ang/an,eng/en),平卷舌混用(z/zh,c/ch,s/sh),(l/n)混用。在計算模式串與目標串的距離時,本發(fā)明給同音字/近音字之間的距離賦予較小的權重。
定義:設Μ′為數據庫中定義的負面信息類型的集合,E′為負面信息類型,t′為代表每個 負面信息類型的Trigger詞,即:Μ′={E′m|m=1,2},E′m={t′mk|k=1,2...n}。
設Φ為待匹配的目標串,x為目標串中的元素,即:Φ′={xi′|i=1,2...n}。
設Dist2為模式串與目標串之間的最小編輯距離,則:
在本發(fā)明中,由于目標串是先按漢字進行匹配后,再計算拼音的編輯距離,所以定義:
其中,|t′mk∩xi′|為模式串與目標串集合的交集,實際意義為模式串和目標串的最大匹配長度。例如:當t′mk為“tongpi”,xi′為“tongma”,則它們的最大匹配長度為4。|t′mk∪xi′|為模式串與目標串集合的并集,實際意義是模式串與目標串中包含所有字符的最小長度和,“tongpi”和“tongma”的最小長度和為8。Dif(||xi′|-|t′mk||)為模式串與目標串的字符長度差,考慮到用戶使用拼音輸入法時的習慣,本發(fā)明設定當有多個目標串與模式串匹配時,目標串與模式串之間的長度差越小,則認為兩者之間的距離越近。同時本發(fā)明參照字母在電腦鍵盤上的位置,設定一個單字母距離矩陣。即在鍵盤上的位置越相近,兩者之間的距離越小,從而確定|β|的值。
當兩個字符串的長度不同時計算字符串中的字符在鍵盤上的距離是沒有意義的,因此只有當Dif(||xi′|-|t′mk||)的值等于零時才會計算β的值。因此進行改進得到:
其中:
在計算鍵盤上字母之間的距離時參考用戶在使用鍵盤時的標準手勢。
在標準的鍵盤手勢使用規(guī)則中左手小拇指負責的字母為“Q,A,Z”,左手無名指負責的字母為“W,S,X”,左手中指負責的字母為“E,D,C”,左手食指負責的為“R,F,V,T,G,B”,對應的右手小拇指負責的字母為“P”,右手無名指負責的字母“O,L”,右手中指負責的為“I,K”,右手大拇指負責的字母為“U,J,M,Y,H,N”。因為鍵盤上的字母組成的并不是一個完整的矩陣,本發(fā)明在充分考慮用戶使用標準的鍵盤手勢情況下,根據同一個手指負責的字母之間的 距離更小的原則,將第二行和第三行的字母向左靠齊,同時對右邊的位置進行填充處理。定義β的取值公式如下:
在上述公式中,字母在鍵盤中的位置越近,它們之間的距離越小,例如:“Q”與“A”的距離為1,“Q”與“W”的距離為1,“W”與“A”的距離為2。在考慮鍵盤距離的影響不會弱化其他距離的作用情況下,根據鍵盤中兩字母的最大距離對公式進行改進得到:
其中,為鍵盤中兩個字母的最大距離,根據本發(fā)明定義的鍵盤中任意兩個字母之間的距離計算公式:得到:進而得到:
最終,得到基于拼音的編輯距離計算公式為:
其中:
基于編輯距離的模式模糊匹配方法如下。
本發(fā)明在針對所研究問題的具體背景情況,采用基于漢字距離和拼音距離相結合的模式模糊匹配方法。定義:Dist=αminDist1+(1-α)minDist2,其中,Dist為最后漢字距離和拼音距離的加權和,minDist1為漢字的最小編輯距離,minDist2為拼音的最小編輯距離。α為加權系數。
基于編輯距離的模式模糊匹配方法來進行負面信息檢測主要是在模式匹配的過程中先計 算推文中所有的詞語與Trigger類關鍵詞的距離Dist,當存在Dist的值小于設定的編輯距離閾值時再與Entity類關鍵詞進行匹配。匹配到Entity后輸出結果即為負面信息。
基于編輯距離的負面信息模式模糊匹配方法流程如圖1所示。
其中,編輯距離指的是漢字距離和拼音距離的加權和;數據庫中的Trigger表和Entity表指的關鍵詞擴展方法擴展后的表。方法步驟如下所示:
輸入:Trigger類關鍵詞集合M={tij},Entity類關鍵詞集合O={emn},標注數據集D={di},編輯距離閾值α;
輸出:負面推文集合D′={di′};
實驗結果分析
在本發(fā)明的實驗中,由于Trigger詞多由兩個字組成,所以計算漢字的編輯距離時,要么是0.5,要么是1,要么是0,。即拼音的編輯距離對最后編輯距離的貢獻比較大。因此,本發(fā)明在最后取加權系數時盡量最小化α的值。如果完全忽略漢字的距離即α得值取為0的話,當遇到同音不同字的問題時無法很好的區(qū)分與原來精確匹配的差距,如上文提到的“告發(fā)”與“告罰”。同時在最終處理的過程中,拼音的編輯距離是在漢字的編輯距離的基礎上提出的,即當漢字的編輯距離為0.5時才會計算拼音的編輯距離。所以本發(fā)明最終取α的值為0.01。實驗數據集為第二章中人工標注的5000條推文數據。評價指標選用第三章描述的查準率、查全率和F-score。圖2、3、4分別示出了基于編輯距離的負面信息模式模糊匹配方法的查準率、 查全率、F-score。
圖2中橫坐標表示的是編輯距離的閾值??v坐標為在加權系數α的取值為0.01,取閾值步長為0.01得出的本發(fā)明的基于編輯距離的負面信息模式模糊匹配方法的查準率。從圖中可以看出,隨著編輯距離的增加,查準率成下降趨勢。當編輯距離為0即為模式精確匹配時查準率最高。當編輯距離大于0.46時,查準率下降到0.65以下,基本上已經沒有實際使用價值了。分析原因主要是隨著編輯距離的增加,與原始關鍵詞的“相似度”越小,所匹配出的詞的負面性也可能越小。最極端的情況是:如果設定的編輯距離的閾值為1,即只要所匹配的推文中含有原始關鍵詞表中的任意一個字都會輸出匹配結果。例如原始詞表中的“告發(fā)”會跟所有含有“告”和“發(fā)”的推文匹配出結果,如“發(fā)現”、“發(fā)燒”、“告訴”、“告別”等,而這些詞幾乎不帶有任何負面性。
圖3橫坐標表示的是編輯距離的閾值。縱坐標為在加權系數α的取值為0.01,取閾值步長為0.01得出的本發(fā)明的基于編輯距離的負面信息模式模糊匹配方法的查全率。從圖中可以看出,隨著編輯距離的增加,查準率成上升趨勢。當編輯距離為0即為模式精確匹配時查準率最低。當編輯距離為0.46時,查全率上升到0.7以上。分析原因主要是隨著編輯距離的增加,匹配出的不相關內容也越多,同時匹配到的原始關鍵詞中沒有的負面性詞語的幾率也越大。
圖4橫坐標表示的是編輯距離的閾值??v坐標為在加權系數α的取值為0.01,取閾值步長為0.01得出的本發(fā)明的基于編輯距離的負面信息模式模糊匹配方法的F-score。從圖中可以看出當編輯距離為0即為模式精確匹配時F-score為0.708。當編輯距離為0-0.39之間時,F-score為0.718。當編輯距離為0.39-0.42之間時,F-score為0.710。當編輯距離為0.46時,F-score的值最大為0.743。當編輯距離大于0.5時,F-score成下降趨勢。當編輯距離為0.6時F-score下降到0.35以下,此時已經沒有太大的實際意義了。當閾值在0-0.39之間時,查準率、查全率和F-score都是比較穩(wěn)定的值。主要是,此時拼音的編輯距離主要為“同音不同字”時的距離,即編輯距離為0.005。
綜合分析,本發(fā)明所提出的基于編輯距離的負面信息模式模糊匹配方法在一定程度上提高了負面信息檢測的F-score,證明了這種方法的可行性和實用性。提高的程度不高的主要原因是:從Trigger類關鍵詞來看,本發(fā)明所定義的Trigger詞大多由兩個字組成,造成在計算漢字編輯距離時出現只有“0”、“0.5”和“1”三種情況,從而使得漢字的距離無效化。
本發(fā)明中應用了具體實施例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。以上所述僅是本發(fā)明的優(yōu)選實施方式,應當 指出,由于文字表達的有限性,而客觀上存在無限的具體結構,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進、潤飾或變化,也可以將上述技術特征以適當的方式進行組合;這些改進潤飾、變化或組合,或未經改進將發(fā)明的構思和技術方案直接應用于其它場合的,均應視為本發(fā)明的保護范圍。