句子相似度計算方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及自然語言處理技術(shù)領(lǐng)域,尤其涉及一種句子相似度計算方法及裝置。
【背景技術(shù)】
[0002] 句子相似度計算是自然語言處理的一項重要研究內(nèi)容,近年來在信息檢索、機器 翻譯、問答系統(tǒng)、自動文摘等應(yīng)用領(lǐng)域中的作用越來越重要。
[0003] 傳統(tǒng)方法多通過余弦相似性(cosine simiIiarity)來衡量兩個句子的相似程度。 具體過程為:先將需要比較相似度的兩個句子分別轉(zhuǎn)換為句向量表示,然后計算兩個句向 量的夾角的余弦值,。計算結(jié)果數(shù)值是〇到1之間,數(shù)值越大說明兩個句子越相似。更多詳 情可以參考維基百科 https: //en. wikipedia. org/wiki/Cosine similarity〇 該方法簡便 易行,但是不夠準(zhǔn)確。
[0004] 例如:需要比較"是高清吧"和"這是高清的嗎"這兩個句子的相似度。切詞后的兩 個句子分別是"是/高清/吧"和"這是/高清/的/嗎"。假設(shè)詞的權(quán)重值都是1,各詞對 應(yīng)的向量維度下標(biāo)為:是_>維度下標(biāo)1,高清_>維度下標(biāo)2,吧_>維度下標(biāo)3,這是_>維度 下標(biāo)4,的-> 維度下標(biāo)5,嗎-> 維度下標(biāo)6,則兩個句子分別對應(yīng)的句向量是[1,1,1,0, 0, 0] 和[0, 1,0, 1,1,1]。計算這兩個句向量的夾角的余弦值:
[0005]
[0006] 上述方法計算出來的余弦值很小、句子相似度不高,然而人工判斷兩個句子實際 上非常相似,由此可見上述方法存在準(zhǔn)確度低的缺陷。
【發(fā)明內(nèi)容】
[0007] 有鑒于此,本發(fā)明旨在克服現(xiàn)有技術(shù)的準(zhǔn)確度低的缺陷,提供一種準(zhǔn)確度高的句 子相似度計算方法及裝置。
[0008] 為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種句子相似度計算方法,包 括:步驟Sl :針對第一句子和第二句子確定重復(fù)詞、第一孤存詞和第二孤存詞,其中,所述 重復(fù)詞既屬于所述第一句子又屬于所述第二句子,所述第一孤存詞僅屬于所述第一句子, 所述第二孤存詞僅屬于所述第二句子;步驟S2 :根據(jù)所有第一孤存詞和所有第二孤存詞, 計算孤存詞相似度總貢獻值G,&,其中,G,&彡0,并且所有所述第一孤存詞與所有所怵笛一.孤 存詞之間的相似程度越高,所述G,&數(shù)值越大;步驟S3 :根據(jù)公式 計 算S頂(A,B),其中S頂(A,B)表示所述第一句子和第二句子的句子相似度,靈表示所述第一 句子對應(yīng)的第一句向量,百表示所述第二句子對應(yīng)的第二句向量。
[0009] 可選地,所述步驟S2包括:
[0010] 步驟S21 :將所有所述第一孤存詞在所有所述第二孤存詞進行語義匹配,以得到 匹配孤存詞對以及所述匹配孤存詞對的相似度貢獻值G ;
[0011] 步驟S22 :將所有的所述匹配孤存詞對的相似度貢獻值G求和,得到所述孤存詞相 似度總貢獻值G,&。
[0012] 可選地,所述為步驟S21包括:步驟S211 :確定當(dāng)前所有所述第一孤存詞 和所有第二孤存詞的并集集合中的詞權(quán)重最大詞X ;步驟S 212 :根據(jù)公式G (X)= max {WxXWYiX similarity (X,Yi) I Yi e 集合 U}計算 G(X),其中 G(X)表示針對詞語 X 進行 語義配對得到的匹配孤存詞對的相似度貢獻值,所述集合U在所述X是第一孤存詞的情況 下表示當(dāng)前所有所述第二孤存詞構(gòu)成的集合,所述集合U在所述X是第二孤存詞的情況下 表示當(dāng)前所有所述第一孤存詞構(gòu)成的集合,Yi表示所述集合U中的元素,1 :!表示詞語X的 詞權(quán)重,Wyi表示詞語Yi的詞權(quán)重,similarity (X,Yi)表示X與Yi的詞義相似度且取值范 圍為[0, 1];步驟S213 :判斷G (X)是否大于0,如果G(X) >0,則確認(rèn)X和所述G (X)對應(yīng)的 Yi兩個詞成功地匹配為孤存詞對,記錄該孤存詞對相似度貢獻度G = G (X),并且將該孤存 詞對從所述并集集合中刪除,如果G(X) = 0,將所述X從所述并集集合中刪除;步驟S214 : 判斷所述并集集合是否為空集,如果否,跳至步驟S211。
[0013] 可選地,所述詞權(quán)重采用詞頻-逆文檔頻率。
[0014] 為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種句子相似度計算裝置,包 括:確定模塊,用于針對第一句子和第二句子確定重復(fù)詞、第一孤存詞和第二孤存詞,其中, 所述重復(fù)詞既屬于所述第一句子又屬于所述第二句子,所述第一孤存詞僅屬于所述第一句 子,所述第二孤存詞僅屬于所述第二句子;第一計算模塊,根據(jù)所有第一孤存詞和所有第 二孤存詞,計算孤存詞相似度總貢獻值G, &,其中,G,&多0,并且所有所述第一孤存詞與所 有所述第二孤存詞之間的相似程度越高,所述G, &數(shù)值越大;第二計算模塊,用于根據(jù)公式
=計算S頂(A,B),其中S頂(A,B)表示所述第一句子和第二句子的句 子相似度,1表示所述第一句子對應(yīng)的第一句向量,g表示所述第二句子對應(yīng)的第二句向 量。
[0015] 可選地,所述第一計算模塊還用于:將所有所述第一孤存詞在所有所述第二孤存 詞進行語義匹配,以得到匹配孤存詞對以及該匹配孤存詞對的相似度貢獻值G ;將所有的 所述匹配孤存詞對的相似度貢獻值G求和,得到所述孤存詞相似度總貢獻值G,&。
[0016] 可選地,所述第一計算模塊還用于:確定當(dāng)前所有所述第一孤存 詞和所有第二孤存詞的并集集合中的詞權(quán)重最大詞X ;根據(jù)公式G(X)= max {WxXWYiX similarity (X,Yi) I Yi e 集合 U}計算 G(X),其中 G(X)表示針對詞語 X 進行 語義配對得到的匹配孤存詞對的相似度貢獻值,所述集合U在所述X是第一孤存詞的情況 下表示當(dāng)前所有所述第二孤存詞構(gòu)成的集合,所述集合U在所述X是第二孤存詞的情況下 表示當(dāng)前所有所述第一孤存詞構(gòu)成的集合,Yi表示所述集合U中的元素,1 :!表示詞語X的 詞權(quán)重,Wyi表示詞語Yi的詞權(quán)重,similarity (X,Yi)表示X與Yi的詞義相似度且取值范 圍為[0,1];判斷G (X)是否大于0,如果G(X) >0,則確認(rèn)X和所述G (X)對應(yīng)的Yi兩個詞 成功地匹配為孤存詞對,記錄該孤存詞對相似度貢獻度G = G (X),并且將該孤存詞對從所 述并集集合中刪除,如果G (X) = 0,將所述X從所述并集集合中刪除;判斷所述并集集合是 否為空集,如果否,重復(fù)執(zhí)行以上處理。
[0017] 可選地,所述詞權(quán)重采用詞頻-逆文檔頻率。
[0018] 根據(jù)本發(fā)明的技術(shù)方案,在計算過程中考慮字面不相同、詞義近似的詞對句子相 似度的貢獻,這樣計算得到的相似度會更加準(zhǔn)確可靠。
【附圖說明】
[0019] 附圖用于更好地理解本發(fā)明,不構(gòu)成對本發(fā)明的不當(dāng)限定。其中:
[0020] 圖1是根據(jù)本發(fā)明實施例的句子相似度計算方法的主要步驟的示意圖。
[0021] 圖2是根據(jù)本發(fā)明實施例的句子相似度計算裝置的主要部件的示意圖。
【具體實施方式】
[0022] 以下結(jié)合附圖對本發(fā)明的示范性實施例做出說明,其中包括本發(fā)明實施例的各種 細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識 到,可以對這里描述的實施例做出各種改變和修改,而不會背離本發(fā)明的范圍和精神。同 樣,為了清楚和簡明,以下的描述中省略了對公知功能和結(jié)構(gòu)的描述。
[0023] 在傳統(tǒng)的余弦相似度計算句子相似度的技術(shù)方案中,"是高清吧"和"這是高清的 嗎"只有一個詞"高清"相同,其他詞都不相同。但是從語義角度來看"是"和"這是"、"吧" 和"嗎"意義比較接近,應(yīng)該在計算句子相似度時用上卻沒有用。針對于此,本發(fā)明旨在提 出一種計算句子相似度的方法及裝置,在計算過程中考慮字面不相同、詞義近似的詞對句 子相似度的貢獻,這樣計算得到的相似度會更加準(zhǔn)確可靠。
[0024] 圖1是根據(jù)本發(fā)明實施例的句子相似度計算方法的主要步驟的示意圖。如圖1所 示,該句子相似度計算方法,包括以下步驟Sl至步驟S3。
[0025] 步驟Sl :針對第一句子和第二句子確定重復(fù)詞、第一孤存詞和第二孤存詞。其中, 重復(fù)詞既屬于第一句子又屬于第二句子,第一孤存詞僅屬于第一句子,第二孤存詞僅屬于 第二句子。
[0026] 需要說明的是,第一句子和第二句子中不一定同時包含重復(fù)詞、第一孤存詞和第 二孤存詞這三者。重復(fù)詞的集合、第一孤存詞的集合以及第二孤存詞的集合都有可能是空 集。
[0027] 步驟S2 :根據(jù)所有第一孤存詞和所有第二孤存詞,計算孤存詞相似度總貢獻值G ,其中,0,并且所有第一孤存詞與所有第二孤存詞之間的相似程度越高,G,&數(shù)值越 大。
[0028] 可選地,步驟Sl可以具體包括如下的步驟S21和步驟S22(圖1中未示出)。
[0029] 步驟S21 :將所有第一孤存詞在所有第二孤存詞進行語義匹配,以得到匹配孤存 詞對以及該匹配孤存詞對的相似度貢獻值G。需要說明的是,通過進行匹配,最終有可能得 到一個或