本發(fā)明涉及文本匹配技術領域,更具體地說,涉及一種短文本之間的文本匹配度計算方法。
背景技術:
目前主流的文本相似度計算方法包括以下幾種,但都與存在不同程度的缺點。
一、普通jaro-winkler計算方法適合短字符,字符前綴相同有加分,但是沒有考慮相似字符之間間隔,因此反例拒絕匹配(待匹配短文本相似度計算高,但實際不是相似的短文本)效果較差。
二、最長公共字串計算方法對字符保證相對有序,反例拒絕匹配效果較好,但對長度和間隔敏感,正例匹配(待匹配短文本間字符相似度高,并且實際上的確是相似的短文本)效果較差。
三、基于編輯距離的相似度計算方法對字符長度和位序敏感,差異大的反例子拒絕匹配效果較好,但對有差異的正例和相似的反例的拒絕匹配效果較差。
四、余弦相似度方法對長度和間隔敏感,對某些反例拒絕匹配效果較好,但是沒有考慮位序,位序有差異的反例拒絕匹配效果較差。
五、短語相似度方法考慮了相同字符的間隔,某些反例匹配效果較好,但沒有考慮位序,位序有差異的反例拒絕匹配效果較差。
技術實現(xiàn)要素:
本發(fā)明的一個目的在于提供一種具有能夠一定程度上克服上述缺陷的、短文本之間的文本匹配度計算方法。
為實現(xiàn)上述目的,本發(fā)明提供一種技術方案如下:
一種短文本之間的文本匹配度計算方法,包括如下步驟:a)、對第一文本、第二文本進行分詞,以分別獲得第一、第二文本的分詞序列;b)、基于第一、第二文本的分詞序列分別確定第一文本、第二文本的匹配序列;其中,第一文本的匹配序列表示在第一文本中的、與第二文本中的某一字符相同的字符所組成的、并按字符在第一文本中的先后順序而排列的序列,第二文本的匹配序列表示在第二文本中的、與第一文本中的某一字符相同的字符所組成的、并按字符在第二文本中的先后順序而排列的序列;c)、瀏覽第一文本的匹配序列,確定第一文本的匹配序列中的第i+1個字符與第i個字符在第二文本中的位置間隔;d)、基于各位置間隔、利用短語相似度計算方法來計算第一、第二文本之間的相同字符匹配度;e)、計算第一文本的匹配序列與第二文本的匹配序列之間的編輯距離;以及f)、基于第一、第二文本之間的相同字符匹配度、編輯距離、以及第一、第二文本各自的字符串長度,計算第一、第二文本之間的文本匹配度。
優(yōu)選地,該方法還包括文本匹配度修正步驟:定義文本相似度閾值;確定在第一文本的匹配序列中、與第二文本的匹配序列相同的起始部分的字符長度;以及基于文本相似度閾值、相同的起始部分的字符長度對文本匹配度進行修正。
優(yōu)選地,在步驟b)中:針對第一文本中的每一字符,分別僅與第二文本中未完成匹配的字符進行匹配,并以第二文本中完成匹配的、順序最先的字符記錄于第二文本的匹配序列中。
本發(fā)明的另一目的在于提供一種匹配準確率更高的短文本匹配方法。
為實現(xiàn)上述目的,本發(fā)明提供另一技術方案如下:
一種短文本匹配方法,用于從一短文本集合中找出與待匹配文本相匹配的一個或多個短文本,匹配方法包括:利用上述方法來分別計算待匹配文本與短文本集合中的各短文本之間的文本匹配度;將短文本集合中的、與待匹配文本之間的文本匹配度最高的短文本確定為相匹配的短文本。
本發(fā)明所提供的短文本之間的文本匹配度計算方法,能夠更準確地計算短文本之間的匹配度,應用這種方法不僅對文本的匹配準確率更高,而且魯棒性良好,也具有更高的敏感性和特異性。本發(fā)明所提供的短文本匹配方法,正例匹配以及反例拒絕匹配都具有良好效果,從而相比于現(xiàn)有技術具有更高的匹配準確率。
附圖說明
圖1示出本發(fā)明第一實施例提供的短文本之間的文本匹配度計算方法的流程圖。
圖2示出根據(jù)本發(fā)明的文本相似度計算方法與現(xiàn)有技術中的文本相似度計算方法的技術指標對比。
具體實施方式
如圖1所示,本發(fā)明第一實施例提供一種短文本之間的文本匹配度計算方法,其包括如下各步驟。
步驟s10、對第一文本、第二文本進行分詞,以分別獲得第一、第二文本的分詞序列。
作為一個示例,對于要匹配的兩個文本a(第一文本)和b(第二文本)分別進行分詞,由于是針對短文本,可以使用全切分和基于詞的頻度統(tǒng)計的分詞方法。分詞后獲得分詞序列a="a0a1...am-1",b="b0b1...bn-1",其中m≤n,a代表較短的字符串文本,b代表較長的字符串文本。
步驟s11、基于第一、第二文本的分詞序列分別確定第一文本、第二文本的匹配序列。
其中,第一文本的匹配序列表示在第一文本中的、與第二文本中的某一字符相同的字符所組成的、并按字符在第一文本中的先后順序而排列的序列,第二文本的匹配序列表示在第二文本中的、與第一文本中的某一字符相同的字符所組成的、并按字符在第二文本中的先后順序而排列的序列。
繼續(xù)上述示例,如果文本a中第i個字符ai在文本b中有相同字符bk與之匹配,則計算該字符在文本b中的位置:
c(a,i,b)={k|bk=ai,k=0,1,...,n-1},其中i=0,1,…,m-1。
優(yōu)選情況下,針對所述第一文本中的每一字符,分別僅與第二文本中未完成匹配的字符進行匹配,并以第二文本中完成匹配的、順序最先的字符記錄于第二文本的匹配序列中,進而形成第二文本的整個匹配序列。
步驟s12、瀏覽第一文本的匹配序列,確定第一文本的匹配序列中的第i+1個字符與第i個字符在第二文本中的位置間隔。
步驟s13、基于各位置間隔、利用短語相似度計算方法來計算第一、第二文本之間的相同字符匹配度。
繼續(xù)上述示例,如果文本a中存在第i個字符和第i+1個字符分別與文本b中對應字符相匹配,則計算匹配成功的第i個字符和第i+1個字符在文本b中對應字符之間的位置間隔:
δ(a,i+1,i,b)=c(a,i+1,b)-c(a,i,b)
進而,第一、第二文本之間的相同字符匹配度可采用如下計算公式:
本領域技術人員理解,計及字符之間的位置間隔,可以提高反例拒絕匹配的效果。
步驟s14、計算第一文本的匹配序列與第二文本的匹配序列之間的編輯距離。
具體地,針對文本a和文本b中所有匹配成功的字符集合,按照每個字符在a中的先后順序,構成字符串ms1;同時,按照每個字符在b中的先后順序,構成字符串ms2。
進而,字符串ms1和字符串ms2之間的編輯距離(levenshtein距離)可以表示為:
t=d(ms1,ms2),其中,d表示求取字符串之間的編輯距離。
本領域技術人員可以理解,將編輯距離作為文本匹配度的計算因子,可以確保字符長度和位序敏感性,使得某些差異大的反例拒絕匹配效果較好。
步驟s15、基于第一、第二文本之間的相同字符匹配度、編輯距離、以及第一、第二文本各自的字符串長度,計算第一、第二文本之間的文本匹配度。
作為示例,第一、第二文本之間的文本匹配度的計算公式為:
根據(jù)該第一實施例的改進實施方式,該方法還包括一文本匹配度修正步驟:
本領域技術人員可以理解,當文本a和文本b的相似度比較高,并且起始位置部分相同的長度較大時,則文本a與文本b相似的幾率會更高。上述修正步驟即將該因素考慮在內。
具體地,文本匹配度可采用如下修正公式:
本發(fā)明第二實施例提供一種短文本匹配方法,用于從一短文本集合中找出與待匹配文本相匹配的一個或多個短文本,該匹配方法包括:
一、利用上述第一實施例提供的短文本之間的文本匹配度計算方法,分別計算待匹配文本與短文本集合中的各短文本之間的文本匹配度。
二、將短文本集合中的、與待匹配文本之間的文本匹配度最高的短文本確定為與待匹配文本相匹配的短文本。
圖2示出根據(jù)本發(fā)明的文本相似度計算方法(基于其的短文本匹配方法)與現(xiàn)有技術中的5種文本相似度計算方法(基于它們的短文本匹配方法)的技術指標對比。
具體地,為了刻畫6種計算方法的準確性,繪制了6種不同計算方法的roc曲線,其中roc曲線以負正類率(fpr)為橫坐標、以真正類率(tpr)為縱坐標進行繪制。
從圖2中可以看出,這6種計算方法的auc都超過了0.9,說明采用該6種方法都會有比較好的文本匹配效果和/或文本分類效果。就auc的指標來看,本發(fā)明提供的計算方法技術指標最好,jaro-winkler計算方法次之,編輯距離計算方法的技術指標最差,lcs(最長公共字串)、余弦相似度計算方法和短語相似度計算方法的效果位于中間水平。從曲線的走勢來說,也是本發(fā)明提供的計算方法更接近坐標軸的左上角,說明該方法在這些位置具有更高的敏感性和特異性。
應用本發(fā)明提供的文本相似度計算方法,在特定的f1閾值下有更好的精確率和召回率;而在召回率達到60%時,相比現(xiàn)有技術中的各種方法,短文本匹配的準確率表現(xiàn)更好,可以高達87.1%;此外,從auc標準差來說,本發(fā)明提供的文本相似度計算方法在整體上優(yōu)于其他方法。
上述說明僅針對于本發(fā)明的優(yōu)選實施例,并不在于限制本發(fā)明的保護范圍。本領域技術人員可作出各種變形設計,而不脫離本發(fā)明的思想及附隨的權利要求。