一種面向用戶查詢意圖的漢語句子相似度分層計算方法及裝置制造方法
【專利摘要】本發明提供了一種面向用戶查詢意圖的漢語句子相似度分層計算方法及裝置,通過采用去除句末標點的編輯距離句子相似度算法對數據集進行相似度計算,確定一部分滿足閾值的句子為相似句子,再采用基于關鍵詞特征和語義特征的句子相似度算法,對數據集中的非相似句子進行相似度計算,從而再次確定一部分滿足閾值的句子為相似句子,最后采用面向用戶意圖的句子相似度算法,對數據集中的非相似句子進行句子相似度計算,確定一部分滿足閾值的句子為相似句子。至此,得到數據集中的所有相似句子。本發明計算簡潔,效果良好,可以有效解決關鍵詞差異大、長度長、句子結構復雜等問題。
【專利說明】—種面向用戶查詢意圖的漢語句子相似度分層計算方法及裝置
【技術領域】
[0001]本發明屬于漢語句子相似度計算【技術領域】,尤其涉及一種面向用戶查詢意圖的漢語句子相似度分層計算方法及裝置。
【背景技術】
[0002]相似度計算是自然語言處理領域的基礎工作,應用背景廣泛。根據處理對象的不同,可以分為詞相似度計算、句子相似度計算以及篇章相似度計算。其中句子相似度計算在信息檢索、機器翻譯、問答系統以及自動文摘等應用領域中的效能直接影響著應用系統的整體性能。因此,目前仍有眾多學者熱衷于不斷改進句子相似度的計算方法。
[0003]目前的句子相似度計算方法主要有基于編輯距離的句子相似度計算方法,基于本體詞典或知網語義的句子相似度計算方法,基于語義依存的句子相似度計算方法等等。
[0004]編輯距離,也稱Levenshtein distance,是常用的句子相似度計算方法之一。通過計算一個句子轉換成另一個句子的最小編輯操作數,來判定兩個句子是否相似。其中編輯操作包括“刪除”、“插入”和“替換”。若兩個句子的編輯距離越小,則兩個句子越相似。文獻1(車萬翔,劉挺,秦兵等.基于改進編輯距離的中文相似句子檢索[J].高級技術通訊,2004.7,14(7): 15-19)基于編輯距離思想,以及漢語中單個字往往不具備意義的特點,提出改進的編輯距離計算句子相似度算法,以詞為單位計算編輯距離,同時融入Hownet和《同義詞詞林》兩個語義資源。文獻2(呂學強,任飛亮,黃志丹等.句子相似模型和最相似句子查找算法[J].東北大學學報(自然科學版),2003.6,24(6):531-534)從詞形、詞序兩方面計算句子相似度,文獻3 (楊思春等.一種改進的句子相似度計算模型[J].電子科技大學學報,2006.12,35(6):956-959)在文獻2的基礎上對關鍵詞的抽取方法進行改進,考慮同義詞的情況,準確率有所提高。
[0005]文獻I提出的改進編輯距離計算句子相似度算法,雖然考慮了中文語言的特點,并融入語義信息,但是,由于目前中文分詞的效果并不理想,不同的語境下一個詞有時可以識別出來,有時卻不能,分詞的不準確勢必會帶來編輯距離結果的誤差。這勢必會影響計算相似度的準確率。文獻2和文獻3提出的句子相似度計算方法,雖然準確率有所提高,但是對于長度較長、結構較為復雜的句子效果仍不理想。
【發明內容】
[0006]本發明的目的在于提供一種面向用戶查詢意圖的漢語句子相似度分層計算方法及裝置,旨在克服中文分詞效果不理想的問題,同時解決對于關鍵詞差異大、長度長、句子結構復雜的句子計算相似度效果不理想的問題,通過分層計算的思想,提高相似度計算的準確性,提升本方案的實用價值。
[0007]本發明是這樣實現的,一種面向用戶查詢意圖的漢語句子相似度分層計算方法,包括以下步驟:
[0008]S1、采用去除句末標點的編輯距離句子相似度算法對數據集進行相似度計算,確定一部分滿足閾值的句子為相似句子;
[0009]S2、采用基于關鍵詞特征和語義特征的句子相似度算法,對數據集中的非相似句子進行相似度計算,從而再次確定一部分滿足閾值的句子為相似句子;
[0010]S3、采用面向用戶意圖的句子相似度算法,對數據集中的非相似句子進行句子相似度計算,確定一部分滿足閾值的句子為相似句子,至此得到數據集中的所有相似句子。
[0011]優選地,在步驟SI中,所述去除句末標點的編輯距離句子相似度算法具體包括:計算兩個句子的相似度時,忽略其句末的標點符號,將去除句末標點的句子按照基于字符的編輯距離句子相似度算法計算其句子的編輯距離,再根據設定的閾值判定相似句子。
[0012]優選地,在步驟S2中,所述基于關鍵詞特征和語義特征的句子相似度算法具體包括:采用關鍵詞特征,將句子轉換成關鍵詞列表形式,再兼顧同義詞特征、否定詞特征,總結分析經過對比消解后的剩余關鍵詞詞數與已標注的相似句子對之間呈現的規律,最后判定符合規律的句子是否句子相似。
[0013]優選地,在步驟S2中,所述剩余關鍵詞是指一個句子經過分詞、去除停用詞、修改錯別字、大寫字母轉換成小寫字母、中文數字轉換成阿拉伯數字、關鍵詞對比消減、同義詞對比消減和否定詞對比消減后余留的關鍵詞集合。
[0014]優選地,在步驟S2中,所述剩余關鍵詞詞數與已標注的相似句子對之間的關系具體包括以下規則:
[0015]規則1:經過剩余關鍵詞列表計算后,若用戶提問句子與問題集中某一句子的剩余關鍵詞詞數之和小于等于1,且剩余關鍵詞中不包含否定詞時,則用戶提問句子與問題集中的某一個句子是相似的;
[0016]規則2:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于0,問題集中某一句子的剩余關鍵詞詞數等于2,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的;
[0017]規則3:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于2,問題集中某一句子的剩余關鍵詞詞數等于0,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的;
[0018]規則4:經過剩余關鍵詞列表計算后,若用戶提問句子和問題集中某一句子的剩余關鍵詞中含有的否定詞為奇數時,則用戶提問句子與問題集中某一句子是不相似的。
[0019]優選地,在步驟S3中,所述面向用戶意圖的句子相似度算法具體包括:
[0020]根據標點符號切分用戶提問,利用用戶提問中的標點符號,將用戶提問轉換成用戶提問子句集;
[0021]對用戶提問子句集中每一個元素計算其與問題集中某問題的剩余列表,計算子句集中每一個元素與計算機存儲的問題集中問題的句子相似度;
[0022]使用子句集中元素與問題集中某個問題的最大相似度代替用戶提問與這個問題的句子相似度。
[0023]優選地,在步驟S3中,所述用戶提問子句集的構建方法具體包括:初始子句集為空,首先根據標點符號將用戶提問拆分成若干個子句,將這些子句并入子句集中;再將任意長度的連續的若干子句構成一個子句,并入子句集中;最后將用戶提問的整句并入子句集中,至此構建成一個完整的用戶提問子句集。
[0024]優選地,在步驟S3中,所述子句和問題集中問題的相似性的判斷具體為:
[0025]規則5:將用戶提問子句集中某一子句與問題集中某一問題進行剩余關鍵詞列表計算,若子句的剩余關鍵詞詞數等于0,問題的剩余關鍵詞詞數小于等于1,則用戶提問與問題集中該問題是相似的。
[0026]本發明進一步提供了一種面向用戶查詢意圖的漢語句子相似度分層計算裝置,包括:
[0027]—級相似度確定模塊,用于采用去除句末標點的編輯距離句子相似度算法對數據集進行相似度計算,確定一部分滿足閾值的句子為相似句子;
[0028]二級相似度確定模塊,用于采用基于關鍵詞特征和語義特征的句子相似度算法,對數據集中的非相似句子進行相似度計算,從而再次確定一部分滿足閾值的句子為相似句子;
[0029]三級相似度確定模塊,用于采用面向用戶意圖的句子相似度算法,對數據集中的非相似句子進行句子相似度計算,確定一部分滿足閾值的句子為相似句子,至此得到數據集中的所有相似句子;其中,
[0030]所述一級相似度確定模塊、二級相似度確定模塊以及三級相似度確定模塊依次連接。
[0031]優選地,所述一級相似度確定模塊包括一級算法模塊,用于計算兩個句子的相似度時,忽略其句末的標點符號,將去除句末標點的句子按照基于字符的編輯距離句子相似度算法計算其句子的編輯距離,再根據設定的閾值判定相似句子。
[0032]優選地,所述二級相似度確定模塊包括二級算法模塊,用于采用關鍵詞特征,將句子轉換成關鍵詞列表形式,再兼顧同義詞特征、否定詞特征,總結分析經過對比消解后的剩余關鍵詞詞數與已標注的相似句子對之間呈現的規律,最后判定符合規律的句子是否句子相似。
[0033]優選地,所述二級相似度確定模塊還包括剩余關鍵詞集合模塊,用于將一個句子經過分詞、去除停用詞、修改錯別字、大寫字母轉換成小寫字母、中文數字轉換成阿拉伯數字、關鍵詞對比消減、同義詞對比消減和否定詞對比消減后余留的關鍵詞集合;其中,
[0034]所述剩余關鍵詞集合模塊與二級算法模塊連接。
[0035]優選地,所述二級相似度確定模塊還包括用于對剩余關鍵詞詞數與已標注的相似句子對之間的關系設定具體規則的關系規則設定模塊,所述關系規則設定模塊設定規則具體包括:
[0036]規則1:用于經過剩余關鍵詞列表計算后,若用戶提問句子與問題集中某一句子的剩余關鍵詞詞數之和小于等于1,且剩余關鍵詞中不包含否定詞時,則用戶提問句子與問題集中的某一個句子是相似的;
[0037]規則2:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于0,問題集中某一句子的剩余關鍵詞詞數等于2,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的;
[0038]規則3模塊:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于2,問題集中某一句子的剩余關鍵詞詞數等于0,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的;
[0039]規則4模塊:經過剩余關鍵詞列表計算后,若用戶提問句子和問題集中某一句子的剩余關鍵詞中含有的否定詞為奇數時,則用戶提問句子與問題集中某一句子是不相似的;其中,
[0040]所述關系規則設定模塊分別與剩余關鍵詞集合模塊和二級算法模塊連接。
[0041 ] 優選地,所述三級相似度確定模塊包括三級算法模塊,所述三級算法模塊包括:
[0042]提問子句集轉換模塊,用于根據標點符號切分用戶提問,利用用戶提問中的標點符號,將用戶提問轉換成用戶提問子句集;
[0043]子句集處理模塊,用于對用戶提問子句集中每一個元素計算其與問題集中某問題的剩余列表,計算子句集中每一個元素與計算機存儲的問題集中問題的句子相似度;
[0044]替換模塊,用于使用子句集中元素與問題集中某個問題的最大相似度代替用戶提問與這個問題的句子相似度;其中,
[0045]所述一級算法模塊、二級算法模塊以及三級算法模塊中的提問子句集轉換模塊、子句集處理模塊、替換模塊依次連接。
[0046]優選地,所述提問子句集轉換模塊包括:
[0047]拆分集中模塊,用于在初始子句集為空時,根據標點符號將用戶提問拆分成若干個子句,將這些子句并入子句集中;
[0048]子句并入模塊,用于將任意長度的連續的若干子句構成一個子句,并入子句集中;
[0049]提問整句并入模塊,用于將用戶提問的整句并入子句集中,至此構建成一個完整的用戶提問子句集;其中,
[0050]所述拆分集中模塊、子句并入模塊、提問整句并入模塊以及子句集處理模塊依次連接。
[0051]優選地,所述三級算法模塊還包括相似性判斷模塊,用于將用戶提問子句集中某一子句與問題集中某一問題進行剩余關鍵詞列表計算,若子句的剩余關鍵詞詞數等于0,問題的剩余關鍵詞詞數小于等于1,則用戶提問與問題集中該問題是相似的;其中,所述相似性判斷模塊與子句集處理模塊連接。
[0052]本發明克服現有技術的不足,提供一種面向用戶查詢意圖的漢語句子相似度分層計算方法及裝置,采用Microsoft visual stud12010開發環境實現,語言采用C#。本系統共分為3個模塊,分別實現本方案設計的三個算法。具體的句子相似度分層計算流程如圖1所示。由圖1可得,本方案包括三個模塊,分別采用三種算法:去除句末標點的編輯距離句子相似度算法、基于關鍵詞特征和語義特征的句子相似度算法、面向用戶意圖的句子相似度算法。通過三種不同的算法,處理三種不同類型的數據,即構成句子的字符基本一致、構成句子的關鍵詞基本一致、構成句子的關鍵詞相差較大三類數據,計算句子相似度,逐步提升本方案的實用價值。具體做法為:首先采用去除句末標點的編輯距離句子相似度算法對數據集進行相似度計算,確定一部分滿足閾值的句子為相似句子。其次采用基于關鍵詞特征和語義特征的句子相似度算法,對數據集中的非相似句子進行相似度計算,從而再次確定一部分滿足閾值的句子為相似句子。最后采用面向用戶意圖的句子相似度算法,對數據集中的非相似句子進行句子相似度計算,確定一部分滿足閾值的句子為相似句子。至此,得到數據集中的所有相似句子。也就是說,3個模塊之間是串行的,各個模塊處理的數據都是仍不確定是否是相似的句子,已經確定為相似的或者不相似的句子是不參與后續計算的。
[0053]在本發明中,最主要的關鍵技術點在于:
[0054](I)本發明采用分層計算的思想,將數據分成三大類,即構成句子的字符基本一致、構成句子的關鍵詞基本一致、構成句子的關鍵詞相差較大三類數據,針對不同類型的數據設計不同的算法,并且逐次使用不同算法計算句子相似性。
[0055](2)本發明去除句末標點的編輯距離句子相似度算法主要針對字符基本一致的句子,將句子去除句末標點,再按照編輯距離算法計算兩個句子的編輯距離,設定編輯距離小于等于2的句子為相似的。其中去除句末標點的操作和閾值的設定,都使得該算法更符合人們的日常語言習慣,可以有效改善句子相似度計算的準確率。
[0056](3)本發明基于關鍵詞特征和語義特征的句子相似度算法主要針對關鍵詞基本一致的句子,具體計算方法為:首先計算兩個句子的剩余關鍵詞列表,最后根據統計分析得出的四條規則計算其句子相似性。其中,剩余關鍵詞是指一個句子經過分詞、去除停用詞、修改錯別字、大寫字母轉換成小寫字母、中文數字轉換成阿拉伯數字、關鍵詞對比消減、同義詞對比消減和否定詞對比消減后余留的關鍵詞集合。
[0057](4)本發明面向用戶意圖的句子相似度算法主要針對關鍵詞相差較大的句子,采用子句集中元素與問題集中某個問題的最大相似度代替用戶提問與這個問題的句子相似度。具體做法是:首先,根據標點符號切分用戶提問,構建用戶提問子句集;其次對用戶提問子句集中每一個元素計算其與問題集中某問題的剩余列表;最后根據制定的規則計算用戶提問和問題集中該問題的相似性。算法利用了自然標注,也就是用戶提問中的標點符號,考慮了查詢意圖,解決傳統辦法計算一個長句與一個短句之間的相似度值不能反映語義層面相似度的問題。
【專利附圖】
【附圖說明】
[0058]圖1是本發明中漢語句子相似度分層計算流程圖;
[0059]圖2是本發明實施例中面向用戶查詢意圖的漢語句子相似度分層計算方法的步驟流程圖;
[0060]圖3是本發明中去除句末標點的編輯距離句子相似度計算方法流程圖;
[0061]圖4是本發明中基于關鍵詞特征和語義特征的句子相似度算法流程圖;
[0062]圖5是本發明中計算剩余關鍵詞列表流程圖;
[0063]圖6是本發明中面向用戶意圖的句子相似度算法流程圖;
[0064]圖7是本發明實施例中面向用戶查詢意圖的漢語句子相似度分層計算裝置的結構示意圖。
【具體實施方式】
[0065]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0066]一種面向用戶查詢意圖的漢語句子相似度分層計算方法,如圖1和圖2所示,包括以下步驟:
[0067]S1、采用去除句末標點的編輯距離句子相似度算法對數據集進行相似度計算,確定一部分滿足閾值的句子為相似句子
[0068]在步驟SI中,去除句末標點的編輯距離句子相似度計算方法流程如圖3所示,其中,去除句末標點的編輯距離句子相似度算法是指在計算兩個句子的相似度時,忽略其句末的標點符號,因為句末標點通常用于表達語氣,對于判別句子相似度是不具有意義的。具體方案為:將去除句末標點的句子按照基于字符的編輯距離句子相似度算法計算其句子的編輯距離,再根據設定的閾值判定哪些句子為相似的。本方案中閾值設置為2,這是考慮到人們在描述問題時往往偏向使用一些無關真正需求的介詞,或者對于同一事物存在不同表述,所以將編輯距離小于等于2的句子對視為相似的,即允許有兩次或兩次以下的編輯操作次數。
[0069]S2、采用基于關鍵詞特征和語義特征的句子相似度算法,對數據集中的非相似句子進行相似度計算,從而再次確定一部分滿足閾值的句子為相似句子
[0070]在步驟S2中,基于關鍵詞特征和語義特征的句子相似度算法流程如圖4所示,其中,基于關鍵詞特征和語義特征的句子相似度算法是指采用關鍵詞特征,將句子轉換成關鍵詞列表形式,再兼顧同義詞特征、否定詞特征,總結分析經過對比消解后的剩余關鍵詞詞數與已標注的相似句子對之間呈現的規律,最后判定符合規律的句子是否句子相似。其中,剩余關鍵詞是指一個句子經過分詞、去除停用詞、修改錯別字、大寫字母轉換成小寫字母、中文數字轉換成阿拉伯數字、關鍵詞對比消減、同義詞對比消減和否定詞對比消減后余留的關鍵詞集合。
[0071]本算法通過分析剩余關鍵詞總詞數與相似句子之間的關系,共制定了四條規則,分別為:
[0072]規則1:經過剩余關鍵詞列表計算后,若用戶提問句子與問題集中某一句子的剩余關鍵詞詞數之和小于等于1,且剩余關鍵詞中不包含否定詞時,則用戶提問句子與問題集中的某一個句子是相似的。
[0073]規則2:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于0,問題集中某一句子的剩余關鍵詞詞數等于2,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的。
[0074]規則3:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于2,問題集中某一句子的剩余關鍵詞詞數等于0,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的。
[0075]規則4:經過剩余關鍵詞列表計算后,若用戶提問句子和問題集中某一句子的剩余關鍵詞中含有的否定詞為奇數時,則用戶提問句子與問題集中某一句子是不相似的。
[0076]本算法的具體做法為:首先計算兩個句子的剩余關鍵詞列表,再根據上述四條規則計算其句子相似性。
[0077]在本發明實施例中,計算剩余關鍵詞列表流程如圖5所示。
[0078]S3、采用面向用戶意圖的句子相似度算法,對數據集中的非相似句子進行句子相似度計算,確定一部分滿足閾值的句子為相似句子,至此得到數據集中的所有相似句子
[0079]在步驟S3中,面向用戶意圖的句子相似度算法流程如圖6所示,其中,面向用戶意圖的句子相似度算法是指利用用戶提問中的標點符號,將用戶提問轉換成用戶提問子句集,計算子句集中每一個元素與計算機存儲的問題集中問題的句子相似度。使用子句集中元素與問題集中某個問題的最大相似度代替用戶提問與這個問題的句子相似度。
[0080]其中用戶提問子句集的構建方法是:初始子句集為空,首先根據標點符號將用戶提問拆分成若干個子句,將這些子句并入子句集中;再將任意長度的連續的若干子句構成一個子句,并入子句集中;最后將用戶提問的整句并入子句集中,至此構建成一個完整的用戶提問子句集。
[0081]由于子句所包含的關鍵詞個數相對完整問題句的關鍵詞個數較少,所以提出規則5來判斷子句和問題集中問題的相似性。
[0082]規則5:將用戶提問子句集中某一子句與問題集中某一問題進行剩余關鍵詞列表計算,若子句的剩余關鍵詞詞數等于0,問題的剩余關鍵詞詞數小于等于1,則用戶提問與問題集中該問題是相似的。
[0083]本算法的具體做法是:首先,根據標點符號切分用戶提問,構建用戶提問子句集;其次對用戶提問子句集中每一個元素計算其與問題集中某問題的剩余列表;最后根據規則5計算用戶提問和問題集中該問題的相似性。
[0084]本發明利用分層計算的思想,充分考慮了語句比較計算過程中待比較語句之間的各種特征組成,從而使相似度的計算更加簡潔,并且取得好的效果。此外,本發明基于編輯距離算法,通過突出其考慮字符串與字符串之間的順序的特點,采用去除句末標點的編輯距離句子相似度算法,以字為處理單元快速識別基本一致的句子,克服中文分詞效果不理想的問題。最后,本發明提出的基于關鍵詞特征和語義特征的句子相似度算法和面向用戶意圖的句子相似度算法,兼顧了同義詞和否定詞等語義特征,同時考慮了查詢請求和查詢意圖之間的關系,可以有效解決關鍵詞差異大、長度長、句子結構復雜等問題。
[0085]本發明進一步提供了一種面向用戶查詢意圖的漢語句子相似度分層計算裝置,如圖6所示,包括:
[0086]一級相似度確定模塊1,用于采用去除句末標點的編輯距離句子相似度算法對數據集進行相似度計算,確定一部分滿足閾值的句子為相似句子;
[0087]二級相似度確定模塊2,用于采用基于關鍵詞特征和語義特征的句子相似度算法,對數據集中的非相似句子進行相似度計算,從而再次確定一部分滿足閾值的句子為相似句子;
[0088]三級相似度確定模塊3,用于采用面向用戶意圖的句子相似度算法,對數據集中的非相似句子進行句子相似度計算,確定一部分滿足閾值的句子為相似句子,至此得到數據集中的所有相似句子;其中,
[0089]所述一級相似度確定模塊1、二級相似度確定模塊2以及三級相似度確定模塊3依次連接。
[0090]在本發明實施例中,更具體的,所述一級相似度確定模塊I包括一級算法模塊,用于計算兩個句子的相似度時,忽略其句末的標點符號,將去除句末標點的句子按照基于字符的編輯距離句子相似度算法計算其句子的編輯距離,再根據設定的閾值判定相似句子;
[0091]所述二級相似度確定模塊2包括二級算法模塊,用于采用關鍵詞特征,將句子轉換成關鍵詞列表形式,再兼顧同義詞特征、否定詞特征,總結分析經過對比消解后的剩余關鍵詞詞數與已標注的相似句子對之間呈現的規律,最后判定符合規律的句子是否句子相似;
[0092]所述三級相似度確定模塊3包括三級算法模塊,所述三級算法模塊包括:
[0093]提問子句集轉換模塊,用于根據標點符號切分用戶提問,利用用戶提問中的標點符號,將用戶提問轉換成用戶提問子句集;
[0094]子句集處理模塊,用于對用戶提問子句集中每一個元素計算其與問題集中某問題的剩余列表,計算子句集中每一個元素與計算機存儲的問題集中問題的句子相似度;
[0095]替換模塊,用于使用子句集中元素與問題集中某個問題的最大相似度代替用戶提問與這個問題的句子相似度;其中,
[0096]所述一級算法模塊、二級算法模塊以及三級算法模塊中的提問子句集轉換模塊、子句集處理模塊、替換模塊依次連接。
[0097]在本發明實施例中,更具體的,所述二級相似度確定模塊2還包括剩余關鍵詞集合模塊,用于將一個句子經過分詞、去除停用詞、修改錯別字、大寫字母轉換成小寫字母、中文數字轉換成阿拉伯數字、關鍵詞對比消減、同義詞對比消減和否定詞對比消減后余留的關鍵詞集合;其中,所述剩余關鍵詞集合模塊與二級算法模塊連接。
[0098]在本發明實施例中,更具體的,所述二級相似度確定模塊2還包括用于對剩余關鍵詞詞數與已標注的相似句子對之間的關系設定具體規則的關系規則設定模塊,所述關系規則設定模塊23設定規則具體包括:
[0099]規則1:用于經過剩余關鍵詞列表計算后,若用戶提問句子與問題集中某一句子的剩余關鍵詞詞數之和小于等于1,且剩余關鍵詞中不包含否定詞時,則用戶提問句子與問題集中的某一個句子是相似的;
[0100]規則2:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于0,問題集中某一句子的剩余關鍵詞詞數等于2,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的;
[0101]規則3模塊:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于2,問題集中某一句子的剩余關鍵詞詞數等于0,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的;
[0102]規則4模塊:經過剩余關鍵詞列表計算后,若用戶提問句子和問題集中某一句子的剩余關鍵詞中含有的否定詞為奇數時,則用戶提問句子與問題集中某一句子是不相似的;其中,
[0103]所述關系規則設定模塊分別與剩余關鍵詞集合模塊和二級算法模塊連接。
[0104]在本發明實施例中,更具體的,所述提問子句集轉換模塊包括:
[0105]拆分集中模塊,用于在初始子句集為空時,根據標點符號將用戶提問拆分成若干個子句,將這些子句并入子句集中;
[0106]子句并入模塊,用于將任意長度的連續的若干子句構成一個子句,并入子句集中;
[0107]提問整句并入模塊,用于將用戶提問的整句并入子句集中,至此構建成一個完整的用戶提問子句集;其中,
[0108]所述拆分集中模塊、子句并入模塊、提問整句并入模塊以及子句集處理模塊依次連接。
[0109]在本發明實施例中,更具體的,所述三級算法模塊還包括相似性判斷模塊,用于將用戶提問子句集中某一子句與問題集中某一問題進行剩余關鍵詞列表計算,若子句的剩余關鍵詞詞數等于0,問題的剩余關鍵詞詞數小于等于1,則用戶提問與問題集中該問題是相似的;其中,所述相似性判斷模塊與子句集處理模塊連接。
[0110]本發明實施例中的面向用戶查詢意圖的漢語句子相似度分層計算裝置與上述面向用戶查詢意圖的漢語句子相似度分層計算方法相對應,具有相同的原理和有益效果,以上述方法解釋本實施例裝置,在此不再贅述。
[0111]相比于現有技術的缺點和不足,本發明具有以下有益效果:
[0112](I)本發明利用分層計算的思想,充分考慮了語句比較計算過程中待比較語句之間的各種特征組成,從而使相似度的計算更加簡潔,并且取得好的效果。
[0113](2)本發明基于編輯距離算法,通過突出其考慮字符串與字符串之間的順序的特點,采用去除句末標點的編輯距離句子相似度算法,以字為處理單元快速識別基本一致的句子,克服中文分詞效果不理想的問題。
[0114](3)本發明提出的基于關鍵詞特征和語義特征的句子相似度算法和面向用戶意圖的句子相似度算法,兼顧了同義詞和否定詞等語義特征,同時考慮了查詢請求和查詢意圖之間的關系,可以有效解決關鍵詞差異大、長度長、句子結構復雜等問題。
[0115]以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種面向用戶查詢意圖的漢語句子相似度分層計算方法,其特征在于包括以下步驟: 51、采用去除句末標點的編輯距離句子相似度算法對數據集進行相似度計算,確定一部分滿足閾值的句子為相似句子; 52、采用基于關鍵詞特征和語義特征的句子相似度算法,對數據集中的非相似句子進行相似度計算,從而再次確定一部分滿足閾值的句子為相似句子; 53、采用面向用戶意圖的句子相似度算法,對數據集中的非相似句子進行句子相似度計算,確定一部分滿足閾值的句子為相似句子,至此得到數據集中的所有相似句子。
2.如權利要求1所述的面向用戶查詢意圖的漢語句子相似度分層計算方法,其特征在于,在步驟SI中,所述去除句末標點的編輯距離句子相似度算法具體包括:計算兩個句子的相似度時,忽略其句末的標點符號,將去除句末標點的句子按照基于字符的編輯距離句子相似度算法計算其句子的編輯距離,再根據設定的閾值判定相似句子; 在步驟S2中,所述基于關鍵詞特征和語義特征的句子相似度算法具體包括:采用關鍵詞特征,將句子轉換成關鍵詞列表形式,再兼顧同義詞特征、否定詞特征,總結分析經過對比消解后的剩余關鍵詞詞數與已標注的相似句子對之間呈現的規律,最后判定符合規律的句子是否句子相似; 在步驟S3中,所述面向用戶意圖的句子相似度算法具體包括: 根據標點符號切分用戶提問,利用用戶提問中的標點符號,將用戶提問轉換成用戶提問子句集; 對用戶提問子句集中每一個元素計算其與問題集中某問題的剩余列表,計算子句集中每一個元素與計算機存儲的問題集中問題的句子相似度; 使用子句集中元素與問題集中某個問題的最大相似度代替用戶提問與這個問題的句子相似度。
3.如權利要求2所述的面向用戶查詢意圖的漢語句子相似度分層計算方法,其特征在于,在步驟S2中,所述剩余關鍵詞是指一個句子經過分詞、去除停用詞、修改錯別字、大寫字母轉換成小寫字母、中文數字轉換成阿拉伯數字、關鍵詞對比消減、同義詞對比消減和否定詞對比消減后余留的關鍵詞集合。
4.如權利要求3所述的面向用戶查詢意圖的漢語句子相似度分層計算方法,其特征在于,在步驟S2中,所述剩余關鍵詞詞數與已標注的相似句子對之間的關系具體包括以下規則: 規則1:經過剩余關鍵詞列表計算后,若用戶提問句子與問題集中某一句子的剩余關鍵詞詞數之和小于等于1,且剩余關鍵詞中不包含否定詞時,則用戶提問句子與問題集中的某一個句子是相似的; 規則2:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于O,問題集中某一句子的剩余關鍵詞詞數等于2,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的; 規則3:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于2,問題集中某一句子的剩余關鍵詞詞數等于O,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的; 規則4:經過剩余關鍵詞列表計算后,若用戶提問句子和問題集中某一句子的剩余關鍵詞中含有的否定詞為奇數時,則用戶提問句子與問題集中某一句子是不相似的。
5.如權利要求2所述的面向用戶查詢意圖的漢語句子相似度分層計算方法,其特征在于,在步驟S3中,所述用戶提問子句集的構建方法具體包括:初始子句集為空,首先根據標點符號將用戶提問拆分成若干個子句,將這些子句并入子句集中;再將任意長度的連續的若干子句構成一個子句,并入子句集中;最后將用戶提問的整句并入子句集中,至此構建成一個完整的用戶提問子句集; 在步驟S3中,所述子句和問題集中問題的相似性的判斷具體為: 規則5:將用戶提問子句集中某一子句與問題集中某一問題進行剩余關鍵詞列表計算,若子句的剩余關鍵詞詞數等于O,問題的剩余關鍵詞詞數小于等于1,則用戶提問與問題集中該問題是相似的。
6.一種面向用戶查詢意圖的漢語句子相似度分層計算裝置,其特征在于,包括: 一級相似度確定模塊,用于采用去除句末標點的編輯距離句子相似度算法對數據集進行相似度計算,確定一部分滿足閾值的句子為相似句子;二級相似度確定模塊,用于采用基于關鍵詞特征和語義特征的句子相似度算法,對數據集中的非相似句子進行相似度計算,從而再次確定一部分滿足閾值的句子為相似句子;三級相似度確定模塊,用于采用面向用戶意圖的句子相似度算法,對數據集中的非相似句子進行句子相似度計算,確定一部分滿足閾值的句子為相似句子,至此得到數據集中的所有相似句子;其中, 所述一級相似度確定模塊、二級相似度確定模塊以及三級相似度確定模塊依次連接。
7.如權利要求6所述的面向用戶查詢意圖的漢語句子相似度分層計算裝置,其特征在于,所述一級相似度確定模塊包括一級算法模塊,用于計算兩個句子的相似度時,忽略其句末的標點符號,將去除句末標點的句子按照基于字符的編輯距離句子相似度算法計算其句子的編輯距離,再根據設定的閾值判定相似句子; 所述二級相似度確定模塊包括二級算法模塊,用于采用關鍵詞特征,將句子轉換成關鍵詞列表形式,再兼顧同義詞特征、否定詞特征,總結分析經過對比消解后的剩余關鍵詞詞數與已標注的相似句子對之間呈現的規律,最后判定符合規律的句子是否句子相似; 所述三級相似度確定模塊包括三級算法模塊,所述三級算法模塊包括: 提問子句集轉換模塊,用于根據標點符號切分用戶提問,利用用戶提問中的標點符號,將用戶提問轉換成用戶提問子句集; 子句集處理模塊,用于對用戶提問子句集中每一個元素計算其與問題集中某問題的剩余列表,計算子句集中每一個元素與計算機存儲的問題集中問題的句子相似度; 替換模塊,用于使用子句集中元素與問題集中某個問題的最大相似度代替用戶提問與這個問題的句子相似度;其中, 所述一級算法模塊、二級算法模塊以及三級算法模塊中的提問子句集轉換模塊、子句集處理模塊、替換模塊依次連接。
8.如權利要求7所述的面向用戶查詢意圖的漢語句子相似度分層計算裝置,其特征在于,所述二級相似度確定模塊還包括剩余關鍵詞集合模塊,用于將一個句子經過分詞、去除停用詞、修改錯別字、大寫字母轉換成小寫字母、中文數字轉換成阿拉伯數字、關鍵詞對比消減、同義詞對比消減和否定詞對比消減后余留的關鍵詞集合;其中, 所述剩余關鍵詞集合模塊與二級算法模塊連接。
9.如權利要求8所述的面向用戶查詢意圖的漢語句子相似度分層計算裝置,其特征在于,所述二級相似度確定模塊還包括用于對剩余關鍵詞詞數與已標注的相似句子對之間的關系設定具體規則的關系規則設定模塊,所述關系規則設定模塊設定規則具體包括: 規則1:用于經過剩余關鍵詞列表計算后,若用戶提問句子與問題集中某一句子的剩余關鍵詞詞數之和小于等于1,且剩余關鍵詞中不包含否定詞時,則用戶提問句子與問題集中的某一個句子是相似的; 規則2:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于O,問題集中某一句子的剩余關鍵詞詞數等于2,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的; 規則3模塊:經過剩余關鍵詞列表計算后,若用戶提問句子的剩余關鍵詞詞數等于2,問題集中某一句子的剩余關鍵詞詞數等于O,且剩余關鍵詞中不包含否定詞,則用戶提問句子與問題集中某一句子是相似的; 規則4模塊:經過剩余關鍵詞列表計算后,若用戶提問句子和問題集中某一句子的剩余關鍵詞中含有的否定詞為奇數時,則用戶提問句子與問題集中某一句子是不相似的;其中, 所述關系規則設定模塊分別與剩余關鍵詞集合模塊和二級算法模塊連接。
10.如權利要求9所述的面向用戶查詢意圖的漢語句子相似度分層計算裝置,其特征在于,所述提問子句集轉換模塊包括: 拆分集中模塊,用于在初始子句集為空時,根據標點符號將用戶提問拆分成若干個子句,將這些子句并入子句集中; 子句并入模塊,用于將任意長度的連續的若干子句構成一個子句,并入子句集中; 提問整句并入模塊,用于將用戶提問的整句并入子句集中,至此構建成一個完整的用戶提問子句集;其中, 所述拆分集中模塊、子句并入模塊、提問整句并入模塊以及子句集處理模塊依次連接; 所述三級算法模塊還包括相似性判斷模塊,用于將用戶提問子句集中某一子句與問題集中某一問題進行剩余關鍵詞列表計算,若子句的剩余關鍵詞詞數等于0,問題的剩余關鍵詞詞數小于等于1,則用戶提問與問題集中該問題是相似的;其中,所述相似性判斷模塊與子句集處理模塊連接。
【文檔編號】G06F17/27GK104133812SQ201410341855
【公開日】2014年11月5日 申請日期:2014年7月17日 優先權日:2014年7月17日
【發明者】張仰森, 李景玉 申請人:北京信息科技大學, 張仰森