相似性確定方法、裝置及終端的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開涉及自然語言處理領(lǐng)域,特別涉及一種相似性確定方法、裝置及終端。
【背景技術(shù)】
[0002]在自然語言處理領(lǐng)域,字符串之間的相似性確定方法是一個(gè)基本問題,其可以被應(yīng)用于很多場景,如文本聚類、信息檢索等。因此,如何確定字符串之間的相似性,受到研究人員的廣泛關(guān)注。
[0003]相關(guān)技術(shù)在確定字符串之間的相似性時(shí),可以通過計(jì)算兩個(gè)之間的編輯距離來實(shí)現(xiàn)。具體地,可以分別將這兩個(gè)字符串分詞為各個(gè)字符;然后,通過對一個(gè)字符串中的字符進(jìn)行刪除操作、插入操作或替換操作,從而將一個(gè)字符串變換為另一個(gè)字符串;接下來,計(jì)算由一個(gè)字符串變換為另一個(gè)字符串需要的最小操作次數(shù),將該最小操作次數(shù)作為這兩個(gè)字符串之間的編輯距離;最后,根據(jù)編輯距離計(jì)算這兩個(gè)字符串之間的相似性。
【發(fā)明內(nèi)容】
[0004]本公開提供一種相似性確定方法、裝置及終端。
[0005]根據(jù)本公開實(shí)施例的第一方面,提供一種相似性確定方法,所述方法包括:
[0006]分別對第一字符串和第二字符串進(jìn)行分詞,得到第一序列和第二序列,所述第一序列和所述第二序列分別包括至少一個(gè)詞;
[0007]根據(jù)預(yù)先定義的編輯距離算法及所述第一序列和所述第二序列,確定所述第一字符串和所述第二字符串之間的編輯距尚;
[0008]根據(jù)所述編輯距離及由所述第一序列向所述第二序列變換所做的各操作的信息,確定所述第一字符串與所述第二字符串之間的相似性。
[0009]根據(jù)本公開的第二方面,提供一種相似性確定裝置,所述裝置包括:
[0010]分詞模塊,用于分別對第一字符串和第二字符串進(jìn)行分詞,得到第一序列和第二序列,所述第一序列和所述第二序列分別包括至少一個(gè)詞;
[0011]第一確定模塊,用于根據(jù)預(yù)先定義的編輯距離算法及所述第一序列和所述第二序列,確定所述第一字符串和所述第二字符串之間的編輯距離;
[0012]第二確定模塊,用于根據(jù)所述編輯距離及由所述第一序列向所述第二序列變換所做的各操作的信息,確定所述第一字符串與所述第二字符串之間的相似性。
[0013]根據(jù)本公開的第三方面,提供一種終端,所述終端包括:
[0014]處理器;
[0015]用于存儲處理器可執(zhí)行指令的存儲器;
[0016]其中,所述處理器被配置為:
[0017]分別對第一字符串和第二字符串進(jìn)行分詞,得到第一序列和第二序列,所述第一序列和所述第二序列分別包括至少一個(gè)詞;
[0018]根據(jù)預(yù)先定義的編輯距離算法及所述第一序列和所述第二序列,確定所述第一字符串和所述第二字符串之間的編輯距1? ;
[0019]根據(jù)所述編輯距離及由所述第一序列向所述第二序列變換所做的各操作的信息,確定所述第一字符串與所述第二字符串之間的相似性。
[0020]本公開的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
[0021]通過分別將第一字符串和第二字符串分詞為第一序列和第二序列,使得在確定由第一字符串變換為第二字符串時(shí)的編輯距離時(shí),是基于第一序列及第二序列中的各個(gè)詞實(shí)現(xiàn)的,而并非基于第一字符串和第二字符串中的各個(gè)字符實(shí)現(xiàn)的,而字符串中的各個(gè)詞可能包括至少一個(gè)字符,從而使得根據(jù)編輯距離確定的相似性結(jié)合了字符串中各個(gè)字符之間的相關(guān)性,使得確定的相似性更加準(zhǔn)確。
[0022]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
【附圖說明】
[0023]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說明書一起用于解釋本發(fā)明的原理。
[0024]圖1是根據(jù)一示例性實(shí)施例示出的一種相似性確定方法的流程圖。
[0025]圖2是根據(jù)一示例性實(shí)施例示出的一種相似性確定方法的流程圖。
[0026]圖3是根據(jù)一示例性實(shí)施例示出的一種相似性確定裝置的框圖。
[0027]圖4是根據(jù)一示例性實(shí)施例示出的一種第二確定模塊的框圖。
[0028]圖5是根據(jù)一示例性實(shí)施例示出的一種第二確定單元的框圖。
[0029]圖6是根據(jù)一示例性實(shí)施例示出的一種第二確定單元的框圖。
[0030]圖7是根據(jù)一示例性實(shí)施例示出的一種相似性確定裝置的框圖。
[0031 ]圖8是根據(jù)一示例性實(shí)施例示出的一種相似性確定裝置的框圖。
[0032]圖9是根據(jù)一示例性實(shí)施例示出的一種相似性確定裝置的框圖。
[0033]圖10是根據(jù)一示例性實(shí)施例示出的一種終端的框圖。
[0034]圖11是根據(jù)一示例性實(shí)施例示出的一種服務(wù)器的框圖。
【具體實(shí)施方式】
[0035]這里將詳細(xì)地對示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0036]在自然語言處理領(lǐng)域,字符串之間的相似性確定方法是一個(gè)基本問題,其可以被應(yīng)用于很多場景,如文本聚類、信息檢索等。為了使得確定的兩個(gè)字符串之間的相似性更加準(zhǔn)確,本公開實(shí)施例提供了一種相似性確定方法。圖1是根據(jù)一示例性實(shí)施例示出的一種相似性確定方法的流程圖,本公開實(shí)施例提供的相似性確定方法可以用于終端中。如圖1所示,本公開實(shí)施例提供的相似性確定方法包括以下步驟。
[0037]在步驟S101中,分別對第一字符串和第二字符串進(jìn)行分詞,得到第一序列和第二序列,其中,第一序列和第二序列分別包括至少一個(gè)詞。
[0038]在步驟S102中,根據(jù)預(yù)先定義的編輯距離算法及第一序列和第二序列,確定第一字符串和第二字符串之間的編輯距離。
[0039]在步驟S103中,根據(jù)編輯距離及由第一序列向第二序列變換所做的各操作的信息,確定第一字符串與第二字符串之間的相似性。
[0040]本公開實(shí)施例提供的方法,通過分別將第一字符串和第二字符串分詞為第一序列和第二序列,使得在確定由第一字符串變換為第二字符串時(shí)的編輯距離時(shí),是基于第一序列及第二序列中的各個(gè)詞實(shí)現(xiàn),而并非基于第一字符串和第二字符串中的各個(gè)字符實(shí)現(xiàn)的,而字符串中的各個(gè)詞可能包括至少一個(gè)字符,從而使得根據(jù)編輯距離確定的相似性結(jié)合了字符串中各個(gè)字符之間的相關(guān)性,使得確定的相似性更加準(zhǔn)確。
[0041]在另一個(gè)實(shí)施例中,根據(jù)編輯距離及由第一序列向第二序列變換所做的各操作的信息,確定第一字符串與第二字符串之間的相似性,包括:
[0042]獲取由第一序列向第二序列變換時(shí)所進(jìn)行的各操作信息中的替換操作信息;
[0043]根據(jù)各替換操作信息確定配對數(shù),其中,配對數(shù)是指同時(shí)存在于第一序列和第二序列中的兩個(gè)詞的個(gè)數(shù);
[0044]根據(jù)編輯距離、配對數(shù)及各操作的操作代價(jià)、第一序列中的詞個(gè)數(shù)、第二序列中的詞個(gè)數(shù),確定第一字符串與第二字符串之間的相似性。
[0045]在另一個(gè)實(shí)施例中,根據(jù)編輯距離、配對數(shù)及各操作的操作代價(jià)、第一序列中的詞個(gè)數(shù)、第二序列中的詞個(gè)數(shù),確定第一字符串與第二字符串之間的相似性,各操作包括替換操作、交換操作,包括:
[0046]根據(jù)編輯距離、配對數(shù)及替換操作的操作代價(jià)、交換操作的操作代價(jià),確定第一字符串與第二字符串之間的最小語義編輯距離;
[0047]對最小語義編輯距離進(jìn)行歸一化,得到歸一化結(jié)果;
[0048]根據(jù)歸一化結(jié)果確定第一字符串與第二字符串之間的相似性。
[0049]在另一個(gè)實(shí)施例中,根據(jù)編輯距離、配對數(shù)及各操作的操作代價(jià)、第一序列中的詞個(gè)數(shù)、第二序列中的詞個(gè)數(shù),確定第一字符串與第二字符串之間的相似性,各操作包括替換操作、交換操作、插入操作、刪除操作中的至少其中之一,包括:
[0050]根據(jù)編輯距離、配對數(shù)及替換操作的操作代價(jià)、交換操作的操作代價(jià),確定第一字符串與第二字符串之間的第一語義編輯距離;
[0051]根據(jù)插入操作的操作代價(jià)和刪除操作的操作代價(jià)中的一個(gè)、替換操作的操作代價(jià)及第一序列中的詞個(gè)數(shù)、第二序列中的詞個(gè)數(shù),確定第一字符串與第二字符串之間的第二語義編輯距離;
[0052]根據(jù)第一語義編輯距離和第二語義編輯距離,確定第一字符串與第二字符串之間的相似性。
[0053]在另一個(gè)實(shí)施例中,方法還包括:
[0054]根據(jù)替換操作與交換操作之間的關(guān)系,確定替換操作的操作代價(jià)及交換操作的操作代價(jià);
[0055]根據(jù)替換操作與插入操作及刪除操作之間的關(guān)系,確定插入操作的操作代價(jià)、刪除操作的操作代價(jià)及替換操作的操作代價(jià)。
[0056]在另一個(gè)實(shí)施例中,方法還包括:
[0057]根據(jù)替換操作與交換操作之間的關(guān)系,確定2*替換操作的操作代價(jià)〉交換操作的操作代價(jià);
[0058]根據(jù)替換操作與插入操作及刪除操作之間的關(guān)系,確定插入操作的操作代價(jià)+刪除操作的操作代價(jià)〉替換操作的操作代價(jià)。
[0059]在另一個(gè)實(shí)施例中,方法還包括:
[0060]根據(jù)插入操作與刪除操作之間的關(guān)系,確定插入操作的操作代價(jià)等于刪除操作的操作代價(jià)。
[0061]在另一個(gè)實(shí)施例中,根據(jù)預(yù)先定義的編輯距離算法及第一序列和第二序列,確定第一字符串和第二字符串之間的編輯距離,包括:
[0062]根據(jù)預(yù)先定義的編輯距離算法及第一序列和第二序列,通過如下公式一確定第一字符串和第二字符串之間的編輯距離:
[0063]公式一:
[0064]minCost[i, j]=min(
[0065]minCost[1-1,j]+cost(S),
[0066]minCost[i,j-1]+cost(C),
[0067]minCost[1-1,j_l]+cost(T))
[0068]公式一中,i表示第一序列中的第i個(gè)詞;j表示第二序列中的第j個(gè)詞;cost(S)為刪除操作的操作代價(jià),cost(C)為插入操作的操作代價(jià),cost(T)為替換操作的操作代價(jià)。
[0069]在另一個(gè)實(shí)施例中,根據(jù)編輯距離、配對數(shù)及替換操作的操作代價(jià)、交換操作的操作代價(jià),確定第一字符串與第二字符串之間的最小語義編輯距離,包括:
[0070]根據(jù)編輯距離、配對數(shù)及替換操作的操作代價(jià)、交換操作的操作代價(jià),通過如下公式二確定第一字符串與第二字符串之間的最小語義編輯距離:
[0071 ]公式二: minCost (SI, S2) =d-p(2cost(T)_cost( J));
[0072]公式二中,S1和S2