本發(fā)明涉及信息檢索領(lǐng)域,尤其涉及一種關(guān)鍵詞查詢向結(jié)構(gòu)化查詢的搜索方法及系統(tǒng)。
背景技術(shù):目前,Web(網(wǎng)頁(yè))搜索主要基于傳統(tǒng)的信息檢索技術(shù)實(shí)現(xiàn),其本質(zhì)是將被搜索的網(wǎng)頁(yè)內(nèi)容表示為一組關(guān)鍵詞,將用戶輸入的查詢也視作一組關(guān)鍵詞,繼而返回那些內(nèi)容中的關(guān)鍵詞能夠覆蓋全部查詢關(guān)鍵詞的網(wǎng)頁(yè)。該技術(shù)路線在實(shí)施效果上的主要問(wèn)題是精度較低。例如,對(duì)于用戶輸入的查詢“南京魚”,其內(nèi)在需求可能是搜索“位于南京市的、提供與魚有關(guān)菜肴的餐廳”;然而,基于上述技術(shù)的搜索系統(tǒng)返回的網(wǎng)頁(yè)可能是一家“位于上海市南京西路的、店名中包含魚的餐廳”的主頁(yè)。造成這一問(wèn)題的原因包括兩方面:數(shù)據(jù)本身的表示方式不利于計(jì)算機(jī)理解其含義;簡(jiǎn)單的字面匹配難以正確理解查詢的含義。針對(duì)數(shù)據(jù)表示上的缺陷,包括關(guān)系型數(shù)據(jù)、RDF(ResourceDescriptionFramework,資源描述框架)數(shù)據(jù)等在內(nèi)的其它數(shù)據(jù)表示方式均具有較強(qiáng)的結(jié)構(gòu)化特征——數(shù)據(jù)分為不同的字段,較之文本更能將信息表示為計(jì)算機(jī)易理解的形式,并且均已得到廣泛應(yīng)用。然而,面向這些數(shù)據(jù)的查詢方式也相應(yīng)較為復(fù)雜,需要掌握SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語(yǔ)言)、SPARQL(SimpleProtocolandRDFQueryLanguage,簡(jiǎn)單協(xié)議和RDF查詢語(yǔ)言)等結(jié)構(gòu)化查詢語(yǔ)言,普通Web用戶難以具備相關(guān)技能;相反地,用戶已經(jīng)習(xí)慣了目前Web搜索采用的關(guān)鍵詞查詢。因此,在用戶能夠輸入的關(guān)鍵詞查詢和系統(tǒng)能夠處理的結(jié)構(gòu)化查詢之間存在鴻溝。為此,要求搜索系統(tǒng)能夠?qū)㈥P(guān)鍵詞查詢轉(zhuǎn)換為分字段的結(jié)構(gòu)化查詢(以下簡(jiǎn)稱分字段查詢),但現(xiàn)有技術(shù)手段的自動(dòng)化程度較低。例如,現(xiàn)有技術(shù)中,提供了一套可配制的框架,人工基于該框架來(lái)制定關(guān)鍵詞到數(shù)據(jù)字段的映射規(guī)則,以及制定對(duì)查詢的分析策略配置文件,在此基礎(chǔ)上實(shí)現(xiàn)查詢轉(zhuǎn)換的自動(dòng)化。明顯地,該方法預(yù)先需要大量的人工參與,而人工制定的規(guī)則和策略是極為有限的,使得基于該方法實(shí)現(xiàn)的搜索系統(tǒng)的召回率難免較低,更難以在開(kāi)放領(lǐng)域的Web上廣泛應(yīng)用。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明要解決的技術(shù)問(wèn)題是提供一種搜索方法及系統(tǒng),以實(shí)現(xiàn)完全自動(dòng)化并具有較高的準(zhǔn)確率的搜索數(shù)據(jù)。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種搜索方法,包括:接收到查詢的關(guān)鍵詞集合后,根據(jù)預(yù)存的所有數(shù)據(jù)項(xiàng)分別計(jì)算每個(gè)關(guān)鍵詞映射到每個(gè)數(shù)據(jù)字段的條件概率;根據(jù)所述關(guān)鍵詞集合和所述所有的數(shù)據(jù)項(xiàng)查找出所有可行的查詢轉(zhuǎn)換;根據(jù)包括每條所述可行的查詢轉(zhuǎn)換中的所有關(guān)鍵詞映射到對(duì)應(yīng)數(shù)據(jù)字段的條件概率的預(yù)定規(guī)則,對(duì)所述可行的查詢轉(zhuǎn)換進(jìn)行排序;按照排序后的查詢轉(zhuǎn)換搜索對(duì)應(yīng)的數(shù)據(jù)項(xiàng)。進(jìn)一步地,上述方法還具有下面特點(diǎn):所述根據(jù)包括每條所述可行的查詢轉(zhuǎn)換中的所有關(guān)鍵詞映射到對(duì)應(yīng)數(shù)據(jù)字段的條件概率的預(yù)定規(guī)則,對(duì)所述可行的查詢轉(zhuǎn)換進(jìn)行排序,包括:對(duì)于每條所述可行的查詢轉(zhuǎn)換,對(duì)所有關(guān)鍵詞映射到對(duì)應(yīng)數(shù)據(jù)字段的條件概率進(jìn)行求和;按照求出的和的大小順序?qū)?duì)應(yīng)的查詢轉(zhuǎn)換進(jìn)行排序。進(jìn)一步地,上述方法還具有下面特點(diǎn):所述根據(jù)包括每條所述可行的查詢轉(zhuǎn)換中的所有關(guān)鍵詞映射到對(duì)應(yīng)數(shù)據(jù)字段的條件概率的預(yù)定規(guī)則,對(duì)所述可行的查詢轉(zhuǎn)換進(jìn)行排序,包括:統(tǒng)計(jì)用戶做出的所有歷史選擇中的所述每個(gè)關(guān)鍵詞映射到所有數(shù)據(jù)字段的次數(shù);計(jì)算每個(gè)關(guān)鍵詞被歷史選中的映射到每條所述查詢轉(zhuǎn)換中對(duì)應(yīng)的數(shù)據(jù)字段的次數(shù),與該關(guān)鍵詞被歷史選中的映射到所有數(shù)據(jù)字段的次數(shù)的總和的比例;對(duì)于每條所述查詢轉(zhuǎn)換,將所有關(guān)鍵詞映射到對(duì)應(yīng)數(shù)據(jù)字段的條件概率與每個(gè)關(guān)鍵詞對(duì)應(yīng)的所述比例乘于一權(quán)重系數(shù)的積進(jìn)行求和;按照求出的和的大小順序?qū)?duì)應(yīng)的查詢轉(zhuǎn)換進(jìn)行排序。進(jìn)一步地,上述方法還具有下面特點(diǎn):所述權(quán)重系數(shù)α為lg(M+1),其中,M是歷史上用戶做出選擇的總次數(shù)。進(jìn)一步地,上述方法還具有下面特點(diǎn):所述按照求出的和的大小順序?qū)?duì)應(yīng)的查詢轉(zhuǎn)換進(jìn)行排序之后,還包括:步驟1、從所述排序中取出排序第一的查詢轉(zhuǎn)換,放入一重排序列;步驟2、分別計(jì)算所述排序中剩余的每個(gè)查詢轉(zhuǎn)換與所述重排序列中的每個(gè)查詢轉(zhuǎn)換的相似度;步驟3、若所述重排序列中僅有一個(gè)查詢轉(zhuǎn)換,則從所述排序中取出相似度最小的查詢轉(zhuǎn)換,若相似度最小的查詢轉(zhuǎn)換有多個(gè)則取在所述排序中排在最前面的查詢轉(zhuǎn)換;若所述重排序列中有多個(gè)查詢轉(zhuǎn)換,則取趨同度最小的查詢轉(zhuǎn)換,若趨同度最小的查詢轉(zhuǎn)換有多個(gè),則取在所述排序中排在最前面的查詢轉(zhuǎn)換,所述趨同度為所述排序中的查詢轉(zhuǎn)換與所述重排序列中的所有查詢轉(zhuǎn)換的相似度的最大值;步驟4、將取出的查詢轉(zhuǎn)換放入所述重排序列中,排在所述重排序列中的查詢轉(zhuǎn)換之后,并從所述排序中刪除所述取出的查詢轉(zhuǎn)換;重復(fù)執(zhí)行步驟2-4,直到所述排序中的查詢轉(zhuǎn)換都被刪除;所述按照排序后的查詢轉(zhuǎn)換搜索對(duì)應(yīng)的數(shù)據(jù)項(xiàng)為,按照所述重排序列中排序的查詢轉(zhuǎn)換搜索對(duì)應(yīng)的數(shù)據(jù)項(xiàng)。進(jìn)一步地,上述方法還具有下面特點(diǎn):所述按照排序后的查詢轉(zhuǎn)換搜索對(duì)應(yīng)的數(shù)據(jù)項(xiàng)之后,還包括:若接收到用戶選擇一個(gè)或多個(gè)所述數(shù)據(jù)項(xiàng),則根據(jù)用戶選擇的數(shù)據(jù)項(xiàng),記錄每個(gè)關(guān)鍵詞映射到對(duì)應(yīng)數(shù)據(jù)字段的次數(shù)。為了解決上述問(wèn)題,本發(fā)明還提供了一種搜索系統(tǒng),包括:第一模塊,用于接收到查詢的關(guān)鍵詞集合后,根據(jù)預(yù)存的所有數(shù)據(jù)項(xiàng)分別計(jì)算每個(gè)關(guān)鍵詞映射到每個(gè)數(shù)據(jù)字段的條件概率;第二模塊,用于根據(jù)所述關(guān)鍵詞集合和所述所有的數(shù)據(jù)項(xiàng)查找出所有可行的查詢轉(zhuǎn)換;第三模塊,用于根據(jù)包括每條所述可行的查詢轉(zhuǎn)換中的所有關(guān)鍵詞映射到對(duì)應(yīng)數(shù)據(jù)字段的條件概率的預(yù)定規(guī)則,對(duì)所述可行的查詢轉(zhuǎn)換進(jìn)行排序;第四模塊,用于按照排序后的查詢轉(zhuǎn)換搜索對(duì)應(yīng)的數(shù)據(jù)項(xiàng)。進(jìn)一步地,上述系統(tǒng)還具有下面特點(diǎn):所述第三模塊包括,第一單元,用于每條所述可行的查詢轉(zhuǎn)換,對(duì)所有關(guān)鍵詞映射到對(duì)應(yīng)數(shù)據(jù)字段的條件概率進(jìn)行求和;第二單元,用于按照求出的和的大小順序?qū)?duì)應(yīng)的查詢轉(zhuǎn)換進(jìn)行排序。進(jìn)一步地,上述系統(tǒng)還具有下面特點(diǎn):所述第三模塊包括,第三單元,用于統(tǒng)計(jì)用戶做出的所有歷史選擇中的所述每個(gè)關(guān)鍵詞映射到所有數(shù)據(jù)字段的次數(shù);第四單元,用于計(jì)算每個(gè)關(guān)鍵詞被歷史選中的映射到每條所述查詢轉(zhuǎn)換中對(duì)應(yīng)的數(shù)據(jù)字段的次數(shù),與該關(guān)鍵詞被歷史選中的映射到所有數(shù)據(jù)字段的次數(shù)的總和的比例;第五單元,用于對(duì)于每條所述查詢轉(zhuǎn)換,將所有關(guān)鍵詞映射到對(duì)應(yīng)數(shù)據(jù)字段的條件概率與每個(gè)關(guān)鍵詞對(duì)應(yīng)的所述比例乘于一權(quán)重系數(shù)的積進(jìn)行求和;第六單元,用于按照求出的和的大小順序?qū)?duì)應(yīng)的查詢轉(zhuǎn)換進(jìn)行排序。進(jìn)一步地,上述系統(tǒng)還具有下面特點(diǎn):所述第三模塊還包括,第七單元,用于根據(jù)以下規(guī)則所述第二單元或所述第六單元的排序進(jìn)行重新排序:步驟1、從所述排序中取出排序第一的查詢轉(zhuǎn)換,放入一重排序列;步驟2、分別計(jì)算所述排序中剩余的每個(gè)查詢轉(zhuǎn)換與所述重排序列中的每個(gè)查詢轉(zhuǎn)換的相似度;步驟3、若所述重排序列中僅有一個(gè)查詢轉(zhuǎn)換,則從所述排序中取出相似度最小的查詢轉(zhuǎn)換,若相似度最小的查詢轉(zhuǎn)換有多個(gè)則取在所述排序中排在最前面的查詢轉(zhuǎn)換;若所述重排序列中有多個(gè)查詢轉(zhuǎn)換,則取趨同度最小的查詢轉(zhuǎn)換,若趨同度最小的查詢轉(zhuǎn)換有多個(gè)則取在所述排序中排在最前面的查詢轉(zhuǎn)換,所述趨同度為所述排序中每個(gè)查詢轉(zhuǎn)換與所述重排序列中的每個(gè)查詢轉(zhuǎn)換的相似度的最大值;步驟4、將取出的查詢轉(zhuǎn)換放入所述重排序列中,排在所述重排序列中的查詢轉(zhuǎn)換之后,并從所述排序中刪除所述取出的查詢轉(zhuǎn)換;重復(fù)執(zhí)行步驟2-4,直到所述排序中的查詢轉(zhuǎn)換都被刪除;所述第四模塊,具體用于按照所述重排序列中排序的查詢轉(zhuǎn)換搜索對(duì)應(yīng)的數(shù)據(jù)項(xiàng)。進(jìn)一步地,上述系統(tǒng)還具有下面特點(diǎn):所述系統(tǒng)還包括:第五模塊,用于若接收到用戶選擇一個(gè)或多個(gè)所述數(shù)據(jù)項(xiàng),則根據(jù)用戶選擇的數(shù)據(jù)項(xiàng),記錄每個(gè)關(guān)鍵詞映射到對(duì)應(yīng)數(shù)據(jù)字段的次數(shù)。綜上,本發(fā)明提供一種搜索方法及系統(tǒng),可實(shí)現(xiàn)完全自動(dòng)化并具有較高的準(zhǔn)確率;可實(shí)現(xiàn)轉(zhuǎn)換排序的自動(dòng)演化以不斷提升準(zhǔn)確率;可增強(qiáng)候選轉(zhuǎn)換的多樣性。附圖說(shuō)明圖1為本發(fā)明實(shí)施例的搜索方法的流程圖。圖2是本發(fā)明一個(gè)具體實(shí)施例的分字段數(shù)據(jù)的示意圖。圖3是本發(fā)明一個(gè)具體實(shí)施例的P(f|w)和P(w|f)的計(jì)算結(jié)果的示意圖。圖4是本發(fā)明一個(gè)具體實(shí)施例的所有可能查詢轉(zhuǎn)換的示意圖。圖5和圖6是本發(fā)明一個(gè)具體實(shí)施例的H(f|w)的記錄的示意圖。圖7是本發(fā)明一個(gè)具體實(shí)施例的H'(t(w)|w)的計(jì)算結(jié)果的示意圖。圖8為本發(fā)明實(shí)施例的搜索系統(tǒng)的示意圖。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。實(shí)施例一圖1為本發(fā)明實(shí)施例的搜索方法的流程圖,如圖1所示,本實(shí)施例的方法結(jié)合關(guān)鍵詞查詢和數(shù)據(jù)的統(tǒng)計(jì)特征自動(dòng)生成所有可行的轉(zhuǎn)換并對(duì)其排序,采納排序最高的轉(zhuǎn)換。包括以下步驟:步驟101:接收到查詢的關(guān)鍵詞集合后,根據(jù)預(yù)存的所有數(shù)據(jù)項(xiàng)分別計(jì)算每個(gè)關(guān)鍵詞映射到每個(gè)數(shù)據(jù)字段的條件概率;例如,圖2為預(yù)存的所有數(shù)據(jù)項(xiàng),對(duì)于查詢的關(guān)鍵詞集合(記作W,例如W={南京,魚})和數(shù)據(jù)字段集合(記作F,F(xiàn)={名稱,地址,菜肴}),計(jì)算W中的每個(gè)關(guān)鍵詞(記作w)映射到F中的每個(gè)數(shù)據(jù)字段(記作f)的條件概率(記作P(f|w)),計(jì)算結(jié)果如圖3所示。其中,根據(jù)條件概率的定義,P(f|w)=P(w|f)P(f)/P(w),其中P(w)與f無(wú)關(guān),因此可以忽略,將P(f|w)簡(jiǎn)化為P(w|f)P(f)。P(w|f)即w在f的取值中出現(xiàn)的概率,為此,只需統(tǒng)計(jì)數(shù)據(jù)中f的取值中包含w的那些取值的百分比,例如,計(jì)算結(jié)果如圖3所示。P(f)即...