本發(fā)明實施例涉及計算機的技術(shù)領(lǐng)域,尤其涉及一種計算字符串間相似度的方法及裝置。
背景技術(shù):
對于中文字符串相似度的計算方法,一般采用英文的字符串相似度計算方法,就是計算兩個字符串中相同字符的個數(shù)。采用的方法有:Levenshtein方法即編輯距離計算方法、Jaccard系數(shù)計算方法、余弦相似度計算方法、以及Ngram計算方法。
編輯距離計算方法,是計算兩個字符串之間通過將一個字符替換成另一個字符,插入一個字符,刪除一個字符的編輯操作,所需最小的編輯次數(shù),衡量兩個字符串的相似度。編輯距離計算方法的缺點是:不同的語法表示形式,對編輯距離的計算影響較大,計算兩個字符串相似度誤差較大。
Jaccard系數(shù)計算方法,是首先對兩個字符串依據(jù)一定的規(guī)則拆分為多個子串,計算多個子串的交集與并集的比值,衡量兩個字符串的相似度。Jaccard系數(shù)計算方法的缺點是:因字符串的切分方法不同,計算字符串的相似度誤差較大。
余弦相似度計算方法,首先對兩個字符串依據(jù)一定的規(guī)則拆分為多個子串,形成一個子串集合,再依據(jù)子串集合將兩個句子轉(zhuǎn)化為向量,計算兩個向量間的余弦值,衡量兩個字符串的相似度。余弦相似度計算方法的缺點是:因字符串的切分方法不同,計算字符串的相似度誤差較大。
Ngram計算方法,是將兩個字符串拆分為N元組,計算兩個字符串中相同的N元組,衡量兩個字符串的相似度。Ngram計算方法的缺點是:元組的先后順序會影響相似度的計算,計算字符串相似度誤差較大。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提出一種計算字符串間相似度的方法及裝置,旨在解決如何提高中文字符串相似度計算的準確率。
為達此目的,本發(fā)明實施例采用以下技術(shù)方案:
第一方面,一種計算字符串間相似度的方法,所述方法包括:
獲取至少兩個字符串的核心詞匯的權(quán)重;
獲取所述至少兩個字符串的最大公共序列,并根據(jù)所述最大公共序列的長度和詞匯確定所述最大公共序列的權(quán)重;
根據(jù)預(yù)設(shè)常用詞匯的權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重;
根據(jù)所述核心詞匯的權(quán)重、所述最大公共序列的權(quán)重和所述常用詞匯的權(quán)重獲取所述至少兩個字符串的相似度。
優(yōu)選地,所述獲取至少兩個字符串的核心詞匯的權(quán)重,包括:
根據(jù)分詞結(jié)果的詞性以及詞匯間的語義關(guān)系,獲取至少兩個字符串的詞匯序列中的核心詞匯,所述核心詞匯包括主語人名、機構(gòu)名、名詞賓語、動詞和地名;
根據(jù)預(yù)設(shè)核心詞匯權(quán)重表獲取所述核心詞匯的權(quán)重。
優(yōu)選地,所述獲取所述至少兩個字符串的最大公共序列,包括:
獲取所述至少兩個字符串的分詞結(jié)果序列,去除所述分詞結(jié)果序列中的標點符號,合并所述分詞結(jié)果序列中相同的子序列,得到所述至少兩個字符串的最大公共序列。
優(yōu)選地,所述根據(jù)預(yù)設(shè)常用詞匯的權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重,包括:
根據(jù)常用詞匯TF-IDF權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重。
優(yōu)選地,所述根據(jù)所述核心詞匯的權(quán)重、所述最大公共序列的權(quán)重和所述常用詞匯的權(quán)重獲取所述至少兩個字符串的相似度,包括:
所述至少兩個字符串的相似度為
其中,所述w1為所述核心詞匯權(quán)重,所述w2為所述最大公共序列的權(quán)重,所述w3為常用詞匯的權(quán)重,所述L為所述至少兩個字符串的最大長度。
第二方面,一種計算字符串間相似度的裝置,所述裝置包括:
第一獲取模塊,用于獲取至少兩個字符串的核心詞匯的權(quán)重;
第二獲取模塊,用于獲取所述至少兩個字符串的最大公共序列,并根據(jù)所述最大公共序列的長度和詞匯確定所述最大公共序列的權(quán)重;
第三獲取模塊,用于根據(jù)預(yù)設(shè)常用詞匯的權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重;
第四獲取模塊,用于根據(jù)所述核心詞匯的權(quán)重、所述最大公共序列的權(quán)重和所述常用詞匯的權(quán)重獲取所述至少兩個字符串的相似度。
優(yōu)選地,所述第一獲取模塊,具體用于:
根據(jù)分詞結(jié)果的詞性以及詞匯間的語義關(guān)系,獲取至少兩個字符串的詞匯序列中的核心詞匯,所述核心詞匯包括主語人名、機構(gòu)名、名詞賓語、動詞和地名;
根據(jù)預(yù)設(shè)核心詞匯權(quán)重表獲取所述核心詞匯的權(quán)重。
優(yōu)選地,所述第二獲取模塊,具體用于:
獲取所述至少兩個字符串的分詞結(jié)果序列,去除所述分詞結(jié)果序列中的標點符號,合并所述分詞結(jié)果序列中相同的子序列,得到所述至少兩個字符串的最大公共序列。
優(yōu)選地,所述第三獲取模塊,具體用于:
根據(jù)常用詞匯TF-IDF權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重。
優(yōu)選地,所述第四獲取模塊,具體用于:
所述至少兩個字符串的相似度為
其中,所述w1為所述核心詞匯權(quán)重,所述w2為所述最大公共序列的權(quán)重,所述w3為常用詞匯的權(quán)重,所述L為所述至少兩個字符串的最大長度。
本發(fā)明實施例提供的一種計算字符串間相似度的方法及裝置,獲取至少兩個字符串的核心詞匯的權(quán)重;獲取所述至少兩個字符串的最大公共序列,并根據(jù)所述最大公共序列的長度和詞匯確定所述最大公共序列的權(quán)重;根據(jù)預(yù)設(shè)常用詞匯的權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重;根據(jù)所述核心詞匯的權(quán)重、所述最大公共序列的權(quán)重和所述常用詞匯的權(quán)重獲取所述至少兩個字符串的相似度。本發(fā)明加入了句子結(jié)構(gòu)的分析,可以提高字符串相似度計算的準確度;另外,本發(fā)明還加入了詞匯權(quán)重信息,作為字符串相似度計算的調(diào)和值,由于分詞工具的準確率,分詞結(jié)果會產(chǎn)生一些誤差,句子結(jié)構(gòu)分析也會有一定的誤差,經(jīng)過詞頻權(quán)重調(diào)和后,計算結(jié)果更加準確。
附圖說明
圖1是本發(fā)明實施例提供的一種計算字符串間相似度的方法的流程示意圖;
圖2是本發(fā)明實施例提供的一種分詞結(jié)果的示意圖;
圖3是本發(fā)明實施例提供的一種計算字符串間相似度的裝置的功能模塊示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明實施例作進一步的詳細說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明實施例,而非對本發(fā)明實施例的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明實施例相關(guān)的部分而非全部結(jié)構(gòu)。
參考圖1,圖1是本發(fā)明實施例提供的一種計算字符串間相似度的方法的流程示意圖。
如圖1所示,所述計算字符串間相似度的方法包括:
步驟101,獲取至少兩個字符串的核心詞匯的權(quán)重;
優(yōu)選地,所述獲取至少兩個字符串的核心詞匯的權(quán)重,包括:
根據(jù)分詞結(jié)果的詞性以及詞匯間的語義關(guān)系,獲取至少兩個字符串的詞匯序列中的核心詞匯,所述核心詞匯包括主語人名、機構(gòu)名、名詞賓語、動詞和地名;
根據(jù)預(yù)設(shè)核心詞匯權(quán)重表獲取所述核心詞匯的權(quán)重。
具體的,輸入中文字符串s1,s2依據(jù)分詞工具實現(xiàn)字符串分詞,詞性分詞以及依存語法分析。得到如圖2所示分詞結(jié)果。分析分詞結(jié)果中人名、地名、機構(gòu)名等信息。依據(jù)詞匯的詞性以及不同詞性權(quán)重信息表對詞匯賦值。
步驟102,獲取所述至少兩個字符串的最大公共序列,并根據(jù)所述最大公共序列的長度和詞匯確定所述最大公共序列的權(quán)重;
優(yōu)選地,所述獲取所述至少兩個字符串的最大公共序列,包括:
獲取所述至少兩個字符串的分詞結(jié)果序列,去除所述分詞結(jié)果序列中的標點符號,合并所述分詞結(jié)果序列中相同的子序列,得到所述至少兩個字符串的最大公共序列。
具體的,兩個中文字符串的最大公共子串越長,說明兩個字符串越相似。依據(jù)分詞結(jié)果序列,去除結(jié)果中的標點符號,詞匯拼接得到最大公共子串。
步驟103,根據(jù)預(yù)設(shè)常用詞匯的權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重;
優(yōu)選地,所述根據(jù)預(yù)設(shè)常用詞匯的權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重,包括:
根據(jù)常用詞匯TF-IDF權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重。
具體的,常用詞匯TF-IDF(term frequency–inverse document frequency)權(quán)重表。不同詞匯對字符串相似度有不同的影響,常用的詞匯例如,“的”,“年、月、日”,“現(xiàn)在”等。依據(jù)詞匯TF-IDF權(quán)重信息表,可以給不同的詞匯賦予不同的權(quán)重值。
步驟104,根據(jù)所述核心詞匯的權(quán)重、所述最大公共序列的權(quán)重和所述常用詞匯的權(quán)重獲取所述至少兩個字符串的相似度。
優(yōu)選地,所述根據(jù)所述核心詞匯的權(quán)重、所述最大公共序列的權(quán)重和所述常用詞匯的權(quán)重獲取所述至少兩個字符串的相似度,包括:
所述至少兩個字符串的相似度為
其中,所述w1為所述核心詞匯權(quán)重,所述w2為所述最大公共序列的權(quán)重,所述w3為常用詞匯的權(quán)重,所述L為所述至少兩個字符串的最大長度。
本發(fā)明實施例提供的一種計算字符串間相似度的方法,獲取至少兩個字符串的核心詞匯的權(quán)重;獲取所述至少兩個字符串的最大公共序列,并根據(jù)所述最大公共序列的長度和詞匯確定所述最大公共序列的權(quán)重;根據(jù)預(yù)設(shè)常用詞匯的權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重;根據(jù)所述核心詞匯的權(quán)重、所述最大公共序列的權(quán)重和所述常用詞匯的權(quán)重獲取所述至少兩個字符串的相似度。本發(fā)明加入了句子結(jié)構(gòu)的分析,可以提高字符串相似度計算的準確度;另外,本發(fā)明還加入了詞匯權(quán)重信息,作為字符串相似度計算的調(diào)和值,由于分詞工具的準確率,分詞結(jié)果會產(chǎn)生一些誤差,句子結(jié)構(gòu)分析也會有一定的誤差,經(jīng)過詞頻權(quán)重調(diào)和后,計算結(jié)果更加準確。
參考圖3,圖3是本發(fā)明實施例提供的一種計算字符串間相似度的裝置的功能模塊示意圖。
如圖3所示,所述裝置包括:
第一獲取模塊301,用于獲取至少兩個字符串的核心詞匯的權(quán)重;
優(yōu)選地,所述第一獲取模塊301,具體用于:
根據(jù)分詞結(jié)果的詞性以及詞匯間的語義關(guān)系,獲取至少兩個字符串的詞匯序列中的核心詞匯,所述核心詞匯包括主語人名、機構(gòu)名、名詞賓語、動詞和地名;
根據(jù)預(yù)設(shè)核心詞匯權(quán)重表獲取所述核心詞匯的權(quán)重。
第二獲取模塊302,用于獲取所述至少兩個字符串的最大公共序列,并根據(jù)所述最大公共序列的長度和詞匯確定所述最大公共序列的權(quán)重;
優(yōu)選地,所述第二獲取模塊302,具體用于:
獲取所述至少兩個字符串的分詞結(jié)果序列,去除所述分詞結(jié)果序列中的標點符號,合并所述分詞結(jié)果序列中相同的子序列,得到所述至少兩個字符串的最大公共序列。
第三獲取模塊303,用于根據(jù)預(yù)設(shè)常用詞匯的權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重;
優(yōu)選地,所述第三獲取模塊303,具體用于:
根據(jù)常用詞匯TF-IDF權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重。
第四獲取模塊304,用于根據(jù)所述核心詞匯的權(quán)重、所述最大公共序列的權(quán)重和所述常用詞匯的權(quán)重獲取所述至少兩個字符串的相似度。
優(yōu)選地,所述第四獲取模塊304,具體用于:
所述至少兩個字符串的相似度為
其中,所述w1為所述核心詞匯權(quán)重,所述w2為所述最大公共序列的權(quán)重,所述w3為常用詞匯的權(quán)重,所述L為所述至少兩個字符串的最大長度。
本發(fā)明實施例提供的一種計算字符串間相似度的裝置,獲取至少兩個字符串的核心詞匯的權(quán)重;獲取所述至少兩個字符串的最大公共序列,并根據(jù)所述最大公共序列的長度和詞匯確定所述最大公共序列的權(quán)重;根據(jù)預(yù)設(shè)常用詞匯的權(quán)重表獲取所述至少兩個字符串中的常用詞匯的權(quán)重;根據(jù)所述核心詞匯的權(quán)重、所述最大公共序列的權(quán)重和所述常用詞匯的權(quán)重獲取所述至少兩個字符串的相似度。本發(fā)明加入了句子結(jié)構(gòu)的分析,可以提高字符串相似度計算的準確度;另外,本發(fā)明還加入了詞匯權(quán)重信息,作為字符串相似度計算的調(diào)和值,由于分詞工具的準確率,分詞結(jié)果會產(chǎn)生一些誤差,句子結(jié)構(gòu)分析也會有一定的誤差,經(jīng)過詞頻權(quán)重調(diào)和后,計算結(jié)果更加準確。
以上結(jié)合具體實施例描述了本發(fā)明實施例的技術(shù)原理。這些描述只是為了解釋本發(fā)明實施例的原理,而不能以任何方式解釋為對本發(fā)明實施例保護范圍的限制。基于此處的解釋,本領(lǐng)域的技術(shù)人員不需要付出創(chuàng)造性的勞動即可聯(lián)想到本發(fā)明實施例的其它具體實施方式,這些方式都將落入本發(fā)明實施例的保護范圍之內(nèi)。