本發(fā)明涉及搜索引擎技術領域,更具體地,涉及一種面向搜索引擎的中英混合查詢糾錯的方法及系統(tǒng)。
背景技術:
對于查詢詞糾錯的需求一開始是源自于搜索引擎的日志分析,搜索日志里發(fā)現(xiàn)有大量包含有部分錯誤的查詢詞。對帶有部分錯誤的查詢詞進行查詢時,會大大降低搜索引擎的查全率與查準率。因此對查詢詞進行糾錯的技術被引入至搜索引擎系統(tǒng)中,來解決由于用戶輸入了帶有部分錯誤的查詢詞而導致無效查詢的問題。
查詢糾錯是針對信息檢索系統(tǒng)中查詢語句的拼寫糾錯。查詢語句直接影響信息檢索系統(tǒng)返回結果的可靠性與準確性,所以現(xiàn)有的很多信息檢索系統(tǒng)都會對查詢語句進行糾錯處理,確保返回的檢索信息能夠滿足用戶需要,提高用戶檢索效率和檢索結果命中率。
中文信息檢索系統(tǒng)中的查詢詞類型一般有:中文、拼音、英文等形式。中文查詢中會出現(xiàn)同音字錯誤、近音字錯誤、形近字錯誤、拼音轉漢字錯誤、拼音中字母缺失、前后字置換、漢字缺失等現(xiàn)象;英文查詢按照錯誤類型不同,分為非詞錯誤和真詞錯誤。非詞錯誤是指拼寫錯誤的詞不存在,例如,將“the”錯誤拼寫為“tha”;真詞錯誤是指那些拼寫錯誤后的詞仍然是合法的情況,例如,將“the”錯誤拼寫為“then"。
英文糾錯技術僅考慮了英文搜索引擎中查詢包含的錯誤,即英文單詞的拼寫錯誤、使用不當和空格的缺失等,中文搜索引擎中包含的錯誤類型更多,語言的形式更復雜。
現(xiàn)有的中文查詢糾錯方法多采用將查詢詞內的中文轉換為拼音,然后查找詞典中拼音與該查詢詞拼音字符串相似或相同的候選詞條,最后通過詞頻或語言模型的方式?jīng)Q定候選詞條是否為糾錯結果。
對于中文信息檢索系統(tǒng)中,大部分只支持對純中文查詢詞或者純英文查詢詞糾錯,但對于用戶輸入的中英混合進行查詢時,目前還支持的不夠完善。
技術實現(xiàn)要素:
本發(fā)明為解決以上現(xiàn)有技術只支持純中文查詢詞或者純英文查詢詞糾錯的技術缺陷,提供了一種面向搜索引擎的中英混合查詢糾錯的方法。
為實現(xiàn)以上發(fā)明目的,采用的技術方案是:
一種面向搜索引擎的中英混合查詢糾錯的方法,包括以下步驟:
s1.運用爬蟲技術爬取互聯(lián)網(wǎng)網(wǎng)頁內容;
s2.將步驟s1爬取的網(wǎng)頁內容和搜索日志作為語料構建出語言模型,以及構建基于拼音的字典樹、英文索引表和分詞詞典;
s3.對于用戶輸入的查詢串,首先運用語言模型對其進行評估,計算其合理性概率,若其合理性概率低于設定的閾值a,或者基于查詢串得到的搜索結果的數(shù)量少于閾值b,則轉入步驟s4的糾錯處理;
s4.(1)若查詢串中只包含有中文,則執(zhí)行以下糾錯過程:
s101.若輸入的查詢串為單字,則不執(zhí)行糾錯過程或執(zhí)行步驟s104,否則執(zhí)行步驟s102;
s102.將查詢串轉換成拼音,然后利用編輯距離算法、最大模糊匹配算法在字典樹中查找匹配的的候選集合,將查找匹配的候選集合作為糾錯建議;若在字典樹中查到不到匹配的候選集合,則執(zhí)行步驟s103;
s103.將查詢串進行n元切分,將切分得到的所有子串分別利用編輯距離算法、最大模糊匹配算法在字典樹中查找匹配的候選集合;若某一子串查找到匹配的候選集合,則將該子串前面部分的字符串和后面部分的字符串分別作為兩個查詢串執(zhí)行步驟s101,進入遞歸搜索;
s104.遞歸搜索結束后,得到多個候選集合,此時采用語言模型對各個候選集合進行合理性評分,將評分最高的候選集合作為糾錯建議;
(2)若輸入的查詢串包含有中文和字母,則執(zhí)行以下糾錯過程:
s201.首先將字符串按照s101~s103的步驟進行匹配的候選集合的查找,若查找得到匹配的候選集合,則給出相應的糾錯建議;否則將查詢串分割成中文和字母串,將中文按照(1)進行糾錯處理,而至于字母串,則執(zhí)行以下處理:
s202.將字母串以空格為分隔符進行分割,得到字符串集合,將字符串集合中的每個字符串按照步驟s101~s103的步驟進行候選集合的匹配查找,若某一字符串查找得到匹配的候選集合,則給出相應的糾錯建議,否則該字符串進入步驟s203的英文糾錯流程;
s203.判斷字符串是否為一個正確的英文單詞,若是則進行下一字符串是否屬于正確的英文單詞的判斷,否則根據(jù)預先建立的英文索引表查找出候選集合,然后利用最小編輯距離算法計算候選集合與字符串的相似度,將相似度最高的單詞作為糾錯建議;
(3)若輸入的查詢串值只包含有字母,則執(zhí)行以下糾錯過程:
s301.將查詢串以空格為分隔符進行分割,得到字符串集合,將字符串集合中的每個字符串按照步驟s101~s103的步驟進行候選集合的匹配查找,若某一字符串查找得到匹配的候選集合,則給出相應的糾錯建議;若某一字符串查找不到匹配的候選集合,則按照步驟s203的內容進行英文糾錯的處理;
s302.當字符串集合中所有的字符串采納糾錯建議進行糾錯處理后,將經(jīng)過糾錯處理的字符串按照順序拼接起來,將拼接的結果作為查詢串的糾錯建議。
優(yōu)選地,所述步驟s3中,若查詢串的長度大于設定的閾值c,則不進行步驟s4的糾錯處理。
優(yōu)選地,所述語言模型為n-gram語言模型。
優(yōu)選地,所述n-gram語言模型add-one平滑方法來解決零概率的問題。
同時,本發(fā)明還提供了一種應用以上方法的系統(tǒng),其具體的方案如下:
包括學習模塊、糾錯模塊和訓練模塊;
其中學習模塊用于對語料進行新詞的挖掘,并將挖掘出的新詞添加至分詞詞典中,所述分詞詞典用于步驟s3對查詢串的切分;
訓練模塊用于基于語料構建出語言模型,以及構建基于拼音的字典樹、英文索引表和分詞詞典;
糾錯模塊用于進行糾錯處理。
優(yōu)選地,所述糾錯模塊包括中文糾錯子模塊、中文與字母糾錯子模塊、英文和拼音糾錯子模塊,其中中文糾錯子模塊用于執(zhí)行步驟s4中的(1),中文與字母糾錯子模塊用于執(zhí)行步驟s4中的(2),英文和拼音糾錯子模塊用于執(zhí)行步驟s4中的(3)。
優(yōu)選地,所述學習模塊進行新詞的挖掘的具體過程如下:
s401.基于分詞詞典對語料進行分詞處理,得到分詞碎片;
s402.對分詞碎片進行拼接,得到一個由拼接詞組成的拼接詞庫;
s403.計算拼接分詞詞典中各個拼接詞的詞頻;
s404.若某一拼接詞的詞頻大于所設定的閾值d,則計算其凝固度和自由度;
s405.若某一拼接詞的凝固度和自由度大于設定的閾值e和f,則將該拼接詞確認為新詞,并添加至分詞詞典中,然后執(zhí)行步驟s401。
與現(xiàn)有技術相比,本發(fā)明的有益效果是:
1.基于n-gram語言模型以及多種糾錯策略,實現(xiàn)對搜索引擎中帶有部分錯誤的中英文混合查詢的糾錯。
2.對于查詢糾錯的過程中,需要對查詢串進行分詞處理,基于統(tǒng)計與基于規(guī)則的分詞方法都需要利用分詞詞典進行分詞,因此分詞詞典中詞語覆蓋率對分詞的準確性有重要影響。本發(fā)明可以自動對語料進行挖掘與分析,發(fā)現(xiàn)網(wǎng)絡新詞并加入分詞詞典,提高糾錯準確率。
附圖說明
圖1為系統(tǒng)的結構示意圖。
圖2為查詢串中只包含有中文時的糾錯過程圖。
圖3為查詢串為純英文時的糾錯過程圖。
圖4為查詢串中只包含有字母時的糾錯過程圖。
圖5為查詢串中包含有中文和字符串時的糾錯過程圖。
圖6為學習模塊挖掘新詞的示意圖。
具體實施方式
附圖僅用于示例性說明,不能理解為對本專利的限制;
以下結合附圖和實施例對本發(fā)明做進一步的闡述。
實施例1
如圖1所示,如圖2~5所示,一種面向搜索引擎的中英混合查詢糾錯的方法,包括以下步驟:
s1.運用爬蟲技術爬取互聯(lián)網(wǎng)網(wǎng)頁內容;
s2.將步驟s1爬取的網(wǎng)頁內容和搜索日志作為語料構建出語言模型,以及構建基于拼音的字典樹、英文索引表和分詞詞典;
s3.對于用戶輸入的查詢串,首先運用語言模型對其進行評估,計算其合理性概率,若其合理性概率低于設定的閾值a,或者基于查詢串得到的搜索結果的數(shù)量少于閾值b,則轉入步驟s4的糾錯處理;
s4.(1)若查詢串中只包含有中文,如圖2所示,則執(zhí)行以下糾錯過程:
s101.若輸入的查詢串為單字,則不執(zhí)行糾錯過程或執(zhí)行步驟s104,否則執(zhí)行步驟s102;
s102.將查詢串轉換成拼音,然后利用編輯距離算法、最大模糊匹配算法在字典樹中查找匹配的的候選集合,將查找匹配的候選集合作為糾錯建議;若在字典樹中查到不到匹配的候選集合,則執(zhí)行步驟s103;
s103.將查詢串進行n元切分,將切分得到的所有子串分別利用編輯距離算法、最大模糊匹配算法在字典樹中查找匹配的候選集合;若某一子串查找到匹配的候選集合,則將該子串前面部分的字符串和后面部分的字符串分別作為兩個查詢串執(zhí)行步驟s101,進入遞歸搜索;
s104.遞歸搜索結束后,得到多個候選集合,此時采用語言模型對各個候選集合進行合理性評分,將評分最高的候選集合作為糾錯建議;
(2)若輸入的查詢串包含有中文和字母,如圖3、4、5所示,則執(zhí)行以下糾錯過程:
s201.首先將字符串按照s101~s103的步驟進行匹配的候選集合的查找,若查找得到匹配的候選集合,則給出相應的糾錯建議;否則將查詢串分割成中文和字母串,將中文按照(1)進行糾錯處理,而至于字母串,則執(zhí)行以下處理:
s202.將字母串以空格為分隔符進行分割,得到字符串集合,將字符串集合中的每個字符串按照步驟s101~s103的步驟進行候選集合的匹配查找,若某一字符串查找得到匹配的候選集合,則給出相應的糾錯建議,否則該字符串進入步驟s203的英文糾錯流程;
s203.判斷字符串是否為一個正確的英文單詞,若是則進行下一字符串是否屬于正確的英文單詞的判斷,否則根據(jù)預先建立的英文索引表查找出候選集合,然后利用最小編輯距離算法計算候選集合與字符串的相似度,將相似度最高的單詞作為糾錯建議;
(3)若輸入的查詢串值只包含有字母,如圖3、4所示,則執(zhí)行以下糾錯過程:
s301.將查詢串以空格為分隔符進行分割,得到字符串集合,將字符串集合中的每個字符串按照步驟s101~s103的步驟進行候選集合的匹配查找,若某一字符串查找得到匹配的候選集合,則給出相應的糾錯建議;若某一字符串查找不到匹配的候選集合,則按照步驟s203的內容進行英文糾錯的處理;
s302.當字符串集合中所有的字符串采納糾錯建議進行糾錯處理后,將經(jīng)過糾錯處理的字符串按照順序拼接起來,將拼接的結果作為查詢串的糾錯建議。
在具體的實施過程中,所述步驟s3中,若查詢串的長度大于設定的閾值c,則不進行步驟s4的糾錯處理。
在具體的實施過程中,所述語言模型為n-gram語言模型。
在具體的實施過程中,所述n-gram語言模型add-one平滑方法來解決零概率的問題。
實施例2
本實施例提供了一種應用實施例1方法的系統(tǒng),如圖1所示,其具體的方案如下:
包括學習模塊、糾錯模塊和訓練模塊;
其中學習模塊用于對語料進行新詞的挖掘,并將挖掘出的新詞添加至分詞詞典中,所述分詞詞典用于步驟s3對查詢串的切分;
訓練模塊用于基于語料構建出語言模型,以及構建基于拼音的字典樹、英文索引表和分詞詞典;
糾錯模塊用于進行糾錯處理。
在具體的實施過程中,所述糾錯模塊包括中文糾錯子模塊、中文與字母糾錯子模塊、英文和拼音糾錯子模塊,其中中文糾錯子模塊用于執(zhí)行步驟s4中的(1),中文與字母糾錯子模塊用于執(zhí)行步驟s4中的(2),英文和拼音糾錯子模塊用于執(zhí)行步驟s4中的(3)。
在具體的實施過程中,如圖6所示,所述學習模塊進行新詞的挖掘的具體過程如下:
s401.基于分詞詞典對語料進行分詞處理,得到分詞碎片;
s402.對分詞碎片進行拼接,得到一個由拼接詞組成的拼接詞庫;
s403.計算拼接分詞詞典中各個拼接詞的詞頻;
s404.若某一拼接詞的詞頻大于所設定的閾值d,則計算其凝固度和自由度;
s405.若某一拼接詞的凝固度和自由度大于設定的閾值e和f,則將該拼接詞確認為新詞,并添加至分詞詞典中,然后執(zhí)行步驟s401。
顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定。對于所屬領域的普通技術人員來說,在上述說明的基礎上還可以做出其它不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明權利要求的保護范圍之內。