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