專利名稱:一種查詢修正方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及搜索引擎技術(shù),特別是涉及搜索引擎中一種查詢修正方法及系統(tǒng)。
背景技術(shù):
查詢是指用戶在使用搜索引擎時的輸入,在此特指文字輸入。查詢是用戶信息需求的表達(dá),搜索引擎只有正確地“理解”用戶的查詢,才能夠?yàn)橛脩籼峁┚珳?zhǔn)的檢索結(jié)果,為用戶提供高質(zhì)量的服務(wù)。但是,目前的搜索引擎在分析用戶的查詢時,準(zhǔn)確性會受到幾種因素的影響和制約,如單詞拼寫錯誤、詞形錯誤、輸入詞不完整、中文同音詞等等,使得搜索引擎無法正確“理解”用戶意圖,返回的檢索結(jié)果不能滿足用戶需求。
現(xiàn)有的搜索引擎,如谷歌(Google)、有道、百度等,都非常重視查詢處理方面的功能,提供了查詢補(bǔ)全、拼寫錯誤檢查等查詢修正功能。例如,在Google中輸入“computer scien”,返回結(jié)果頁面會提示“Do you meancomputerscience”,自動將單詞補(bǔ)全,并且檢索結(jié)果也是與“computer science”相關(guān)的信息。
但是,目前的搜索引擎中常用的查詢修正方法都是單一或孤立的,或者能夠進(jìn)行“拼寫檢查”,或者能夠?qū)崿F(xiàn)“詞形補(bǔ)全”,如果輸入的查詢中含有多處錯誤,現(xiàn)有的方法很難同時處理。例如,如果輸入“computing scien nadtechno”,目前的搜索引擎使用的方法均不能正確處理,均不能給出“computerscience and technology”這樣的提示?,F(xiàn)有的方法即使對所述查詢進(jìn)行多次處理,比如先“詞形補(bǔ)全”后“拼寫檢查”,也很難給出較準(zhǔn)確的提示,因?yàn)槎啻翁幚聿荒芎芎玫嘏袛嘣撨x用哪個詞作為提示,例如“scien”可以補(bǔ)全為“science”和“scientist”,“techno”可以補(bǔ)全為“technology”、“technological”等。因此,針對用戶輸入的查詢中可能存在多種錯誤或不利于搜索引擎正確分析用戶檢索意圖的情況,都會導(dǎo)致檢索失敗。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種查詢修正方法及系統(tǒng),以解決目前的搜索引擎無法對用戶輸入的多種錯誤查詢進(jìn)行正確分析,從而導(dǎo)致檢索失敗的問題。
為解決上述技術(shù)問題,根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開了以下技術(shù)方案 一種查詢修正方法,包括 利用檢索資源預(yù)置語言模型; 調(diào)用相應(yīng)的修正操作,對原始輸入的每個查詢詞進(jìn)行修正,得到對應(yīng)每個查詢詞的多種表示,其中包括原始輸入的表示; 根據(jù)每個查詢詞的多種表示,得到多種組合形式的詞序列; 調(diào)用所述語言模型計(jì)算詞序列出現(xiàn)的概率,并將出現(xiàn)概率高的詞序列確定為查詢建議結(jié)果。
其中,所述語言模型包括一元和/或多元語言模型。
其中,所述二元語言模型的建立步驟包括對全部檢索資源進(jìn)行預(yù)處理,得到各詞項(xiàng);統(tǒng)計(jì)各詞項(xiàng)在全部檢索資源中的出現(xiàn)次數(shù),其中包括一元詞項(xiàng)和二元詞項(xiàng)的出現(xiàn)次數(shù);將全部一元詞項(xiàng)和二元詞項(xiàng)的出現(xiàn)次數(shù)代入下述公式進(jìn)行計(jì)算 P(w)=C(w)/C(*),表示一元詞項(xiàng)的出現(xiàn)概率,其中C(w)表示一元詞w出現(xiàn)的次數(shù),表示全部一元詞項(xiàng)的次數(shù)之和; 表示在包含詞wj的條件下詞wi出現(xiàn)的概率,其中C(wi,wj)表示二元詞wi和wj的共同出現(xiàn)次數(shù),表示全部一元詞項(xiàng)的次數(shù)之和,表示全部二元詞項(xiàng)的次數(shù)之和。
其中,所述調(diào)用語言模型計(jì)算詞序列出現(xiàn)概率的步驟包括對應(yīng)每個詞序列S=w1w2…wn,將語言模型中相應(yīng)的P(w)和P(wi|wj)值代入公式P(w1w2…wn)=P(w1)P(w2|w1)…P(wn|wn-1)計(jì)算該詞序列出現(xiàn)的概率。
優(yōu)選的,所述調(diào)用語言模型計(jì)算詞序列出現(xiàn)概率的步驟包括 步驟1,對第一個查詢詞,調(diào)用語言模型中P(w)的計(jì)算結(jié)果得到每種查詢詞表示的出現(xiàn)概率,并按照預(yù)定個數(shù)選取出現(xiàn)概率高的查詢詞表示; 步驟2,對第二個查詢詞,利用公式P(w1w2)=P(w1)P(w2|w1)計(jì)算包含第一和第二查詢詞的詞序列出現(xiàn)概率,并按照預(yù)定個數(shù)選取出現(xiàn)概率高的詞序列;其中w1為步驟1中選出的第一個查詢詞表示,w2為第二個查詢詞的各種表示; 按照步驟2依次對每個查詢詞,利用下述公式P(w1w2…wn)=P(w1)P(w2|w1)…P(wn|wn-1)計(jì)算詞序列出現(xiàn)的概率,并最終得到預(yù)定個數(shù)的包含所有查詢詞的詞序列S=w1w2…wn。
所述方法還包括將所述查詢建議結(jié)果作為提示信息顯示,或者直接根據(jù)查詢建議結(jié)果進(jìn)行檢索。
一種查詢修正系統(tǒng),包括 模型生成單元,用于利用檢索資源預(yù)置語言模型; 數(shù)據(jù)接口,用于接收查詢輸入; 查詢處理引擎,用于調(diào)用相應(yīng)的修正操作,對原始輸入的每個查詢詞進(jìn)行修正,得到對應(yīng)每個查詢詞的多種表示,其中包括原始輸入的表示; 查詢建議生成單元,用于根據(jù)每個查詢詞的多種表示,得到多種組合形式的詞序列;并調(diào)用所述語言模型計(jì)算詞序列出現(xiàn)的概率,將出現(xiàn)概率高的詞序列確定為查詢建議結(jié)果。
所述系統(tǒng)還包括預(yù)處理單元,用于對原始輸入進(jìn)行分詞或斷詞預(yù)處理,得到原始輸入的詞序列。
其中,所述查詢建議生成單元生成的查詢建議結(jié)果通過數(shù)據(jù)接口作為提示信息顯示,或者直接發(fā)送給檢索單元進(jìn)行檢索。
其中,所述模型生成單元可建立一元或多元語言模型,其中,建立二元語言模型的過程包括對全部檢索資源進(jìn)行預(yù)處理,得到各詞項(xiàng);統(tǒng)計(jì)各詞項(xiàng)在全部檢索資源中的出現(xiàn)次數(shù),其中包括一元詞項(xiàng)和二元詞項(xiàng)的出現(xiàn)次數(shù);將全部一元詞項(xiàng)和二元詞項(xiàng)的出現(xiàn)次數(shù)代入下述公式進(jìn)行計(jì)算 P(w)=C(w)/C(*),表示一元詞項(xiàng)的出現(xiàn)概率,其中C(w)表示一元詞w出現(xiàn)的次數(shù),表示全部一元詞項(xiàng)的次數(shù)之和; 表示在包含詞wj的條件下詞wi出現(xiàn)的概率,其中C(wi,wj)表示二元詞wi和wj的共同出現(xiàn)次數(shù),表示全部一元詞項(xiàng)的次數(shù)之和,表示全部二元詞項(xiàng)的次數(shù)之和。
優(yōu)選的,所述查詢建議生成單元生成查詢建議結(jié)果的過程包括 步驟1,對第一個查詢詞,調(diào)用語言模型中P(w)的計(jì)算結(jié)果得到每種查詢詞表示的出現(xiàn)概率,并按照預(yù)定個數(shù)選取出現(xiàn)概率高的查詢詞表示; 步驟2,對第二個查詢詞,利用公式P(w1w2)=P(w1)P(w2|w1)計(jì)算包含第一和第二查詢詞的詞序列出現(xiàn)概率,并按照預(yù)定個數(shù)選取出現(xiàn)概率高的詞序列;其中w1為步驟1中選出的第一個查詢詞表示,w2為第二個查詢詞的各種表示; 按照步驟2依次對每個查詢詞,利用下述公式P(w1w2…wn)=P(w1)P(w2|w1)…P(wn|wn-1)計(jì)算詞序列出現(xiàn)的概率,并最終得到預(yù)定個數(shù)的包含所有查詢詞的詞序列S=w1w2…wn。
根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開了以下技術(shù)效果 本發(fā)明能夠統(tǒng)一地處理查詢中多種輸入錯誤或輸入不完整的問題,如拼寫錯誤、詞形不全等,達(dá)到對查詢自動修正、幫助用戶有效地利用搜索引擎的目的。通過對用戶輸入的查詢詞進(jìn)行多種修正分析,每種修正操作針對一個查詢詞,如拼寫檢查、詞形補(bǔ)全、詞形還原、同義詞替換等,得到對應(yīng)每個查詢詞的多種表示,進(jìn)而得到多種組合形式的詞序列;然后利用預(yù)先根據(jù)檢索資源建立好的語言模型,計(jì)算各個詞序列的出現(xiàn)概率,并將出現(xiàn)概率高的詞序列作為查詢建議結(jié)果。該結(jié)果既可作為顯式提示,也可作為隱式的查詢傳給系統(tǒng)的檢索部分進(jìn)行檢索,盡可能幫助用戶檢索到滿意的結(jié)果,提高用戶使用搜索引擎的效率。
圖1是本發(fā)明實(shí)施例所述查詢修正方法的步驟流程圖; 圖2是本發(fā)明優(yōu)選實(shí)施例中查詢內(nèi)部數(shù)據(jù)結(jié)構(gòu)的示意圖; 圖3是圖2所示實(shí)施例中的求得前n個最優(yōu)結(jié)果的過程示意圖; 圖4是圖2所示實(shí)施例中查詢建議結(jié)果的頁面顯示效果圖; 圖5是本發(fā)明實(shí)施例所述查詢修正系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式 為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。
本發(fā)明實(shí)施例提供了一種查詢修正方法,針對用戶輸入的檢索查詢中,可能存在多種錯誤或者不利于搜索引擎正確分析用戶檢索意圖,導(dǎo)致檢索失敗的情況,通過對用戶輸入的查詢詞進(jìn)行多種修正分析,利用事先根據(jù)檢索資源建立好的語言模型作為衡量標(biāo)準(zhǔn),然后通過有效的搜索算法搜索出最符合語言模型的若干查詢修正建議,既可作為顯式提示,也可作為隱式的查詢傳給檢索部分檢索,盡可能幫助用戶檢索到預(yù)期的結(jié)果,避免用戶多次修改查詢,提高用戶使用搜索引擎的效率。
參照圖1,是本發(fā)明實(shí)施例所述查詢修正方法的步驟流程圖。
其中,步驟101-103是利用檢索資源預(yù)置語言模型的過程,如下 步驟101,對所有的檢索資源(如網(wǎng)頁)進(jìn)行處理。具體過程包括根據(jù)具體需求提取網(wǎng)頁的正文,并根據(jù)網(wǎng)頁的編碼對正文進(jìn)行轉(zhuǎn)換(主要對非英文文字編碼有影響);然后對中文文本進(jìn)行分詞處理,對英文文本進(jìn)行斷詞處理,根據(jù)應(yīng)用需求還可以進(jìn)行詞形還原、字母小寫化等操作。經(jīng)過上述處理,得到全部檢索資源的各個詞項(xiàng),其中包括中文詞項(xiàng)或英文詞項(xiàng)。
步驟102,統(tǒng)計(jì)各詞項(xiàng)在全部檢索資源中出現(xiàn)的次數(shù)。例如,檢索資源中含有“abcdabef”,統(tǒng)計(jì)的結(jié)果為“a:2,b:2,c:1,d:1,e:1,f:1”。此外,為了下面構(gòu)建語言模型做準(zhǔn)備,除了統(tǒng)計(jì)一個詞出現(xiàn)的次數(shù),還需要統(tǒng)計(jì)兩個詞的共同出現(xiàn)次數(shù),例如“a_b:2,b_c:1,c_d:1,d_a:1...”。
當(dāng)檢索資源數(shù)據(jù)量大的情況下,通常采用多路歸并或者分布式處理方式統(tǒng)計(jì),即先將資源分為若干組,逐組統(tǒng)計(jì),最后再合并。對于三個詞和三個詞以上的統(tǒng)計(jì)原理,與二個詞的統(tǒng)計(jì)原理一致,但是統(tǒng)計(jì)數(shù)據(jù)量會更大。所述統(tǒng)計(jì)方式與語言沒有關(guān)系,適用于中文、英文及其它語言。
本實(shí)施例中,統(tǒng)計(jì)的是相鄰兩個詞或多個詞的共同出現(xiàn)次數(shù),當(dāng)然,根據(jù)不同的模型建立過程,也可以統(tǒng)計(jì)不相鄰的多個詞,或者按照其他規(guī)則進(jìn)行統(tǒng)計(jì)。
步驟103,建立統(tǒng)計(jì)語言模型。該語言模型提供一個概率分布,用于后續(xù)的計(jì)算過程中直接調(diào)用。基于以上步驟的處理,可以建立一元、二元或多元語言模型,其中所述多元是指基于多個詞的出現(xiàn)次數(shù)建立的模型。下面將以二元語言模型為例進(jìn)行說明,如果原始的檢索資源數(shù)據(jù)足夠充分,采用三元詞的模型會優(yōu)于二元詞的語言模型,三元或更多元模型的建立原理與二元模型相同,在此不再詳述。
二元語言模型通過鄰接兩個詞的統(tǒng)計(jì)信息描述整句的出現(xiàn)概率。建立語言模型,即要在步驟102的數(shù)據(jù)基礎(chǔ)上預(yù)先計(jì)算出P(w)和P(wi|wj),供后續(xù)處理中估算概率使用。P(w)和P(wi|wj)的計(jì)算公式如下 P(w)=C(w)/C(*)I 公式I表示一元詞項(xiàng)的出現(xiàn)概率,其中C(w)表示一元詞w出現(xiàn)的次數(shù),表示全部一元詞項(xiàng)的次數(shù)之和; 公式II是一個條件概率公式,表示在包含詞wj的條件下詞wi出現(xiàn)的概率,其中C(wi,wj)表示二元詞wi和wj的共同出現(xiàn)次數(shù),表示全部一元詞項(xiàng)的次數(shù)之和,表示全部二元詞項(xiàng)的次數(shù)之和。
利用上述公式處理后的結(jié)果是全部檢索資源中,所有一元詞項(xiàng)和二元詞項(xiàng)代入公式的計(jì)算值,這些結(jié)果用于后續(xù)步驟的調(diào)用。
上述步驟101-103的過程需要檢索系統(tǒng)預(yù)先進(jìn)行處理,建立好語言模型后再供用戶查詢使用。下面的步驟是用戶在查詢輸入時,檢索系統(tǒng)進(jìn)行的查詢修正操作。
步驟104,用戶在搜索框中輸入查詢,并觸發(fā)查詢事件。本發(fā)明實(shí)施例所針對的查詢一般是指自然語言輸入,不針對“布爾查詢”等有結(jié)構(gòu)查詢,如“+computer-science(and||or)”。如果用戶輸入的是“computing sciennad techno”,用戶希望的真實(shí)輸入是“computer science and technology”,但是其中“computer”被誤輸入成“computing”,“science”和“techno”沒有輸入完整,“and”被錯誤拼寫為“nad”。
步驟105,對獲得的查詢詞進(jìn)行分詞或斷詞預(yù)處理,變成詞序列。所述分詞處理是為了獲取查詢詞中最常用的詞根,例如查詢詞為“中國政府推出知識產(chǎn)權(quán)新舉措”,分詞結(jié)果可能為“中國”、“政府”、“知識產(chǎn)權(quán)”、“舉措”,或者是“中國政府”、“知識產(chǎn)權(quán)舉措”等等,能有效地排除不是常用組合的搭配,例如“國政”,這樣可以減少搜索的詞根。斷詞處理是指將輸入的英文單詞與標(biāo)點(diǎn)符號分割開,如“good job!”處理后為“good”、“job”、“!”。根據(jù)具體需求,還需要去掉標(biāo)點(diǎn)符號或者一些“停用詞”(指對查詢分析、修正沒有幫助的詞)。上例“computing scien nad techno”中,分析后的結(jié)果為“computing”,“scien”,“nad”,“techno”。
步驟106,對分詞或斷詞處理后的每個查詢詞進(jìn)行修正操作。對于采用什么樣的修正操作,需要結(jié)合實(shí)際需求而定,本例中使用“拼寫檢查”、“詞形還原”和“詞形補(bǔ)全”進(jìn)行說明,但本發(fā)明并不限于所述幾種修正操作。系統(tǒng)對“computing”進(jìn)行處理,發(fā)現(xiàn)通過“詞形還原”可以得到詞“computer”和“compute”;對“scien”進(jìn)行處理,通過“詞形補(bǔ)全”可得到的查詢詞有“science”、“scientist”和“scientists”;對“nad”處理,通過“拼寫檢查”得到“and”和“nap”;對“techno”處理后得到“technology”、“technological”等。
通過步驟106,對應(yīng)每個查詢詞可以得到多種表示,將查詢詞的每種表示組合起來,又可以得到多種組合形式的詞序列,即得到多組候選結(jié)果,例如“computer scientist and technological”、“computing scientists naptechnology”等等,其中包括用戶的原始輸入“computing scien nad techno”。
步驟107,調(diào)用語言模型中的計(jì)算值,采用下述公式計(jì)算每個詞序列在檢索資源中的出現(xiàn)概率,并將出現(xiàn)概率高的詞序列作為查詢建議結(jié)果。
假設(shè)某個詞序列為S=w1w2…wn,利用語言模型估算該詞序列出現(xiàn)概率的公式為(仍以二元語言模型為例) P(w1w2…wn)=P(w1)P(w2|w1)…P(wn|wn-1)III 公式III中,每一項(xiàng)概率P(w1)、P(w2|w1)、…、P(wn|wn-1)可直接調(diào)用二元語言模型中的計(jì)算值。因此,對于每一組候選結(jié)果,可以調(diào)用語言模型計(jì)算其出現(xiàn)概率,相應(yīng)的概率值越大表示該組建議結(jié)果越符合步驟103建立的語言模型。
本實(shí)施例以所述語言模型作為衡量標(biāo)準(zhǔn),因?yàn)椴襟E103建立的語言模型是從檢索資源中建立起來的,因此概率值越大的查詢建議結(jié)果與檢索資源的匹配程度越大,這樣有利于搜索引擎檢索到用戶期望的資源。
步驟108,對查詢建議結(jié)果進(jìn)行處理,或者顯示給用戶作為提示信息供選擇,或者作為隱式的查詢傳送給系統(tǒng)的檢索部分進(jìn)行檢索。
針對上述步驟107,本發(fā)明還提供了一種獲得查詢建議結(jié)果的優(yōu)選實(shí)施例,該實(shí)施例可以快速求解前預(yù)定個數(shù)的最優(yōu)結(jié)果,極大地提高了系統(tǒng)的處理效率。具體方法如下 首先,在步驟106的基礎(chǔ)上構(gòu)建一個有向圖結(jié)構(gòu),參照圖2所示,兩個結(jié)點(diǎn)之間的邊并不唯一。構(gòu)建有向圖的步驟如下 (1)若經(jīng)步驟105分析后有n個詞項(xiàng),則圖的結(jié)點(diǎn)為n+1個,編號為0...n; (2)圖中用邊表示一個詞項(xiàng),首先添加原始輸入的查詢詞,第i個查詢詞對應(yīng)的邊為(i,i+1),由此構(gòu)成一條路,即得到原始輸入的詞序列; (3)對每一個查詢詞,添加由修正操作得到的詞,以“computing”為例,由修正操作得到“compute”、“computer”,把這兩個詞添加到0、1節(jié)點(diǎn)之間。由此得到多條路,即得到多組詞序列。
然后,在構(gòu)建好有向圖的基礎(chǔ)上,結(jié)合二元語言模型并利用公式III,采用動態(tài)算法求得最優(yōu)結(jié)果,即對應(yīng)出現(xiàn)概率最大的路所對應(yīng)的詞序列。在查詢提示中,有時最優(yōu)結(jié)果并不是用戶真正想要的,這是因?yàn)椴煌脩舻男畔⑿枨蟛煌耆恢?,有很大的主觀性。因此,本步驟在所述動態(tài)算法的基礎(chǔ)上還給出了求解前n個最優(yōu)結(jié)果的方法。
參照圖3,是所述求得前n個最優(yōu)結(jié)果的過程示意圖,其中對每條邊進(jìn)行了編號。方法描述如下 (1)對第一個查詢詞,調(diào)用語言模型中P(w)的計(jì)算結(jié)果得到每種查詢詞表示的出現(xiàn)概率,并按照預(yù)定個數(shù)選取出現(xiàn)概率高的查詢詞表示; 例如,圖3中第一個查詢詞有三種表示(1)“computing”,(5)“compute”,(6)“computer”。根據(jù)二元語言模型中的P(w)值進(jìn)行排序,從高到底的順序是(6)(1)(5)。假設(shè)選取的預(yù)定個數(shù)n為4,則保留排序考前的前4條邊,超過個數(shù)限制的邊被去除。本例中全部保留(6)(1)(5)。
(2)對第二個查詢詞,利用公式P(w1w2)=P(w1)P(w2|w1)計(jì)算包含第一和第二查詢詞的詞序列出現(xiàn)概率,并按照預(yù)定個數(shù)選取出現(xiàn)概率高的詞序列;其中w1為步驟(1)中選出的第一個查詢詞表示,w2為第二個查詢詞的各種表示; 例如,圖3中第二個查詢詞有四種表示(2)“scien”,(7)“science”,(8)“scientist”,(9)“scientists”。分別將第一查詢詞的各種表示(6)、(1)、(5)與第二查詢詞的各種表示組合(2)、(7)、(8)、(9),并利用公式(3),將二元語言模型中的相應(yīng)值代入公式P(w1w2)=P(w1)P(w2|w1)分別計(jì)算出現(xiàn)概率,然后將計(jì)算值從高到底進(jìn)行排序,最后選擇前4個詞序列為(6)(7)、(6)(8)、(1)(7)、(1)(8)。
(3)按照步驟(2)的方法依次對每個查詢詞,利用公式IIIP(w1w2…wn)=P(w1)P(w2|w1)…P(wn|wn-1)計(jì)算詞序列出現(xiàn)的概率,并最終得到預(yù)定個數(shù)的包含所有查詢詞的詞序列S=w1w2…wn。
例如,對包含第三個查詢詞的詞序列,排序后得到(6)(7)(11)、(6)(8)(11)、(1)(7)(11)、(1)(8)(11);對包含第四個查詢詞的詞序列,排序后得到最優(yōu)路徑的表示結(jié)果(6)(7)(11)(12),次優(yōu)路徑(6)(8)(11)(12)、(1)(7)(11)(13)、(1)(8)(11)(12)。其中,最優(yōu)的建議結(jié)果(6)(7)(11)(12)對應(yīng)著圖中從0號結(jié)點(diǎn)到n+1號結(jié)點(diǎn)的一條路,即(0,1)(1,2)…(n,n+1),如圖3中粗線所表示。
參照圖4,是查詢建議結(jié)果的頁面顯示效果圖。本例中,建議結(jié)果按照“生成概率”由高到低排序,結(jié)果最多為10個。第一項(xiàng)結(jié)果為最優(yōu)結(jié)果,也就是與檢索資源中最接近的查詢建議結(jié)果,可直接作為搜索引擎的“查詢建議”,供用戶參考。
由上可知,所述優(yōu)選方法是在每添加一個查詢詞的計(jì)算結(jié)果后進(jìn)行排序篩選,選取出符合語言模型的幾個詞序列用于后續(xù)計(jì)算,對在語言模型中出現(xiàn)概率低的詞序列不再進(jìn)行后續(xù)計(jì)算,這樣可以節(jié)省大量的計(jì)算量,從而提高計(jì)算效率。
需要說明的是,本發(fā)明實(shí)施例提供的方法不受語言限制,既可以用于英文,也可以用于中文及其他語言的查詢修正處理。由于每種語言有各自的特性,需要根據(jù)實(shí)際應(yīng)用選擇相應(yīng)的查詢修正操作,但原理都是完全一致的,差別在于對每種語言的預(yù)處理和選用的查詢詞修正方法不同,比如中文會用到“中文自動分詞”技術(shù),英文會用到“英文斷詞技術(shù)”等。
以中文處理為例,中文輸入也會出現(xiàn)類似英文的“拼寫錯誤”的問題,即“錯別字”。比如“不加思索”(應(yīng)為“不假思索”)、“鳥魯木齊”(應(yīng)為“烏魯木齊”)。這樣的錯誤,既有可能是用戶主觀上輸入錯誤(比如,沒有記準(zhǔn)是哪個字),也有可能是客觀輸入造成的(比如,使用拼音輸入法選錯了字)。一般情況下,含有“錯別字”的中文輸入,會影響搜索引擎的檢索結(jié)果,找不到用戶真正想要的信息。除此之外,中文中也同樣可以使用“詞形補(bǔ)全”的查詢處理方法,比如,輸入為“計(jì)算”,提示“計(jì)算機(jī)”、“計(jì)算器”等。
在本發(fā)明實(shí)施例提供的方法下,結(jié)合多種查詢擴(kuò)展方法,可以實(shí)現(xiàn)中文查詢的多種方式處理。舉例說明假設(shè)輸入為“查照英字母”,首先進(jìn)行中文分詞,結(jié)果為“查照”、“英”、“字母”。然后對“查照”進(jìn)行“錯別字檢查”,發(fā)現(xiàn)候選詞有“查找”;對“英”處理,發(fā)現(xiàn)“詞形補(bǔ)全”能給出“英文”、“英國”、“英雄”等結(jié)果;對“字母”進(jìn)行“同音詞替換”,能給出候選詞“字幕”。結(jié)合預(yù)先建立好的“中文語言模型”,對全部候選詞的組合進(jìn)行高效搜索,發(fā)現(xiàn)“查找英文字幕”最有可能是體現(xiàn)用戶本意的輸入。
針對上述查詢修正方法,本發(fā)明還提供了一種查詢修正系統(tǒng)的實(shí)施例。參圖5所示,是所述系統(tǒng)實(shí)施例的結(jié)構(gòu)圖,所述系統(tǒng)包括模型生成單元501、數(shù)據(jù)接口502、預(yù)處理單元503、查詢處理引擎504、查詢建議生成單元505。
模型生成單元501用于利用檢索資源建立語言模型,包括一元模型、二元模型、三元模型,或根據(jù)應(yīng)用需要建立更多元的模型。以二元語言模型為例,該模型利用公式I和II給出了全部檢索資源中各個一元詞項(xiàng)的P(w)值和二元詞項(xiàng)的P(wi|wj)值。模型的建立過程可參見前述步驟101-103,在此不再詳述。
數(shù)據(jù)接口502提供了所述查詢修正系統(tǒng)與外部的接口,用于接收查詢輸入,并返回查詢建議結(jié)果。用戶輸入的查詢詞經(jīng)數(shù)據(jù)接口502傳送到預(yù)處理單元503進(jìn)行預(yù)處理,預(yù)處理過程包括分詞或斷詞等一系列處理,然后得到原始輸入的詞序列。
經(jīng)預(yù)處理的詞序列傳送到查詢處理引擎504進(jìn)行修正處理,所述查詢處理引擎504用于調(diào)用各種修正操作對詞序列中的每個查詢詞進(jìn)行修正,得到對應(yīng)每個查詢詞的多種表示,即得到多個候選詞。圖中僅列舉了“拼寫檢查”、“詞形補(bǔ)全”、“詞形還原”和“同義詞替換”幾種修正操作,還可以根據(jù)實(shí)際應(yīng)用增加其他修正功能。
經(jīng)修正后的每個查詢詞可以得到多個候選詞,將這些候選詞按照不同方式組合,可以得到多組詞序列,即多組候選結(jié)果。查詢建議生成單元505用于調(diào)用語言模型計(jì)算每個詞序列在檢索資源中的出現(xiàn)概率,并將出現(xiàn)概率高的詞序列作為查詢建議結(jié)果,以二元語言模型為例的計(jì)算公式可參見前述公式III。
優(yōu)選的,查詢建議生成單元505提供了一種得到前n個最優(yōu)結(jié)果的方法,可參見圖3所示,由此得到的第一項(xiàng)結(jié)果為最優(yōu)結(jié)果,也就是與檢索資源中最接近的查詢建議結(jié)果,可直接作為搜索引擎的“查詢建議”,供用戶參考。第二項(xiàng)為次優(yōu)結(jié)果,第三項(xiàng)及排序靠后的幾項(xiàng)都可作為次優(yōu)查詢建議結(jié)果。
查詢建議生成單元505生成的查詢建議結(jié)果既可以作為提示信息通過數(shù)據(jù)接口502顯示,供用戶選擇;也可以傳送到檢索單元,作為隱式的查詢建議直接進(jìn)行檢索。
綜上所述,本發(fā)明實(shí)施例提供了一種新穎的查詢修正方法,針對用戶的查詢經(jīng)常含有錯誤的情況,通過自動修正或查詢提示等方式使用戶在輸入錯誤的情況下,搜索引擎仍然能夠檢索出用戶預(yù)期的結(jié)果,避免用戶多次修改查詢,幫助用戶提高使用搜索引擎的效率。
圖5所示系統(tǒng)中未詳述的部分可以參見圖1所示方法的相關(guān)部分,為了篇幅考慮,在此不再詳述。
以上對本發(fā)明所提供的一種查詢修正方法及系統(tǒng),進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種查詢修正方法,其特征在于,包括
利用檢索資源預(yù)置語言模型;
調(diào)用相應(yīng)的修正操作,對原始輸入的每個查詢詞進(jìn)行修正,得到對應(yīng)每個查詢詞的多種表示,其中包括原始輸入的表示;
根據(jù)每個查詢詞的多種表示,得到多種組合形式的詞序列;
調(diào)用所述語言模型計(jì)算詞序列出現(xiàn)的概率,并將出現(xiàn)概率高的詞序列確定為查詢建議結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述語言模型包括一元和/或多元語言模型。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述二元語言模型的建立步驟包括
對全部檢索資源進(jìn)行預(yù)處理,得到各詞項(xiàng);
統(tǒng)計(jì)各詞項(xiàng)在全部檢索資源中的出現(xiàn)次數(shù),其中包括一元詞項(xiàng)和二元詞項(xiàng)的出現(xiàn)次數(shù);
將全部一元詞項(xiàng)和二元詞項(xiàng)的出現(xiàn)次數(shù)代入下述公式進(jìn)行計(jì)算
P(w)=C(w)/C(*),表示一元詞項(xiàng)的出現(xiàn)概率,其中C(w)表示一元詞w出現(xiàn)的次數(shù),表示全部一元詞項(xiàng)的次數(shù)之和;
表示在包含詞wj的條件下詞wi出現(xiàn)的概率,其中C(wi,wj)表示二元詞wi和wj的共同出現(xiàn)次數(shù),表示全部一元詞項(xiàng)的次數(shù)之和,表示全部二元詞項(xiàng)的次數(shù)之和。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述調(diào)用語言模型計(jì)算詞序列出現(xiàn)概率的步驟包括對應(yīng)每個詞序列S=w1w2…wn,將語言模型中相應(yīng)的P(w)和P(wi|wj)值代入公式P(w1w2…wn)=P(w1)P(w2|w1)…P(wn|wn-1)計(jì)算該詞序列出現(xiàn)的概率。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述調(diào)用語言模型計(jì)算詞序列出現(xiàn)概率的步驟包括
步驟1,對第一個查詢詞,調(diào)用語言模型中P(w)的計(jì)算結(jié)果得到每種查詢詞表示的出現(xiàn)概率,并按照預(yù)定個數(shù)選取出現(xiàn)概率高的查詢詞表示;
步驟2,對第二個查詢詞,利用公式P(w1w2)=P(w1)P(w2|w1)計(jì)算包含第一和第二查詢詞的詞序列出現(xiàn)概率,并按照預(yù)定個數(shù)選取出現(xiàn)概率高的詞序列;其中w1為步驟1中選出的第一個查詢詞表示,w2為第二個查詢詞的各種表示;
按照步驟2依次對每個查詢詞,利用下述公式P(w1w2…wn)=P(w1)P(w2|w1)…P(wn|wn-1)計(jì)算詞序列出現(xiàn)的概率,并最終得到預(yù)定個數(shù)的包含所有查詢詞的詞序列S=w1w2…wn。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括將所述查詢建議結(jié)果作為提示信息顯示,或者直接根據(jù)查詢建議結(jié)果進(jìn)行檢索。
7.一種查詢修正系統(tǒng),其特征在于,包括
模型生成單元,用于利用檢索資源預(yù)置語言模型;
數(shù)據(jù)接口,用于接收查詢輸入;
查詢處理引擎,用于調(diào)用相應(yīng)的修正操作,對原始輸入的每個查詢詞進(jìn)行修正,得到對應(yīng)每個查詢詞的多種表示,其中包括原始輸入的表示;
查詢建議生成單元,用于根據(jù)每個查詢詞的多種表示,得到多種組合形式的詞序列;并調(diào)用所述語言模型計(jì)算詞序列出現(xiàn)的概率,將出現(xiàn)概率高的詞序列確定為查詢建議結(jié)果。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,還包括預(yù)處理單元,用于對原始輸入進(jìn)行分詞或斷詞預(yù)處理,得到原始輸入的詞序列。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于所述查詢建議生成單元生成的查詢建議結(jié)果通過數(shù)據(jù)接口作為提示信息顯示,或者直接發(fā)送給檢索單元進(jìn)行檢索。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于所述模型生成單元可建立一元或多元語言模型,其中,建立二元語言模型的過程包括
對全部檢索資源進(jìn)行預(yù)處理,得到各詞項(xiàng);
統(tǒng)計(jì)各詞項(xiàng)在全部檢索資源中的出現(xiàn)次數(shù),其中包括一元詞項(xiàng)和二元詞項(xiàng)的出現(xiàn)次數(shù);
將全部一元詞項(xiàng)和二元詞項(xiàng)的出現(xiàn)次數(shù)代入下述公式進(jìn)行計(jì)算
P(w)=C(w)/C(*),表示一元詞項(xiàng)的出現(xiàn)概率,其中C(w)表示一元詞w出現(xiàn)的次數(shù),表示全部一元詞項(xiàng)的次數(shù)之和;
表示在包含詞wj的條件下詞wi出現(xiàn)的概率,其中C(wi,wj)表示二元詞wi和wj的共同出現(xiàn)次數(shù),表示全部一元詞項(xiàng)的次數(shù)之和,表示全部二元詞項(xiàng)的次數(shù)之和。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述查詢建議生成單元生成查詢建議結(jié)果的過程包括
步驟1,對第一個查詢詞,調(diào)用語言模型中P(w)的計(jì)算結(jié)果得到每種查詢詞表示的出現(xiàn)概率,并按照預(yù)定個數(shù)選取出現(xiàn)概率高的查詢詞表示;
步驟2,對第二個查詢詞,利用公式P(w1w2)=P(w1)P(w2|w1)計(jì)算包含第一和第二查詢詞的詞序列出現(xiàn)概率,并按照預(yù)定個數(shù)選取出現(xiàn)概率高的詞序列;其中w1為步驟1中選出的第一個查詢詞表示,w2為第二個查詢詞的各種表示;
按照步驟2依次對每個查詢詞,利用下述公式P(w1w2…wn)=P(w1)P(w2|w1)…P(wn|wn-1)計(jì)算詞序列出現(xiàn)的概率,并最終得到預(yù)定個數(shù)的包含所有查詢詞的詞序列S=w1w2…wn。
全文摘要
本發(fā)明公開了一種查詢修正方法及系統(tǒng),解決目前的搜索引擎無法對用戶輸入的多種錯誤查詢進(jìn)行正確分析,從而導(dǎo)致檢索失敗的問題。所述方法包括利用檢索資源預(yù)置語言模型;調(diào)用相應(yīng)的修正操作,對原始輸入的每個查詢詞進(jìn)行修正,得到對應(yīng)每個查詢詞的多種表示,其中包括原始輸入的表示;根據(jù)每個查詢詞的多種表示,得到多種組合形式的詞序列;調(diào)用所述語言模型計(jì)算詞序列出現(xiàn)的概率,并將出現(xiàn)概率高的詞序列確定為查詢建議結(jié)果。本發(fā)明能夠統(tǒng)一地處理查詢中多種輸入錯誤或輸入不完整的問題,如拼寫錯誤、詞形不全等,達(dá)到對查詢自動修正、幫助用戶有效地利用搜索引擎的目的。
文檔編號G06F17/30GK101131706SQ20071017532
公開日2008年2月27日 申請日期2007年9月28日 優(yōu)先權(quán)日2007年9月28日
發(fā)明者高立琦, 挺 劉 申請人:北京金山軟件有限公司, 北京金山數(shù)字娛樂科技有限公司, 哈爾濱工業(yè)大學(xué)