搜索引擎的中文搜索詞自動糾錯方法
【專利摘要】本發(fā)明涉及搜索引擎的中文搜索詞自動糾錯方法,屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域。本發(fā)明包括數(shù)據(jù)模塊、離線建庫端及在線檢索端,數(shù)據(jù)模塊的主要作用是為后面的離線建庫端和在線檢索端提供數(shù)據(jù)。本發(fā)明使用搜索日志,爬蟲系統(tǒng)等模塊挖掘豐富的離線數(shù)據(jù),用于多種糾錯策略使用。針對不同的領(lǐng)域,使用專有領(lǐng)域詞典用于系統(tǒng)糾錯。本發(fā)明使用多種獨(dú)立糾錯策略相結(jié)合的方式,面對復(fù)雜的query錯誤,多種策略相互補(bǔ)充相互比較,最終取得較好的結(jié)果。加上二次糾錯的使用,使得糾錯范圍更加廣泛,成功率更高。本發(fā)明糾錯策略可靈活獨(dú)立配置,糾錯場景更加廣泛,能更好適應(yīng)各種不同的垂直搜索領(lǐng)域。
【專利說明】
搜索引擎的中文搜索詞自動糾錯方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及搜索引擎的中文搜索詞自動糾錯方法,屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]如今,搜索引擎是人們的獲取信息最重要的方式之一。搜索引擎系統(tǒng)最基本最核心的功能是信息檢索,找到含有關(guān)鍵字的網(wǎng)頁或文檔,然后按照一定排序?qū)⒔Y(jié)果給出。在搜索引擎中,我們將用戶輸入的關(guān)鍵字信息叫做query,用戶希望得到和輸入query相關(guān)的質(zhì)量較好的網(wǎng)頁或文檔,這個“好”字定義有多種衡量方式,最簡單的標(biāo)準(zhǔn)就是那些對用戶幫助最大最具吸引力的結(jié)果能夠排到前列。但是往往出于各種原因,用戶輸入的query本身質(zhì)量不高或是錯誤的,若搜索引擎不對這種錯誤進(jìn)行修正彌補(bǔ),會導(dǎo)致召回錯誤的結(jié)果,或者結(jié)果數(shù)少甚至沒有結(jié)果。當(dāng)用戶看到搜索結(jié)果較差較少時(shí),如果能意識到自己的query錯誤,對query進(jìn)行修正再次檢索,也許能找到想要的結(jié)果。為了提升用戶體驗(yàn),成熟的搜索引擎都會提出query拼寫糾錯(Error Correct1n,以下簡稱EC)功能,比如百度的糾錯功能如圖1所示。
[0003]但是存在問題如下兩個方面的問題:
[0004]1.Query出錯情況復(fù)雜:
[0005]Query錯誤原因主要是因?yàn)橛脩舻钠磳戝e誤,錯誤情況多變。從語言上來劃分,包括基礎(chǔ)的英文糾錯和復(fù)雜的中文糾錯。對于英文,最基本的語義元素是單詞,因此拼寫錯誤主要分為兩種,一種是Non-word Error,指單詞本身就是拼錯的,比如將“happy”拼成“hbppy”,“hbppy”本身不是一個詞。另外一種是Real_word Error,指單詞雖拼寫正確但是結(jié)合上下文語境確是錯誤的,比如“two eyes”寫成“too eyes”,“too”在這里是明顯錯誤的拼與。
[0006]對于中文,最小的語義單元是字,因?yàn)楝F(xiàn)在每個漢字幾乎都是通過輸入法輸入設(shè)備,不像手寫漢字也許會出錯,往往不會出現(xiàn)錯字。雖然漢字可以單字成詞,但是兩個或以上的漢字組合成的詞卻是更常見的語義元素,這種組合帶來了類似英文的Non-wordError,比如“洗衣機(jī)”寫成“洗一雞”,雖然每個字是對的,但是整體卻不是一個詞,也就是所謂的別字。漢字也有類似Rea 1-word Err or的問題,比如加薪圣旨,加薪和圣旨都是正確的詞,但是兩個連在一起確有問題,因此很多情況下漢語query糾錯實(shí)際上是短語糾錯問題。
[0007]2.Query糾錯技術(shù)復(fù)雜:
[0008]因?yàn)閝uery出錯的情況有多種,對于每種情況往往需要使用不同的技術(shù)和策略,而單獨(dú)使用每種技術(shù)和策略往往不能達(dá)到較好的結(jié)果。英文拼寫糾錯相對簡單,但也要使用編輯距離,信道噪聲模型等方式來糾錯。而中文糾錯更加復(fù)雜,面對的情況更多,除了類似英文中的Non-word Error和Real_word Error錯誤外,還包括中英文混拼,多音字模糊音等多種情況,需要不同的糾錯策略。除此之外,由于中文詞語往往較短,一字之差可能就會導(dǎo)致詞語意思完全改變,因此單一使用編輯距離等糾錯方式往往會導(dǎo)致較大的轉(zhuǎn)義風(fēng)險(xiǎn)。
【發(fā)明內(nèi)容】
[0009]為了克服上述的不足,本發(fā)明提供一種搜索引擎的中文搜索詞自動糾錯方法。
[0010]本發(fā)明采取的技術(shù)方案如下:
[0011]搜索引擎的中文搜索詞自動糾錯方法,包括數(shù)據(jù)模塊、離線建庫端及在線檢索端,數(shù)據(jù)模塊為后面的離線建庫端和在線檢索端提供數(shù)據(jù);數(shù)據(jù)模塊對搜索log定期進(jìn)行抽取和統(tǒng)計(jì),給出query頻次信息,并對query嘗試分詞,統(tǒng)計(jì)每個詞的df和idf信息,對數(shù)據(jù)庫信息整理,通過爬蟲系統(tǒng)爬取優(yōu)質(zhì)網(wǎng)站的詞條、標(biāo)簽,整理已有nip數(shù)據(jù)相關(guān)的優(yōu)質(zhì)詞典;query糾錯離線數(shù)據(jù)的來源主要有4個部分:搜索日志、數(shù)據(jù)庫數(shù)據(jù)、爬蟲系統(tǒng)和語料庫;對于這四種數(shù)據(jù)來源,有不同的離線數(shù)據(jù)生成過程,每個數(shù)據(jù)來源通過不同方式的處理,最終得到query糾錯需要使用的各種離線數(shù)據(jù);搜索日志首先從搜索日志中,通過文本匹配找到搜索的查詢query,然后對query的頻率信息進(jìn)行統(tǒng)計(jì),最終得到日志挖掘數(shù)據(jù),通常是一個文本文件,每行的數(shù)據(jù)是:query空格頻率;數(shù)據(jù)庫數(shù)據(jù):從數(shù)據(jù)庫中讀取要搜索的物品的各種字段信息,將各個字段的文本當(dāng)做query,和搜索日志統(tǒng)計(jì)類似,統(tǒng)計(jì)各個字段文本的頻率,分詞后的詞頻信息作為數(shù)據(jù)庫挖掘數(shù)據(jù);爬蟲系統(tǒng):爬蟲系統(tǒng)通過爬取百科網(wǎng)站的網(wǎng)頁,經(jīng)過網(wǎng)頁內(nèi)容抽取,得到百科詞條,作為百科字典;除此之外,還可以爬取特定領(lǐng)域的網(wǎng)頁,可以制作電商領(lǐng)域?qū)I(yè)字典,類似的可以爬取文學(xué)網(wǎng)站,抽取網(wǎng)頁中小說名稱,得到文學(xué)領(lǐng)域?qū)I(yè)字典;語料庫:根據(jù)現(xiàn)有的語料庫,統(tǒng)計(jì)語料庫中所有詞的tf,df,idf信息,得到語料庫挖掘數(shù)據(jù)。
[0012]離線建庫端使用數(shù)據(jù)模塊準(zhǔn)備好的query頻次詞典和數(shù)據(jù)庫自定義詞典信息merge后生成頻次詞典;接下來對頻次詞典中每個詞進(jìn)行歸一化,去除標(biāo)點(diǎn)符號,繁體中文轉(zhuǎn)簡體中文,去除頭尾空格,大小寫轉(zhuǎn)換操作后,生成query的拼音頻次詞典信息;使用處理好的頻次詞典按照一定粒度term建立編輯距離倒排詞典;使用query拼音頻次詞典,生成拼音間的編輯距離詞典;調(diào)取sess1n分析模塊得到sess1n詞典;根據(jù)詞頻和其他方式生成錯誤query詞典用于錯誤判斷;對頻次詞典中詞條文本長度超過10個字的詞條不進(jìn)行上述操作。
[0013]在線檢索端檢索主要分為以下步驟:
[0014]第一步:搜索query請求;
[0015]第二步:判斷query是否出錯:對于常見錯誤,使用事先挖掘好的錯誤query字典,當(dāng)query在此字典中時(shí)糾錯,若用戶輸入的query查詢無結(jié)果或結(jié)果少于設(shè)置的閾值時(shí),設(shè)置的閾值為3,嘗試糾錯;可以根據(jù)不同領(lǐng)域的策略和容忍度,配置最少結(jié)果數(shù)閾值用于糾錯判斷:電商網(wǎng)站一般最少結(jié)果數(shù)為I,文學(xué)網(wǎng)站最少結(jié)果數(shù)為3;在百科辭典、常用字典中及自定義詞典中的詞不糾錯,對query分詞后,若所有term在上述詞典中不糾錯,對在錯誤query集合中的查詢糾錯;若不出錯進(jìn)入第十一步,若出錯進(jìn)入第三步;
[0016]第三步:同音糾錯,同音糾錯為優(yōu)先級I;所述同音糾錯是用戶輸入query和候選糾錯query有相同的拼音;根據(jù)對搜索日志的統(tǒng)計(jì),幾乎一半以上糾錯使用了同音策略,這也和用戶使用拼音輸入法的實(shí)際情況相符;
[0017]第四步:糾錯質(zhì)量判斷,如果合格進(jìn)入第十步,如果不合格進(jìn)入第五步;
[0018]第五步:形近字糾錯和模糊音糾錯,形近字糾錯和模糊音糾錯為優(yōu)先級2,形近字糾錯和模糊音糾錯為并行處理;所述模糊音策略包括平舌翹舌,前鼻音后鼻音,使用拼音變換技術(shù),將拼音轉(zhuǎn)換成可能的模糊音拼音來糾錯;所述形近字策略主要解決非拼音輸入問題,在移動時(shí)代使用筆畫輸入的用戶不少;
[0019]第六步:糾錯質(zhì)量判斷,如果合格進(jìn)入第十步,如果不合格進(jìn)入第七步;
[°02°]第七步:關(guān)聯(lián)query糾錯,關(guān)聯(lián)query糾錯為優(yōu)先級3;
[0021 ]第八步:糾錯質(zhì)量判斷,如果合格進(jìn)入第十步,如果不合格進(jìn)入第九步;
[0022]第九步:二次糾錯和片段糾錯,二次糾錯和片段糾錯為并行處理,二次糾錯和片段糾錯為優(yōu)先級4;所述二次糾錯用于系統(tǒng)中沒有的query拼音;所述片段糾錯是對于整個query無結(jié)果的查詢,可以嘗試切分,并對片段進(jìn)行糾錯,可以充分利用query中每個詞的上下文通過統(tǒng)計(jì)模型糾錯,一般而言,錯誤片段只有一個;
[0023]第十步:糾錯query;
[0024]第十一步:最終結(jié)果;
[0025]對于不同領(lǐng)域的搜索涉及的策略優(yōu)先級和權(quán)重可配置。
[0026]對于不同領(lǐng)域的搜索涉及的策略優(yōu)先級和權(quán)重可配置實(shí)現(xiàn)步驟如下:對于不同領(lǐng)域的搜索涉及的策略優(yōu)先級和權(quán)重可配置實(shí)現(xiàn)步驟如下:首先,糾錯質(zhì)量判斷的糾錯結(jié)果好壞可以通過比較糾錯后的query在之前離線模塊挖掘出來的各種特征決定;策略略優(yōu)先級指的是不同策略給出糾錯結(jié)果后優(yōu)先使用哪種策略的優(yōu)先級;同音糾錯的優(yōu)先級為1,模糊拼音和形近字策略的優(yōu)先級為2,關(guān)聯(lián)query優(yōu)先級為3,二次糾錯和片段糾錯的優(yōu)先級為4;糾錯時(shí)可以先使用優(yōu)先級高的策略糾錯,當(dāng)結(jié)果不好或無糾錯結(jié)果時(shí)使用下一級的各種糾錯策略糾錯;對于優(yōu)先級相同的策略,則比較每種策略糾錯后的query得分乘以每種策略的權(quán)重后的最終得分來選擇。
[0027]本發(fā)明有益效果:
[0028]1.使用搜索日志,爬蟲系統(tǒng)等模塊挖掘豐富的離線數(shù)據(jù),用于多種糾錯策略使用。針對不同的領(lǐng)域,使用專有領(lǐng)域詞典用于系統(tǒng)糾錯。
[0029]2.使用多種獨(dú)立糾錯策略相結(jié)合的方式,面對復(fù)雜的query錯誤,多種策略相互補(bǔ)充相互比較,最終取得較好的結(jié)果。加上二次糾錯的使用,使得糾錯范圍更加廣泛,成功率更尚O
[0030]3.糾錯策略可靈活獨(dú)立配置,糾錯場景更加廣泛,能更好適應(yīng)各種不同的垂直搜索領(lǐng)域。
【附圖說明】
[0031 ]圖1示例性地示出了百度的自動糾錯功能截圖;
[0032]圖2示例性地示出了本發(fā)明EC系統(tǒng)模塊構(gòu)成;
[0033]圖3示例性地示出了本發(fā)明數(shù)據(jù)模塊構(gòu)成及基本流程;
[0034]圖4示例性地示出了本發(fā)明離線建庫端模塊構(gòu)成及基本流程;
[0035]圖5示例性地示出了本發(fā)明的在線檢索端檢索流程圖。
【具體實(shí)施方式】
[0036]下面結(jié)合附圖對本發(fā)明做進(jìn)一步說明。
[0037]如圖2所示:搜索引擎的中文搜索詞自動糾錯方法,包括數(shù)據(jù)模塊、離線建庫端及在線檢索端,數(shù)據(jù)模塊的主要作用是為后面的離線建庫端和在線檢索端提供數(shù)據(jù)。
[0038]搜索引擎的中文搜索詞自動糾錯方法如下:
[0039]如圖3所示:數(shù)據(jù)模塊對搜索log定期進(jìn)行抽取和統(tǒng)計(jì),給出query頻次信息,并對query嘗試分詞,統(tǒng)計(jì)每個詞的df和idf信息,對數(shù)據(jù)庫信息整理,通過爬蟲系統(tǒng)爬取優(yōu)質(zhì)網(wǎng)站的詞條、標(biāo)簽等,整理已有nip數(shù)據(jù)相關(guān)的優(yōu)質(zhì)詞典;query糾錯離線數(shù)據(jù)的來源主要有4個部分:搜索日志、數(shù)據(jù)庫數(shù)據(jù)、爬蟲系統(tǒng)和語料庫;對于這四種數(shù)據(jù)來源,有不同的離線數(shù)據(jù)生成過程,每個數(shù)據(jù)來源通過不同方式的處理,最終得到query糾錯需要使用的各種離線數(shù)據(jù);搜索日志首先從搜索日志中,通過文本匹配找到搜索的查詢query,然后對query的頻率信息進(jìn)行統(tǒng)計(jì),最終得到日志挖掘數(shù)據(jù),通常是一個文本文件,每行的數(shù)據(jù)是:query空格頻率;數(shù)據(jù)庫數(shù)據(jù):從數(shù)據(jù)庫中讀取要搜索的物品的各種字段信息,比如圖書的標(biāo)題,圖書的作者或者商品的名稱等。將各個字段的文本當(dāng)做query,和搜索日志統(tǒng)計(jì)類似,統(tǒng)計(jì)各個字段文本的頻率,分詞后的詞頻等信息作為數(shù)據(jù)庫挖掘數(shù)據(jù);爬蟲系統(tǒng):爬蟲系統(tǒng)通過爬取百科網(wǎng)站的網(wǎng)頁,經(jīng)過網(wǎng)頁內(nèi)容抽取,得到百科詞條,作為百科字典;除此之外,還可以爬取特定領(lǐng)域的網(wǎng)頁,比如電商網(wǎng)站,爬取網(wǎng)頁后對網(wǎng)頁進(jìn)行抽取,得到商品名稱等信息,可以制作電商領(lǐng)域?qū)I(yè)字典,類似的可以爬取文學(xué)網(wǎng)站,抽取網(wǎng)頁中小說名稱,得到文學(xué)領(lǐng)域?qū)I(yè)字典;語料庫:根據(jù)現(xiàn)有的語料庫,如人民日報(bào)切分語料庫等,統(tǒng)計(jì)語料庫中所有詞的tf,df,idf等信息,得到語料庫挖掘數(shù)據(jù)。
[0040]如圖4所示:離線建庫端使用數(shù)據(jù)模塊準(zhǔn)備好的query頻次詞典和數(shù)據(jù)庫自定義詞典信息merge后生成頻次詞典;接下來對頻次詞典中每個詞進(jìn)行歸一化,去除標(biāo)點(diǎn)符號,繁體中文轉(zhuǎn)簡體中文,去除頭尾空格,大小寫轉(zhuǎn)換等操作后,生成query的拼音頻次詞典信息;使用處理好的頻次詞典按照一定粒度term建立編輯距離倒排詞典;使用query拼音頻次詞典,生成拼音間的編輯距離詞典;調(diào)取sess1n分析模塊得到sess1n詞典;根據(jù)詞頻和其他方式生成錯誤query詞典用于錯誤判斷;對頻次詞典中詞條文本長度超過10個字的詞條不進(jìn)行上述操作。
[0041]如圖5所示:在線檢索端檢索主要包括以下幾個步驟:
[0042]第一步:搜索query請求;
[0043]第二步:判斷query是否出錯:對于常見錯誤,使用事先挖掘好的錯誤query字典,當(dāng)query在此字典中時(shí)糾錯,若用戶輸入的query查詢無結(jié)果或結(jié)果少于設(shè)置的閾值時(shí),設(shè)置的閾值為3,嘗試糾錯;可以根據(jù)不同領(lǐng)域的策略和容忍度,配置最少結(jié)果數(shù)閾值用于糾錯判斷:電商網(wǎng)站一般最少結(jié)果數(shù)為I,文學(xué)網(wǎng)站最少結(jié)果數(shù)為3;在百科辭典、常用字典中及自定義詞典中的詞不糾錯,對query分詞后,若所有term在上述詞典中不糾錯,對在錯誤query集合中的查詢糾錯;若不出錯返回結(jié)果,若出錯進(jìn)入第三步;
[0044]第三步:同音糾錯,同音糾錯為優(yōu)先級I;所述同音糾錯是用戶輸入query和候選糾錯query有相同的拼音;根據(jù)對搜索日志的統(tǒng)計(jì),幾乎一半以上糾錯使用了同音策略,這也和用戶使用拼音輸入法的實(shí)際情況相符;
[0045]第四步:糾錯質(zhì)量判斷,如果合格進(jìn)入第十步,如果不合格進(jìn)入第五步;
[0046]第五步:形近字糾錯和模糊音糾錯,形近字糾錯和模糊音糾錯為優(yōu)先級2,形近字糾錯和模糊音糾錯為并行處理;所述模糊音策略包括平舌翹舌,前鼻音后鼻音,使用拼音變換技術(shù),將拼音轉(zhuǎn)換成可能的模糊音拼音來糾錯;所述形近字策略主要解決非拼音輸入問題,在移動時(shí)代使用筆畫輸入的用戶不少;
[0047]第六步:糾錯質(zhì)量判斷,如果合格進(jìn)入第十步,如果不合格進(jìn)入第七步;
[0048]第七步:關(guān)聯(lián)query糾錯,關(guān)聯(lián)query糾錯為優(yōu)先級3;
[0049]第八步:糾錯質(zhì)量判斷,如果合格進(jìn)入第十步,如果不合格進(jìn)入第九步;
[0050]第九步:二次糾錯和片段糾錯,二次糾錯和片段糾錯為并行處理,二次糾錯和片段糾錯為優(yōu)先級4;所述二次糾錯用于系統(tǒng)中沒有的query拼音;所述片段糾錯是對于整個query無結(jié)果的查詢,可以嘗試切分,并對片段進(jìn)行糾錯,可以充分利用query中每個詞的上下文通過統(tǒng)計(jì)模型糾錯,一般而言,錯誤片段只有一個;
[0051 ] 第十步:糾錯query;
[0052]第十一步:最終結(jié)果;
[0053]因?yàn)槊總€策略比較獨(dú)立,不同策略會給出不同的候選詞,因此對于候選詞的選取,可以使用概率公式解釋。當(dāng)用戶輸入一個錯誤query時(shí),不同策略給出ec_query,達(dá)到的目標(biāo)就是p(ec_query | query)最大。使用貝葉斯公式展開,p(ec_query | query) =p(query | ec_query)*p(ec_query)/p(query),去掉所有策相同的p(query),最終達(dá)到的目標(biāo)是p(queryec_query) *p (ec_query)最大。其中p (ec_query)可以簡單理解為ec_query的頻次,可以使用一定的網(wǎng)頁語料庫或者搜索日志統(tǒng)計(jì)得到。
[0054]對于p(query | ec_query)的量化比較困難,可以參考英文Non-word糾錯中轉(zhuǎn)移矩陣的計(jì)算方式,通過大量的計(jì)算正確query和錯誤query統(tǒng)計(jì)到,但是p(query | ec_query)也可以簡單理解為ec_query和query之間的關(guān)聯(lián)度。對于不同的糾錯策略,ec_query和query之間的關(guān)聯(lián)度明顯是不同的,其中同音策略P(query | ec_query)最大,因?yàn)檗D(zhuǎn)義風(fēng)險(xiǎn)小,關(guān)聯(lián)度最高,而編輯距離P (query | ec_query)較小,因?yàn)檗D(zhuǎn)移風(fēng)險(xiǎn)大,關(guān)聯(lián)度最小。
[0055]在不同策略內(nèi)部候選ec_query的選擇上,p(ec_query)是不同的。對于拼音糾錯,因?yàn)镻(query | ec_query)較大,p(ec_query)要求就會較低,即拼音糾錯中對于ec_query的頻次要求就不會太高。對于編輯距離來說,因?yàn)镻(query I ec_query)較小,因此p(ec_query)要求較高,因此要選擇頻次盡量高的候選詞。
[0056]本專利糾錯系統(tǒng)包括上述多個策略,每個策略獨(dú)立運(yùn)行,針對不同的領(lǐng)域和業(yè)務(wù)情況,每個策略的優(yōu)先級有所不同。在默認(rèn)配置下同音策略為主,模糊音編輯距離策略為輔,并使用其他策略擴(kuò)大召回,對于不同領(lǐng)域的搜索,策略優(yōu)先級和權(quán)重可配置,糾錯松緊度可調(diào)節(jié)。
[0057]對于不同領(lǐng)域的搜索涉及的策略優(yōu)先級和權(quán)重可配置實(shí)現(xiàn)步驟如下:首先,糾錯質(zhì)量判斷的糾錯結(jié)果好壞可以通過比較糾錯后的query在之前離線模塊挖掘出來的各種特征決定;策略略優(yōu)先級指的是不同策略給出糾錯結(jié)果后優(yōu)先使用哪種策略的優(yōu)先級;同音糾錯的優(yōu)先級為I,模糊拼音和形近字策略(模糊音糾錯和形近字糾錯)的優(yōu)先級為2,關(guān)聯(lián)query優(yōu)先級為3,二次糾錯和片段糾錯的優(yōu)先級為4;糾錯時(shí)可以先使用優(yōu)先級高的策略糾錯,當(dāng)結(jié)果不好或無糾錯結(jié)果時(shí)使用下一級的各種糾錯策略糾錯;對于優(yōu)先級相同的策略,則比較每種策略糾錯后的query得分乘以每種策略的權(quán)重后的最終得分來選擇。
[0058]本發(fā)明使用搜索日志,爬蟲系統(tǒng)等模塊挖掘豐富的離線數(shù)據(jù),用于多種糾錯策略使用,針對不同的領(lǐng)域,使用專有領(lǐng)域詞典用于系統(tǒng)糾錯;使用多種獨(dú)立糾錯策略相結(jié)合的方式,面對復(fù)雜的query錯誤,多種策略相互補(bǔ)充相互比較,最終取得較好的結(jié)果。加上二次糾錯的使用,使得糾錯范圍更加廣泛,成功率更高。糾錯策略可靈活獨(dú)立配置,糾錯場景更加廣泛,能更好適應(yīng)各種不同的垂直搜索領(lǐng)域。
[0059]對于本領(lǐng)域的普通技術(shù)人員而言,具體實(shí)施例只是對本發(fā)明進(jìn)行了示例性描述,顯然本發(fā)明具體實(shí)現(xiàn)并不受上述方式的限制,只要采用了本發(fā)明的方法構(gòu)思和技術(shù)方案進(jìn)行的各種非實(shí)質(zhì)性的改進(jìn),或未經(jīng)改進(jìn)將本發(fā)明的構(gòu)思和技術(shù)方案直接應(yīng)用于其它場合的,均在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.搜索引擎的中文搜索詞自動糾錯方法,其特征在于:包括數(shù)據(jù)模塊、離線建庫端及在線檢索端,數(shù)據(jù)模塊為后面的離線建庫端和在線檢索端提供數(shù)據(jù);數(shù)據(jù)模塊對搜索log定期進(jìn)行抽取和統(tǒng)計(jì),給出query頻次信息,并對query嘗試分詞,統(tǒng)計(jì)每個詞的df和idf信息,對數(shù)據(jù)庫信息整理,通過爬蟲系統(tǒng)爬取優(yōu)質(zhì)網(wǎng)站的詞條、標(biāo)簽,整理已有nip數(shù)據(jù)相關(guān)的優(yōu)質(zhì)詞典;query糾錯離線數(shù)據(jù)的來源主要有4個部分:搜索日志、數(shù)據(jù)庫數(shù)據(jù)、爬蟲系統(tǒng)和語料庫;對于這四種數(shù)據(jù)來源,有不同的離線數(shù)據(jù)生成過程,每個數(shù)據(jù)來源通過不同方式的處理,最終得到query糾錯需要使用的各種離線數(shù)據(jù);搜索日志首先從搜索日志中,通過文本匹配找到搜索的查詢query,然后對query的頻率信息進(jìn)行統(tǒng)計(jì),最終得到日志挖掘數(shù)據(jù),通常是一個文本文件,每行的數(shù)據(jù)是:query空格頻率;數(shù)據(jù)庫數(shù)據(jù):從數(shù)據(jù)庫中讀取要搜索的物品的各種字段信息;將各個字段的文本當(dāng)做query,和搜索日志統(tǒng)計(jì)類似,統(tǒng)計(jì)各個字段文本的頻率,分詞后的詞頻信息作為數(shù)據(jù)庫挖掘數(shù)據(jù);爬蟲系統(tǒng):爬蟲系統(tǒng)通過爬取百科網(wǎng)站的網(wǎng)頁,經(jīng)過網(wǎng)頁內(nèi)容抽取,得到百科詞條,作為百科字典;除此之外,還可以爬取特定領(lǐng)域的網(wǎng)頁,可以制作電商領(lǐng)域?qū)I(yè)字典,類似的可以爬取文學(xué)網(wǎng)站,抽取網(wǎng)頁中小說名稱,得到文學(xué)領(lǐng)域?qū)I(yè)字典;語料庫:根據(jù)現(xiàn)有的語料庫,統(tǒng)計(jì)語料庫中所有詞的tf,df,idf信息,得到語料庫挖掘數(shù)據(jù)。2.根據(jù)權(quán)利要求1所述的搜索引擎的中文搜索詞自動糾錯方法,其特征在于:離線建庫端使用數(shù)據(jù)模塊準(zhǔn)備好的query頻次詞典和數(shù)據(jù)庫自定義詞典信息merge后生成頻次詞典;接下來對頻次詞典中每個詞進(jìn)行歸一化,去除標(biāo)點(diǎn)符號,繁體中文轉(zhuǎn)簡體中文,去除頭尾空格,大小寫轉(zhuǎn)換操作后,生成query的拼音頻次詞典信息;使用處理好的頻次詞典按照一定粒度term建立編輯距離倒排詞典;使用query拼音頻次詞典,生成拼音間的編輯距離詞典;調(diào)取sess1n分析模塊得到sess1n詞典;根據(jù)詞頻和其他方式生成錯誤query詞典用于錯誤判斷;對頻次詞典中詞條文本長度超過10個字的詞條不進(jìn)行上述操作。3.根據(jù)權(quán)利要求1所述的搜索引擎的中文搜索詞自動糾錯方法,其特征在于:在線檢索端檢索主要包括以下步驟; 第一步:搜索query請求; 第二步:判斷query是否出錯:對于常見錯誤,使用事先挖掘好的錯誤query字典,當(dāng)query在此字典中時(shí)糾錯,若用戶輸入的query查詢無結(jié)果或結(jié)果少于設(shè)置的閾值時(shí),設(shè)置的閾值為3,嘗試糾錯;可以根據(jù)不同領(lǐng)域的策略和容忍度,配置最少結(jié)果數(shù)閾值用于糾錯判斷:電商網(wǎng)站一般最少結(jié)果數(shù)為I,文學(xué)網(wǎng)站最少結(jié)果數(shù)為3;在百科辭典、常用字典中及自定義詞典中的詞不糾錯,對query分詞后,若所有term在上述詞典中不糾錯,對在錯誤query集合中的查詢糾錯;若不出錯進(jìn)入第十一步,若出錯進(jìn)入第三步; 第三步:同音糾錯,同音糾錯為優(yōu)先級I;所述同音糾錯是用戶輸入query和候選糾錯query有相同的拼音;根據(jù)對搜索日志的統(tǒng)計(jì),幾乎一半以上糾錯使用了同音策略,這也和用戶使用拼音輸入法的實(shí)際情況相符; 第四步:糾錯質(zhì)量判斷,如果合格進(jìn)入第十步,如果不合格進(jìn)入第五步; 第五步:形近字糾錯和模糊音糾錯,形近字糾錯和模糊音糾錯為優(yōu)先級2,形近字糾錯和模糊音糾錯為并行處理;所述模糊音策略包括平舌翹舌,前鼻音后鼻音,使用拼音變換技術(shù),將拼音轉(zhuǎn)換成可能的模糊音拼音來糾錯;所述形近字策略主要解決非拼音輸入問題,在移動時(shí)代使用筆畫輸入的用戶不少; 第六步:糾錯質(zhì)量判斷,如果合格進(jìn)入第十步,如果不合格進(jìn)入第七步; 第七步:關(guān)聯(lián)query糾錯,關(guān)聯(lián)query糾錯為優(yōu)先級3 ; 第八步:糾錯質(zhì)量判斷,如果合格進(jìn)入第十步,如果不合格進(jìn)入第九步; 第九步:二次糾錯和片段糾錯,二次糾錯和片段糾錯為并行處理,二次糾錯和片段糾錯為優(yōu)先級4;所述二次糾錯用于系統(tǒng)中沒有的query拼音;所述片段糾錯是對于整個query無結(jié)果的查詢,可以嘗試切分,并對片段進(jìn)行糾錯,可以充分利用query中每個詞的上下文通過統(tǒng)計(jì)模型糾錯,一般而言,錯誤片段只有一個; 第十步:糾錯query; 第十一步:最終結(jié)果; 對于不同領(lǐng)域的搜索涉及的策略優(yōu)先級和權(quán)重可配置。4.根據(jù)權(quán)利要求3所述的搜索引擎的中文搜索詞自動糾錯方法,其特征在于:對于不同領(lǐng)域的搜索涉及的策略優(yōu)先級和權(quán)重可配置實(shí)現(xiàn)步驟如下: 首先,糾錯質(zhì)量判斷的糾錯結(jié)果好壞可以通過比較糾錯后的query在之前離線模塊挖掘出來的各種特征決定;策略略優(yōu)先級指的是不同策略給出糾錯結(jié)果后優(yōu)先使用哪種策略的優(yōu)先級;同音糾錯的優(yōu)先級為I,模糊拼音和形近字策略的優(yōu)先級為2,關(guān)聯(lián)query優(yōu)先級為3,二次糾錯和片段糾錯的優(yōu)先級為4;糾錯時(shí)可以先使用優(yōu)先級高的策略糾錯,當(dāng)結(jié)果不好或無糾錯結(jié)果時(shí)使用下一級的各種糾錯策略糾錯;對于優(yōu)先級相同的策略,則比較每種策略糾錯后的query得分乘以每種策略的權(quán)重后的最終得分來選擇。
【文檔編號】G06F17/27GK106095778SQ201610361654
【公開日】2016年11月9日
【申請日】2016年5月26日
【發(fā)明人】高翔
【申請人】達(dá)而觀信息科技(上海)有限公司