專利名稱:基于錯誤模式挖掘的中文搜索引擎查詢糾錯方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及自然語言處理,尤其涉及中文搜索引擎查詢糾錯方法。
背景技術:
在過去的十年里,網絡信息量一直呈幾何級數(shù)式速度增長,搜索引擎已經成為了人們從大量的網頁中獲取有用信息的主要途徑之一。據(jù)CNNIC發(fā)布的《第30次中國互聯(lián)網絡發(fā)展狀況統(tǒng)計報告》中統(tǒng)計,截至2012年6月底,中國搜索引擎用戶規(guī)模達到4.29億,在網民中滲透率為79.7%,較2011年底增長2121萬人,半年增長率為5.2%。現(xiàn)有的搜索引擎使用模式中,用戶主要以輸入關鍵詞的方式來獲取包含該關鍵詞的網頁信息。據(jù)文獻統(tǒng)計,英文搜索引擎的查詢中有10% 15%含有拼寫錯誤;據(jù)對某中文搜索引擎查詢日志的統(tǒng)計,查詢中存在同音別字、近音別字、拼音、英文拼寫等多種錯誤。在不對查詢詞進行糾錯處理的情況下,搜索引擎的關鍵字匹配技術對于用戶輸入的錯誤查詢詞,一般很難獲取到用戶所需的信息。搜索引擎查詢糾錯技術主要用于分析用戶輸入的查詢詞中包含的錯誤,并對查詢詞中的錯誤進行糾正返回正確結果。查詢糾錯技術對于改善用戶的搜索體驗,有著十分重要的作用,已被廣泛應用于百度、Google、Bing等各大搜索引擎中。常見的英文拼寫錯誤包括單詞錯誤(在詞典中找不到該單詞)和上下文錯誤(將一個單詞輸成為另一個單詞,不符合當前上下文語境的需要)。查詢糾錯實際上就是首先判斷查詢的拼寫正確性,然后對于錯誤的查詢給出其正確形式的過程。常用的英文查詢糾錯方法包括:基于噪聲信道模型的查詢糾錯方法和基于隱馬爾科夫模型的查詢糾錯方法。在基于噪聲信道模型的查詢糾錯方法(參見參考文獻I和2)中,基于正確的詞典,為查詢中的每個詞條生成候選詞集合,利用噪聲信道模型計算出在給定的查詢條件下候選詞條出現(xiàn)的概率 ,然后綜合考慮編輯距離和語言模型挑選出最優(yōu)的候選詞條組合。在基于隱馬爾科夫模型的查詢糾錯方法(可參見參考文獻3)中,將查詢中的字符看作觀察狀態(tài),而該查詢的所有可能的正確形式看作隱含狀態(tài),并利用狀態(tài)之間的切換進行糾錯,選出與該查詢對應的最優(yōu)隱含狀態(tài)。在上述方法中,往往采用粗粒度的編輯距離估計查詢及其正確形式之間的轉換概率,這造成了概率預估精度不準并且候選詞條過多等問題。此外,在上述的英文查詢糾錯技術中,英文單詞之間有空格作為天然的分隔符,并且英文查詢中往往僅包含英文字母及標點,故而在采用噪聲信道模型或隱馬爾科夫模型時,僅需考慮獲取和查詢中詞條在一定編輯距離范圍以內的候選詞條即可。然而在中文查詢糾錯技術中,用戶輸入的查詢中往往并不存在詞條之間的分隔符,且錯誤的查詢中可能包含的有漢字、拼音和英文。目前的中文查詢糾錯方法,往往采用模糊音匹配的方法,將中文查詢詞轉換為其模糊音,并通過模糊音匹配找到與其相近的候選,并輸出正確集合中存在的候選詞。這種方法無法處理正確集合以外的中文查詢錯誤,也無法處理中英文、拼音和中文共存的情況。而實際上在中文搜索引擎中,漢字的查詢錯誤類型有多種,例如同音別字、近音別字、形近別字、漢字誤寫為拼音、前后字位置顛倒、多字漏字等。當漢字誤寫為拼音時,也可能發(fā)生英文錯誤類型中所包含的字母缺失、字母寫錯、字母多余、缺少空格、前后字位置顛倒等錯誤??梢姡鲜龅挠⑽牟樵兗m錯方法以及基于模糊音匹配的中文查詢糾錯方法難以滿足中文查詢糾錯的實際需求。上述參考文獻列表如下:參考文獻1:M.Kernighan,K.Church and W.Gale.A spellingcorrection program based on a noisy channel model.1n Proceeding ofC0LING1990,pages205-210, 1990.
參考文獻 2:S.Cucerzan and E.Brill.Spelling correction as aniterative process that exploits the collective knowledge of web users.1nProceedings of the2004Conference on Empirical Methods in Natural LanguageProcessing, pages293_300,2004.
參考文獻3:Ρ.Taylor.Hidden Markov models for grapheme to phonemeconversion.Procs INTERSPEECH, 2005.
發(fā)明內容
因此,本發(fā)明的目的在于克服上述現(xiàn)有技術的缺陷,提出了一種基于錯誤模式挖掘的中文搜索弓I擎查詢糾錯方法。本發(fā)明的目的是通過以下技術方案實現(xiàn)的:一方面,根據(jù)本發(fā)明的一個實施例中提供了一種中文搜索引擎查詢糾錯方法,包括:步驟1,基于搜索引擎查詢日志挖掘錯誤查詢及其正確形式的查詢對,建立錯誤模型;所述錯誤模型是基于對錯誤模式發(fā)生的概率統(tǒng)計而建立的,所述錯誤模式發(fā)生的概率反映的是將某種正確形式寫為某種錯誤形式的可能性的大??;步驟2,基于搜索引擎查詢日志構建語言模型;步驟3,以用戶輸入的查詢作為隱馬爾科夫模型的觀察狀態(tài)序列,基于所建立的錯誤模型產生可能的隱含狀態(tài)并計算發(fā)射概率,基于所建立的語言模型計算初始狀態(tài)概率和隱含狀態(tài)轉換概率,以及基于隱馬爾科夫模型獲取該查詢對應的最優(yōu)隱含狀態(tài)序列,將其作為該查詢對應的正確形式。上述方法中,所述步驟I可包括:步驟11,基于查詢日志挖掘錯誤查詢及其正確形式的查詢對(Q,C);步驟12,從所述查詢對(Q,C)的對應錯誤分段(qiq2q3...qm, C1C2C3...cm)獲取錯誤模式..em),其中ei對應錯誤模式Ci — q”該錯誤模式代表將正確形式Ci寫成錯誤形式Qi的情況;步驟13,通過統(tǒng)計的方式建立Iie元錯誤模型,其中,在錯誤模式G^e2...em)中ei發(fā)生的概率僅取決于其前ne_l個錯誤模式;P(e, I i) = P(e, IΑ — ρ+2..4—J。上述方 法中,所述步驟11可包括基于搜索引擎查詢日志中執(zhí)行下列步驟:a)用戶搜索查詢Q時,點擊了糾錯推薦C,該(Q,C)對即為錯誤查詢及其正確形式的查詢對;b)用戶搜索查詢Q時,其點擊鏈接的標題、摘要中包含查詢Q的糾錯形式C,該(Q, C)對即為錯誤查詢及其正確形式的查詢對;c)用戶搜索查詢Q時,其點擊鏈接的標題、摘要中未包含Q的所有分詞結果,而包含了與Q編輯距離相近的字段C,當(Q,C)之間的編輯距離小于一定閾值時,將其作為錯誤查詢及其正確形式的查詢對處理;和/或d)用戶搜索查詢Q后無點擊行為,而在同一會話中的其他查詢C產生點擊行為,當(Q, C)之間的編輯距離小于一定閾值時,將其作為錯誤查詢及其正確形式的查詢對處理。上述方法中,所述步驟11還可包括:對查詢Q進行編輯,其中對于英文字母的編輯方式有匹配、替換、插入、刪 除、前后字交換、拼音轉漢字等,對于中文字的編輯方式有匹配、同音字替換、近音字替換、形近字替換、前后字交換、尾字補全等,采用動態(tài)規(guī)劃算法獲得由查詢Q到其正確形式C編輯距離最小的編輯方式,從而進一步挖掘更多的錯誤模式
(C1 — q1; C2 — q2, C3 — q3,...,Cni — qm)。上述方法中,所述步驟13)中ne為2,錯誤模式&發(fā)生的概率為:錯誤模式與e,在所獲取的錯誤模式中連續(xù)出現(xiàn)的次數(shù)和錯誤模式Θη與任一錯誤模式在所獲取的錯誤模式中連續(xù)出現(xiàn)的次數(shù)的比值。上述方法中,所述步驟3可包括:步驟31)以用戶輸入的查詢作為隱馬爾科夫模型的觀察狀態(tài)序列O1O2O3...0ni,利用所述語言模型計算隱馬爾科夫模型的初始狀態(tài)概率;步驟32)利用錯誤模型產生可能的隱含狀態(tài),并計算隱馬爾科夫模型的發(fā)射概率;步驟33)利用語言模型計算隱馬爾科夫模型的隱含狀態(tài)轉換概率;步驟34)基于上述的觀察狀態(tài)序列,初始狀態(tài)概率、可能的隱含狀態(tài)、隱含狀態(tài)轉換概率、發(fā)射概率,利用隱馬爾科夫模型獲取該查詢對應的最優(yōu)隱含狀態(tài)序列。上述方法中,所述步驟31)中,所述初始狀態(tài)概率為觀察狀態(tài)O1對應的隱含狀態(tài)S1的概率分布Ki = PiSl = 5* ),\<i<NJi i ^ O
N=1
i=l其中,隱含狀態(tài)S1代表觀察狀態(tài)O1對應的正確形式,S1可有N個值,PiSl =4)代
表隱含狀態(tài)S1取第i個值4的概率,其為■^在搜索引擎查詢日志中出現(xiàn)在首位的次數(shù)與4
在搜索弓I擎查詢日志中出現(xiàn)的次數(shù)的比值。上述方法中,所述步驟32)可包括:對于給定的觀察狀態(tài)序列O1O2O3...0m,所述隱含狀態(tài)序列S1S2S3...Sm中某一狀態(tài)Si的取值取決于觀察狀態(tài)Oi所對應的錯誤模式的發(fā)生概率,將其發(fā)生概率大于某一閾值的每個錯誤模式中的正確形式作為觀察狀態(tài)Oi的可能的隱含狀態(tài),并且將該錯誤模式的發(fā)生概率作為隱馬爾科夫模型中的發(fā)射概率,其代表將該隱含狀態(tài)錯寫成觀察狀態(tài)Oi的概率,其中 l〈i〈=m。上述方法中,所述步驟33)可包括:對于某一隱含狀態(tài)序列S1S2S3...Sm,利用所建立的語言模型計算其中某一個狀態(tài)Si發(fā)生概率如下:p(sr= I A— ,+A—,其中Il1為所建立的語言模型的階數(shù);將該概率作為隱含狀態(tài)轉換概率。又一方面,根據(jù)本發(fā)明的又一個實施例中提供了一種中文搜索引擎查詢糾錯系統(tǒng),包括:錯誤模型裝置,基于搜索引擎查詢日志挖掘錯誤查詢及其正確形式的查詢對,建立錯誤模型;所述錯誤模型是基于對錯誤模式發(fā)生的概率統(tǒng)計而建立的,所述錯誤模式發(fā)生的概率反映的是將某種正確形式寫為某種錯誤形式的可能性的大??;語言模型裝置,基于搜索引擎查詢日志構建語言模型;隱馬爾科夫模型裝置,以用戶輸入的查詢作為隱馬爾科夫模型的觀察狀態(tài)序列,基于所建立的錯誤模型產生可能的隱含狀態(tài)并計算發(fā)射概率,基于所建立的語言模型計算初始狀態(tài)概率和隱含狀態(tài)轉換概率,以及基于隱馬爾科夫模型獲取該查詢對應的最優(yōu)隱含狀態(tài)序列,將其作為該查詢對應的正確形式。又一方面,本發(fā)明還提供一種中文搜索引擎檢索方法,所述方法包括:接收用戶輸入的查詢;利用上述的查詢·糾錯方法,獲取該查詢對應的正確形式;以所獲得的正確形式進行檢索并將檢索結果返回給用戶。又一方面,本發(fā)明還提供一種中文搜索引擎,其包括上述的查詢糾錯系統(tǒng)。與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于:1.針對中文搜索引擎查詢中包含多種不同的錯誤模式,通過挖掘搜索引擎查詢日志中的多種錯誤模式并建模,有效的改善了查詢糾錯中查詢及其正確形式之間轉換概率的預估精度。2.采用隱馬爾科夫模型實現(xiàn)中文查詢糾錯,并利用隱含狀態(tài)的轉移實現(xiàn)對查詢的切分和糾錯,能夠處理中文查詢中包含有漢字、拼音和英文等情況。3.在給定隱馬爾科夫模型的初始概率、狀態(tài)轉移概率、發(fā)射概率的情況下,采用剪枝的維特比算法計算最優(yōu)的隱含狀態(tài)序列,提高了查詢糾錯的準確率和速度。
以下參照附圖對本發(fā)明實施例作進一步說明,其中:圖1為根據(jù)本發(fā)明實施例的中文搜索引擎查詢糾錯方法的流程示意圖;圖2為根據(jù)本發(fā)明實施例的剪枝的維特比算法流程示意圖;圖3為給定觀察狀態(tài)序列到達某一隱含狀態(tài)的可能路徑示意圖。
具體實施例方式為了使本發(fā)明的目的,技術方案及優(yōu)點更加清楚明白,以下結合附圖通過具體實施例對本發(fā)明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。為了更好地理解本發(fā)明,首先對馬爾科夫模型、隱馬爾科夫模型以及基于隱馬爾科夫模型的查詢糾錯方法、N-gram語言模型的基本原理進行簡單的示意性介紹。1.N階馬爾科夫模型對于給定一個隨機變量序列S1, S2, S3...,其中St的取值僅由St_N, St_N+1,…,St^1決定,即:P (St=s I S1=S1, S2=S2…Sh=Sh) =P (St=s | St_N=st_NSt_N+1=st_N+1...Sh=Sw),簡單來說,就是現(xiàn)在的狀態(tài)只取決于該狀態(tài)之前的N個狀態(tài)。而對于一個狀態(tài)轉換序列而言,P (S1Sf sT) =P (S1) P (S21 S1)…
P (St I St—nSt—N+1...。但是,有時狀態(tài)轉換序列S1S2…sT并不能直接得到,而采用隱馬爾科夫模型,可通過觀察數(shù)據(jù)來發(fā)現(xiàn)隱藏在觀察數(shù)據(jù)之后的狀態(tài)轉換序列。以語音識別為例,當觀察到語音信號O1, O2, O3時,根據(jù)這組語音信號推測源端發(fā)送的句子S1S2S3,也就是在所有可能的句子中找出概率最大的。即在已知0l,02,03,...的情況下,求使得條件概率P (S1, S2, S3,...1 O1, O2, O3...)達到最大值的那個句子S1, S2, S3...。對于自動糾錯,就是要根據(jù)帶有拼寫錯誤的語句推測該語句想表達的正確意思。2.隱馬爾科夫模型(Hidden Markov Model, HMM)假設給定觀察序列O1, cv-ot,隱藏在觀察數(shù)據(jù)之后的狀態(tài)轉換序列為S1, S2,…St,其中,St只依賴于St_1; Ot只依賴于st,該隱馬爾科夫模型中的馬爾可夫鏈為一階馬爾可夫鏈。貝IJ可得聯(lián)合概率(對于給定的觀察序列0l,Cvot,其隱含狀態(tài)序列為S1S2-St的概率)為:
權利要求
1.一種中文搜索引擎查詢糾錯方法,所述方法包括: 步驟I,基于搜索引擎查詢日志挖掘錯誤查詢及其正確形式的查詢對,建立錯誤模型;所述錯誤模型是基于對錯誤模式發(fā)生的概率統(tǒng)計而建立的,所述錯誤模式發(fā)生的概率反映的是將某種正確形式寫為某種錯誤形式的可能性的大?。? 步驟2,基于搜索引擎查詢日志構建語言模型; 步驟3,以用戶輸入的查詢作為隱馬爾科夫模型的觀察狀態(tài)序列,基于所建立的錯誤模型產生可能的隱含狀態(tài)并計算發(fā)射概率,基于所建立的語言模型計算初始狀態(tài)概率和隱含狀態(tài)轉換概率,以及基于隱馬爾科夫模型獲取該查詢對應的最優(yōu)隱含狀態(tài)序列,將其作為該查詢對應的正確形式。
2.根據(jù)權利要求1所述的方法,所述步驟I包括: 步驟11,基于查詢日志挖掘錯誤查詢及其正確形式的查詢對(Q,C); 步驟12,從所述查詢對(Q,C)的對應錯誤分段(qiq2q3...qm, C1C2C3...cm)獲取錯誤模式..em),其中ei對應錯誤模式Ci — q”該錯誤模式代表將正確形式Ci寫成錯誤形式Qi的情況; 步驟13,通過統(tǒng)計的方式建立元錯誤模型,其中,在錯誤模式(eie2e2...em)中力發(fā)生的概率僅取決于其前H個錯誤模式(Α- ν+Λ-#…A-1).
3.根據(jù)權利要求2所述的方法,其中,所述步驟11包括基于搜索引擎查詢日志中執(zhí)行下列步驟: a)用戶搜索查詢Q時,點擊了糾錯推薦C,該(Q,C)對即為錯誤查詢及其正確形式的查詢對; b)用戶搜索查詢Q時,其點擊鏈接的標題、摘要中包含查詢Q的糾錯形式C,該(Q,C)對即為錯誤查詢及其正確形式的查詢對; c)用戶搜索查詢Q時,其點擊鏈接的標題、摘要中未包含Q的所有分詞結果,而包含了與Q編輯距離相近的字段C,當(Q,C)之間的編輯距離小于一定閾值時,將其作為錯誤查詢及其正確形式的查詢對處理;和/或 d)用戶搜索查詢Q后無點擊行為,而在同一會話中的其他查詢C產生點擊行為,當(Q, C)之間的編輯距離小于一定閾值時,將其作為錯誤查詢及其正確形式的查詢對處理。
4.根據(jù)權利要求3所述的方法,所述步驟11還包括:對查詢Q進行編輯,其中對于英文字母的編輯方式有匹配、替換、插入、刪除、前后字交換、拼音轉漢字等,對于中文字的編輯方式有匹配、同音字替換、近音字替換、形近字替換、前后字交換、尾字補全等,采用動態(tài)規(guī)劃算法獲得由查詢Q到其正確形式C編輯距離最小的編輯方式,從而進一步挖掘更多的錯誤模式(C1 — q” C2 — q2, C3 — q3,...,cm — qm)。
5.根據(jù)權利要求2所述的方法,所述步驟13)中\(zhòng)為2,錯誤模式^發(fā)生的概率為:錯誤模式與ei在所獲取的錯誤模式中連續(xù)出現(xiàn)的次數(shù)和錯誤模式eg與任一錯誤模式在所獲取的錯誤模式中連續(xù)出現(xiàn)的次數(shù)的比值。
6.根據(jù)權利要求1所述的方法,所述步驟3包括: 步驟31)以用戶輸入的查詢作為隱馬爾科夫模型的觀察狀態(tài)序列O1O2O3...0m,利用所述語言模型計算隱馬爾科夫模型的初始狀態(tài)概率; 步驟32)利用錯誤模型產生可能的隱含狀態(tài)并計算隱馬爾科夫模型的發(fā)射概率; 步驟33)利用語言模型計算隱馬爾科夫模型的隱含狀態(tài)轉換概率; 步驟34)基于上述的觀察狀態(tài)序列,初始狀態(tài)概率、可能的隱含狀態(tài)、隱含狀態(tài)轉換概率、發(fā)射概率,利用隱馬爾科夫模型獲取該查詢對應的最優(yōu)隱含狀態(tài)序列。
7.根據(jù)權利要求6所述的方法,所述步驟31)中,所述初始狀態(tài)概率為觀察狀態(tài)O1對應的隱含狀態(tài)S1的概率分布31 ={> J,
8.根據(jù)權利要求6所述的方法,所述步驟32)包括: 對于給定的觀察狀態(tài)序列O1O2O3...0ni,所述隱含狀態(tài)序列S1S2S3...Sm中某一狀態(tài)Si的取值取決于觀察狀態(tài)Oi所對應的錯誤模式的發(fā)生概率,將其發(fā)生概率大于某一閾值的每個錯誤模式中的正確形式作為觀察狀態(tài)Oi的可能的隱含狀態(tài),并且將該錯誤模式的發(fā)生概率作為隱馬爾科夫模型中的發(fā)射概率,其代表將該隱含狀態(tài)錯寫成觀察狀態(tài)Oi的概率,其中l(wèi)〈i〈=m0
9.根據(jù)權利要求6所述的方法,所述步驟33)包括: 對于某一隱含狀態(tài)序列S1S2S3...Sm,利用所建立的語言模型計算其中某一個狀態(tài)Si發(fā)生概率如下:
10.一種中文搜索引擎檢索方法,所述方法包括: 接收用戶輸入的查詢; 利用權利要求1-9之一所述的方法,獲取該查詢對應的正確形式; 以所獲得的正確形式進行檢索并將檢索結果返回給用戶。
11.一種中文搜索引擎查詢糾錯系統(tǒng),所述系統(tǒng)包括: 錯誤模型裝置,基于搜索引擎查詢日志挖掘錯誤查詢及其正確形式的查詢對,建立錯誤模型;所述錯誤模型是基于對錯誤模式發(fā)生的概率統(tǒng)計而建立的,所述錯誤模式發(fā)生的概率反映的是將某種正確形式寫為某種錯誤形式的可能性的大??; 語言模型裝置,基于搜索引擎查詢日志構建語言模型; 隱馬爾科夫模型裝置,以用戶輸入的查詢作為隱馬爾科夫模型的觀察狀態(tài)序列,基于所建立的錯誤模型產生可能的隱含狀態(tài)并計算發(fā)射概率,基于所建立的語言模型計算初始狀態(tài)概率和隱含狀態(tài)轉換概率,以及基于隱馬爾科夫模型獲取該查詢對應的最優(yōu)隱含狀態(tài)序列,將其作為該查詢對應的正確形式。
12.—種中文搜索引擎,包括如權利要求11所述的查詢糾錯系統(tǒng)。
全文摘要
本發(fā)明提供一種基于錯誤模式挖掘的中文搜索引擎查詢糾錯方法。該方法通過挖掘搜索引擎查詢日志中的錯誤模式并建模,有效的改善了查詢糾錯系統(tǒng)中查詢及其正確形式之間轉換概率的預估精度;利用隱馬爾科夫模型進行查詢糾錯,通過隱含狀態(tài)的轉移實現(xiàn)對查詢的切分和糾錯,提高了查詢糾錯的準確率和速度。
文檔編號G06F17/30GK103246714SQ20131014948
公開日2013年8月14日 申請日期2013年4月26日 優(yōu)先權日2013年4月26日
發(fā)明者熊錦華, 程舒楊, 程學旗, 公帥, 顓悅, 張 成, 廖華明 申請人:中國科學院計算技術研究所, 人民搜索網絡股份公司