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