本發(fā)明涉及語義網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種改進的基于語義分析的文本相似度求解算法。
背景技術(shù):
目前,常用的計算文本相似度方法主要有兩種:一種是基于數(shù)理統(tǒng)計的方法,另外一種是基于語義分析的方法。基于數(shù)理統(tǒng)計的方法是根據(jù)詞形和詞頻進行計算,而語義分析則是利用文本內(nèi)部詞匯的內(nèi)在語義聯(lián)系進行計算。向量空間模型(Vector Space Model簡稱VSM)是計算文本相似度的經(jīng)典方法,該方法沒有考慮詞匯的語義信息和詞匯之間的語義聯(lián)系,因此不能真實的反應(yīng)文本之間的相似情況,此外VSM沒有考慮詞匯在文本中的語義地位和對文本中心思想表達所作出的貢獻大小,所以用向量空間模型來計算文本相似度是有缺陷的。為了提高文本相似度計算的準(zhǔn)確性和解決“一詞多義”與“一義多詞”等現(xiàn)象,本發(fā)明提供了改進的基于語義分析的文本相似度求解算法。
技術(shù)實現(xiàn)要素:
針對于文本中特征詞匯中不同詞匯對文本的重要程度的差異問題、“一詞多義”與“一義多詞”問題以及提高文本相似度計算的準(zhǔn)確性問題,本發(fā)明提供了改進的基于語義分析的文本相似度求解算法。
為了解決上述問題,本發(fā)明是通過以下技術(shù)方案實現(xiàn)的:
步驟1:初始化文本語料庫模塊,對待比較文本(W1,W2)的進行預(yù)處理。
步驟2:基于信息論方法,計算詞匯在文本中權(quán)重值WI。
步驟3:根據(jù)詞匯位置信息和詞性,計算詞匯在文本中的權(quán)重值
步驟4:綜合考慮上述三因子,構(gòu)造提取文本(W1,W2)中的特征值目標(biāo)函數(shù)分別提取文本(W1,W2)中的特征值。
步驟5:利用詞匯語義相似度sim(c1i,c1i+1)對上述得到的特征詞匯集合進行降維處理
步驟6:根據(jù)皮爾森相關(guān)系數(shù)求解待比較文本(W1,W2)間的文本相似度sim(W1,W2)。
本發(fā)明有益效果是:
1、此方法比傳統(tǒng)的文本相似度計算方法得到的結(jié)果具有更高的準(zhǔn)確性,更符合人工提取的結(jié)果。
2、此方法在信息檢索、機器翻譯、自動問答系統(tǒng)等領(lǐng)域都具有更好的適用性。
3、此算法具有更大的利用價值。
4、此方法精確地計算了特征詞匯中不同詞匯對文本思想的貢獻度。
5、計算特征詞匯中不同詞匯對文本思想的貢獻度具有更高的精確度。
6、為后續(xù)的文本聚類提供良好的理論基礎(chǔ)。
7、此方法處理了“一詞多義”與“一義多詞”的問題
8、此方法著重在語義分析的角度來計算兩文本間的相似度,更符合人們的經(jīng)驗值。
附圖說明
圖1改進的基于語義分析的文本相似度求解算法的結(jié)構(gòu)流程圖
圖2中文文本預(yù)處理過程流程圖
圖3 n元語法分詞算法圖
具體實施方式
為了解決文本中特征詞匯中不同詞匯對文本的重要程度的差異問題、“一詞多義”與“一義多詞”問題以及提高文本相似度計算的準(zhǔn)確性問題,結(jié)合圖1-圖3對本發(fā)明進行了詳細說明,其具體實施步驟如下:
步驟1:初始化文本語料庫模塊,對待比較文本(W1,W2)的進行預(yù)處理,其具體描述過程如下:
綜合分詞和刪除停用詞技術(shù),中文文本預(yù)處理過程流程圖如圖2。
這里分詞方法利用一種基于信息論中文自動分詞算法,其具體分詞和去停用詞處理步驟如下:
步驟1.1:利用停用表分別對文本(W1,W2)進行去停用詞處理。
步驟1.2:根據(jù)《分詞詞典》找到待分詞句子中與詞典中匹配的詞,其具體描述如下:
把待分詞的漢字串完整的掃描一遍,在系統(tǒng)的詞典里進行查找匹配,遇到字典里有的詞就標(biāo)識出來;如果詞典中不存在相關(guān)匹配,就簡單地分割出單字作為詞;直到漢字串為空。
步驟1.3:依據(jù)概率統(tǒng)計學(xué),將待分詞句子拆分為網(wǎng)狀結(jié)構(gòu),即得n個可能組合的句子結(jié)構(gòu),把此結(jié)構(gòu)每條順序節(jié)點依次規(guī)定為SM1M2M3M4M5E,其結(jié)構(gòu)圖如圖3所示。
步驟1.4:基于信息論方法,給上述網(wǎng)狀結(jié)構(gòu)每條邊賦予一定的權(quán)值,其具體計算過程如下:
根據(jù)《分詞詞典》匹配出的字典詞與未匹配的單個詞,第i條路徑包含詞的個數(shù)為ni。即n條路徑詞的個數(shù)集合為(n1,n2,…,nn)。
得min()=min(n1,n2,…,nn)
在上述留下的剩下的(n-m)路徑中,求解每條相鄰路徑的權(quán)重大小。
在統(tǒng)計語料庫中,計算每個詞的信息量X(Ci),再求解路徑相鄰詞的共現(xiàn)信
息量X(Ci,Ci+1)。既有下式:
X(Ci)=|x(Ci)1-x(Ci)2|
上式x(Ci)1為文本語料庫中詞Ci的信息量,x(Ci)2為含詞Ci的文本信息量。
x(Ci)1=-P(Ci)1lnp(Ci)1
上式p(Ci)1為Ci在文本語料庫中的概率,n為含詞Ci的文本語料庫的個數(shù)。
x(Ci)2=-p(Ci)2lnp(Ci)2
上式p(Ci)2為含詞Ci的文本數(shù)概率值,N為統(tǒng)計語料庫中文本總數(shù)。
同理X(Ci,Ci+1)=|x(Ci,Ci+1)1-x(Ci,Ci+1)2|
x(Ci,Ci+1)1為在文本語料庫中詞(Ci,Ci+1)的共現(xiàn)信息量,x(Ci,Ci+1)2為相鄰詞(Ci,Ci+1)共現(xiàn)的文本信息量。
同理x(Ci,Ci+1)1=-p(Ci,Ci+1)1lnp(Ci,Ci+1)1
上式p(Ci,Ci+1)1為在文本語料庫中詞(Ci,Ci+1)的共現(xiàn)概率,m為在文本庫中詞(Ci,Ci+1)共現(xiàn)的文本數(shù)量。
x(Ci,Ci+1)2=-P(ChCi+1)2lnp(Ci,Ci+1)2
p(Ci,Ci+1)2為文本庫中相鄰詞(Ci,Ci+1)共現(xiàn)的文本數(shù)概率。
綜上可得每條相鄰路徑的權(quán)值為
w(Ci,Ci+1)=X(Ci)+X(Ci+1)-2X(Ci,Ci+1)
步驟1.5:找到權(quán)值最大的一條路徑,即為待分詞句子的分詞結(jié)果,其具體計算過程如下:
有n條路徑,每條路徑長度不一樣,假設(shè)路徑長度集合為(L1,L2,…,Ln)。
假設(shè)經(jīng)過取路徑中詞的數(shù)量最少操作,排除了m條路徑,m<n。即剩下(n-m)路徑,設(shè)其路徑長度集合為
則每條路徑權(quán)重為:
上式分別為第1,2到路徑邊的權(quán)重值,根據(jù)步驟1.4可以一一計算得出,為剩下(n-m)路徑中第Sj條路徑的長度。
權(quán)值最大的一條路徑:
步驟2:基于信息論方法,計算詞匯在文本中權(quán)重值WI,其具體計算過程如下:
基于信息論詞頻的計算公式有:
上式為詞匯關(guān)于詞頻在文檔中所具有的信息量,p(c1,2)分別為詞c1、c2在文本中的概率值。
基于信息論文檔頻率的計算公式有:
為詞匯關(guān)于文檔頻率在文檔庫中所具有的信息量,為分別含有c1、c2的文檔數(shù),N為文檔庫中文檔的總個數(shù)。
綜上所述,有基于信息論計算詞匯權(quán)重的函數(shù),歸一化后,如下式:
步驟3:根據(jù)詞匯位置信息和詞性,計算詞匯在文本中的權(quán)重值其具體計算過程如下:
根據(jù)調(diào)研資料顯示,特征詞越在文本靠前位置,越能代表文本的中心思想,特征詞在文本中出現(xiàn)的次數(shù)越多,越具有文本含義的代表性。通過步驟2得到詞匯在文本的權(quán)重值,取前n個特征詞匯。對這些詞匯進行位置權(quán)重劃分。
在文本中每個特征詞至少出現(xiàn)一次,文本特征詞c(1,2)i構(gòu)成的位置向量,如下:
從詞性的角度看,名詞一般擔(dān)當(dāng)主語和賓語的角色,動詞一般擔(dān)當(dāng)謂語的角色,形容詞和副詞一般擔(dān)當(dāng)定語的角色。詞性的不同,造成了它們對文本或者句子的表示內(nèi)容的能力的不一樣。經(jīng)過相關(guān)領(lǐng)域?qū)<艺{(diào)查可得,名詞、動詞、形容詞、副詞等詞性在文本中的權(quán)重系數(shù)ai。
則綜合考慮每個特征詞位置與詞性的權(quán)重函數(shù)為:
上式k為特征詞ci出現(xiàn)在文本中的段落數(shù),qh為含有特征詞ci的第h段對文本思想的貢獻值,ai為詞性對文本思想的貢獻值,ai、qh值由相應(yīng)文本領(lǐng)域?qū)<医?jīng)過調(diào)研可以得出。nh為特征詞ci在第h段出現(xiàn)的次數(shù)。
步驟4:綜合考慮上述三因子,構(gòu)造提取文本(W1,W2)中的特征詞目標(biāo)函數(shù)分別提取文本(W1,W2)中的特征詞,其具體計算過程如下:
提取文本(W1,W2)中特征詞匯的目標(biāo)函數(shù)為:
步驟5:利用詞匯語義相似度sim(c1i,c1i+1)對上述得到的特征詞匯集合進行降維處理,需先計算概念間的相似度sim(g1,g2),其具體計算過程如下:
利用《知網(wǎng)》數(shù)據(jù)庫,假設(shè)特征詞匯(c_1i,c_(1i+1))對應(yīng)的概念集合分別為對此概念進行兩兩比較,找到相似度最大的兩概念,即為特征詞匯(c1i,c1i+1)間的相似度sim(c1i,c1i+1)。
步驟5.1)基于信息論的方法計算概念間的相似度sim(g1,g2)
基于信息內(nèi)容的計算相似度方法主要是通過衡量概念所包含的信息量來計算相似度。概念是對其祖先節(jié)點的繼承,是祖先節(jié)點的又一次細化,所以可通過祖先節(jié)點包含的信息量來衡量兩個概念的共享信息。
求解其共同父節(jié)點在樹狀層次結(jié)構(gòu)中的信息量值I(pr)
根據(jù)圖2,得出兩本體概念(g1,g2)共同父節(jié)點在樹狀層次結(jié)構(gòu)中每層出現(xiàn)的概率值p(pr)
p(pr)=(p1(pr),p2(pr),…,pk(pr))
上式k為兩本體概念(g1,g2)共同父節(jié)點在樹狀層次結(jié)構(gòu)中的層數(shù)。
E[p(pr)]為兩本體概念(g1,g2)共同父節(jié)點在樹狀層次結(jié)構(gòu)中的概率均值。
分別求解兩本體概念(g1,g2)在樹狀層次結(jié)構(gòu)中的信息量值I(g1)、I(g2),其具體求解過程如下:
求解兩本體概念的在樹狀層次結(jié)構(gòu)中的信息量值I(g1)、I(g2)
同理,根據(jù)圖2,得出兩本體概念(g1,g2)在樹狀層次結(jié)構(gòu)中每層的概率值p(g1)、p(g2)
p(g1)=(p1(g1),p2(g1),...,pi(g1))
P(g2)=(p1(g2),p2(g2),…,pj(g2))
上式i為本體概念g1在樹狀層次結(jié)構(gòu)中的層數(shù),同理,j為本體概念g2在樹狀層次結(jié)構(gòu)中的層數(shù)。
上式E[p(g1)]、E[p(g2)]分別為兩本體概念(g1,g2)在樹狀層次結(jié)構(gòu)中的概率均值。
由此可得兩本體概念的在樹狀層次結(jié)構(gòu)中的信息量值I(g1)、I(g2)
基于信息量,可以得出兩本體概念間的語義相似度sim(g1,g2),其具體計算過程如下:
兩本體概念(g1,g2)的共同父節(jié)點包含的信息量僅僅只能表示兩概念包含的相同信息。根據(jù)經(jīng)驗可得兩本體概念(g1,g2)間的語義相似度sim(g1,g2)。
步驟5.2)根據(jù)步驟5.1可以得出概念相似度矩陣,如下:
即
對特征詞匯集合進行降維處理,有下式
sim(c1i,c1i+1)≥α
當(dāng)特征詞匯兩兩間相似度滿足設(shè)定好的閾值α,則合并為一詞,即相似度最大的兩詞匯之一,其權(quán)重值需重新分配,即為:
同理,即可得文本2中特征詞匯集合的降維向量。
步驟:6:根據(jù)皮爾森相關(guān)系數(shù)求解待比較文本(W1,W2)間的文本相似度sim(W1,W2)。
根據(jù)步驟4計算得出的特征詞匯權(quán)重值,相關(guān)領(lǐng)域?qū)<疫x取前m位關(guān)鍵詞,這里m<20,既分別有文本(W1,W2)對應(yīng)的特征詞向量。
文本W(wǎng)1對應(yīng)的特征詞的平均權(quán)重函數(shù)為
同理,文本W(wǎng)2對應(yīng)特征詞的平均權(quán)重函數(shù)為
根據(jù)皮爾森相關(guān)系數(shù),即可得文本(W1,W2)間的文本相似度sim(W1,W2),有下式:
改進的基于語義分析的文本相似度求解算法,其偽代碼計算過程:
輸入:待比較文本(W1,W2)。
輸出:文本(W1,W2)間的相似度sim(W1,W2)。