亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于關(guān)鍵詞位置的檢索方法及裝置的制造方法

文檔序號:10724908閱讀:333來源:國知局
一種基于關(guān)鍵詞位置的檢索方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種基于關(guān)鍵詞位置的檢索方法及裝置,其中方法包括如下步驟:采集網(wǎng)頁并分析網(wǎng)頁的關(guān)鍵詞位置索引,關(guān)鍵詞位置索引為網(wǎng)頁中包括的所有關(guān)鍵詞及其在網(wǎng)頁中的對應(yīng)的位置;接收用戶輸入的查詢項并進行分詞,獲取查詢項對應(yīng)的查詢關(guān)鍵詞,查詢關(guān)鍵詞的數(shù)量為N,N為大于或等于1的自然數(shù);根據(jù)所述查詢關(guān)鍵詞在所述關(guān)鍵詞位置索引中的位置計算所述查詢關(guān)鍵詞在網(wǎng)頁中的距離,根據(jù)所述距離獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最短距離,根據(jù)所述最短距離計算所述查詢關(guān)鍵詞的相關(guān)性分數(shù);將不同網(wǎng)頁的相關(guān)性分數(shù)進行排序后輸出。本發(fā)明時間復(fù)雜度及空間復(fù)雜度低,響應(yīng)速度快。
【專利說明】
一種基于關(guān)鍵詞位置的檢索方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體而言,涉及一種基于關(guān)鍵詞位置的檢索方法及 裝置。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的發(fā)展,搜索引擎的種類也越來越多。一個搜索引擎由搜索器、索引 器、檢索器和用戶接口四個部分組成。其中,檢索器的功能是根據(jù)用戶的查詢在索引庫中快 速檢出文檔,進行文檔與查詢的相關(guān)度評價,對將要輸出的結(jié)果進行排序,并實現(xiàn)某種用戶 相關(guān)性反饋機制。
[0003] 為了提高搜索引擎的服務(wù)質(zhì)量,搜索引擎通常會考慮用戶輸入的查詢項在檢索文 檔中的位置的相關(guān)性。這是因為在對用戶檢索效果進行分析時,常常會發(fā)現(xiàn)關(guān)鍵詞之間的 位置和距離對結(jié)果影響非常大,對用戶輸入的查詢項解析解析獲取到的關(guān)鍵詞在文檔中的 位置比較近或者共現(xiàn)的密度比較大時,檢索的結(jié)果的準確度將會提升。例如對于"北京", "烤鴨"兩個關(guān)鍵詞,這兩個關(guān)鍵詞在兩個文檔出現(xiàn)的位置分別為:
[0004] 文檔 1: XXXXXXXXX 北京 XX 烤鴨 XXXXXXXXXXX;文檔 2: XX 北京 XXXXXXXXXXXXXXXXX 烤 鴨XX。通過比較發(fā)現(xiàn),從所述關(guān)鍵詞距離的角度看文檔1比文檔2相關(guān)性更高。
[0005] 當前搜索引擎通常的做法是對用戶輸入的查詢項進行解析獲取相應(yīng)的關(guān)鍵詞,根 據(jù)關(guān)鍵詞在文檔中的位置計算位置的相關(guān)性。主要包括兩種方式:1、純文本匹配方法(即完 全字符串匹配);2、分析文檔獲取并記錄所述關(guān)鍵詞在整個詞在整個文檔中的位置,然后根 據(jù)記錄的位置計算所述關(guān)鍵詞的位子的相關(guān)性。然而,由于檢索文檔的數(shù)量很大,這就導(dǎo)致 檢索速度太慢的缺陷。同時,若一篇文件中文字過多,也將導(dǎo)致相關(guān)性計算速度慢的缺陷。 這兩種方式均會造成位置相關(guān)性技術(shù)中時間復(fù)雜度以及空間復(fù)雜度太低。

【發(fā)明內(nèi)容】

[0006] 為解決現(xiàn)有的根據(jù)用戶輸入的查詢項計算文檔中位置相關(guān)性的過程中造成的時 間復(fù)雜度以及空間復(fù)雜度過高的技術(shù)缺陷,本發(fā)明通過對建立所有文檔的倒排索引表,根 據(jù)所述倒排索引表查詢所述查詢項對應(yīng)的關(guān)鍵詞在倒排索引表中的距離,計算所述關(guān)鍵詞 的位置的最優(yōu)組合,根據(jù)最優(yōu)組合的位置計算所述關(guān)鍵詞的相關(guān)性分數(shù),從而提高檢索效 率。
[0007] 本發(fā)明提供了一種基于關(guān)鍵詞位置的檢索方法,包括如下步驟:
[0008] 采集網(wǎng)頁并分析所述網(wǎng)頁的關(guān)鍵詞位置索引,所述關(guān)鍵詞位置索引為所述網(wǎng)頁中 包括的所有關(guān)鍵詞及其在網(wǎng)頁中的對應(yīng)的位置;
[0009] 接收用戶輸入的查詢項并進行分詞,獲取所述查詢項對應(yīng)的查詢關(guān)鍵詞,所述查 詢關(guān)鍵詞的數(shù)量為N,N為大于或等于1的自然數(shù);
[0010] 根據(jù)所述查詢關(guān)鍵詞在所述關(guān)鍵詞位置索引中的位置計算所述查詢關(guān)鍵詞在網(wǎng) 頁中的距離,根據(jù)所述距離獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最短距離,根據(jù)所述 最短距離計算所述查詢關(guān)鍵詞的相關(guān)性分數(shù);
[0011] 將不同網(wǎng)頁的相關(guān)性分數(shù)進行排序后輸出。
[0012] 進一步,所述根據(jù)所述查詢關(guān)鍵詞在所述關(guān)鍵詞位置索引中的位置計算所述查詢 關(guān)鍵詞在網(wǎng)頁中的距離,根據(jù)所述距離獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最短距 離,根據(jù)所述最短距離計算所述查詢關(guān)鍵詞的相關(guān)性分數(shù)包括
[0013] 判斷所述查詢關(guān)鍵詞的數(shù)量N是否大于1;
[0014] 如果N大于1,則利用第一個所述查詢關(guān)鍵詞與所述網(wǎng)頁中的包括的所有關(guān)鍵詞進 行匹配,計算第一個所述查詢關(guān)鍵詞與該網(wǎng)頁中的包括的所有關(guān)鍵詞的距離;
[0015] 將下一個所述查詢關(guān)鍵詞的與所述網(wǎng)頁中的所有關(guān)鍵詞進行匹配,計算下一個所 述查詢關(guān)鍵詞的距離所述網(wǎng)頁中每個所述關(guān)鍵詞的距離,并將本次計算獲得距離值A(chǔ)與計 算上一個所述查詢關(guān)鍵詞在同一個位置處的距離B進行比較,如果A〈B,則將該位置處的值 設(shè)為B,否則不做處理;
[0016] 直至最后一個所述查詢關(guān)鍵詞,獲取最后一個所述查詢項關(guān)鍵詞在所述網(wǎng)頁中 每個關(guān)鍵詞位置處的距離,獲取所有所述距離中值最小的距離確定最后一個所述查詢關(guān)鍵 詞在所述網(wǎng)頁中的最佳位置,根據(jù)所述最佳位置查詢所有查詢關(guān)鍵詞在所述網(wǎng)頁中的最短 距離;
[0017] 根據(jù)所述最短距離計算所述查詢關(guān)鍵詞的在所述網(wǎng)頁中的相關(guān)性分數(shù)。
[0018] 進一步,所述如果N大于1,則利用首個所述查詢關(guān)鍵詞與所述位置集合中每個位 置對應(yīng)的關(guān)鍵詞進行匹配,計算首個所述查詢關(guān)鍵詞在該位置集合中各元素位置處的距離 包括
[0019] 判斷所述查詢關(guān)鍵詞與所述網(wǎng)頁中首個關(guān)鍵詞是否匹配成功;
[0020] 如果所述查詢關(guān)鍵詞與所述網(wǎng)頁中首個關(guān)鍵詞匹配成功,則確定所述查詢關(guān)鍵詞 在所述網(wǎng)頁中首個關(guān)鍵詞處的距離為1;
[0021] 判斷所述查詢關(guān)鍵詞與所述網(wǎng)頁中的下一個關(guān)鍵詞匹配是否成功;
[0022]若匹配成功,則確定該所述查詢關(guān)鍵詞距離值在所述網(wǎng)頁中該位置處的距離為1, 否則確定該所述查詢關(guān)鍵詞在該網(wǎng)頁中的距離值為(M-N+1),其中,Μ為該所述查詢關(guān)鍵詞 在該網(wǎng)頁中該位置的值,Ν為該所述查詢關(guān)鍵詞在該網(wǎng)頁中匹配成功的所述關(guān)鍵詞的位置 的值。
[0023] 進一步,所述判斷所述查詢關(guān)鍵詞與所述網(wǎng)頁中首個關(guān)鍵詞是否匹配成功還包括
[0024] 如果所述查詢關(guān)鍵詞與所述網(wǎng)頁中首個關(guān)鍵詞匹配不成功,則確定所述查詢關(guān)鍵 詞在所述網(wǎng)頁中首個關(guān)鍵詞處的距離為無窮大。
[0025] 進一步,所述判斷所述查詢關(guān)鍵詞的數(shù)量Ν是否大于1還包括
[0026] 如果N=l,統(tǒng)計所述網(wǎng)頁中所述查詢關(guān)鍵詞的擊中率,根據(jù)所述擊中率計算所述 查詢網(wǎng)頁的相關(guān)性分數(shù)。
[0027] 本發(fā)明還提供了一種基于關(guān)鍵詞位置的檢索裝置,包括
[0028] 索引模塊,用于采集網(wǎng)頁并分析所述網(wǎng)頁的關(guān)鍵詞位置索引,所述關(guān)鍵詞位置索 引為所述網(wǎng)頁中包括的所有關(guān)鍵詞及其在網(wǎng)頁中的對應(yīng)的位置;
[0029] 分詞模塊,用于接收用戶輸入的查詢項并進行分詞,獲取所述查詢項對應(yīng)的查詢 關(guān)鍵詞,所述查詢關(guān)鍵詞的數(shù)量為Ν,Ν為大于或等于1的自然數(shù);
[0030] 計算模塊,用于根據(jù)所述關(guān)鍵詞位置索引計算所述查詢關(guān)鍵詞在網(wǎng)頁中的距離, 根據(jù)所述距離獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最短距離,根據(jù)所述最短距離計算 所述查詢關(guān)鍵詞的相關(guān)性分數(shù);
[0031] 輸入模塊,用于將不同網(wǎng)頁的相關(guān)性分數(shù)進行排序后輸出。
[0032] 進一步,所述計算模塊包括
[0033] 第一判斷子模塊,用于判斷所述查詢關(guān)鍵詞的數(shù)量N是否大于1;
[0034] 第一計算子模塊,用于如果N大于1,則利用第一個所述查詢關(guān)鍵詞與所述網(wǎng)頁中 的包括的所有關(guān)鍵詞進行匹配,計算第一個所述查詢關(guān)鍵詞與該網(wǎng)頁中的包括的所有關(guān)鍵 詞的距離;
[0035] 第二計算子模塊,用于將下一個所述查詢關(guān)鍵詞的與所述網(wǎng)頁中的所有關(guān)鍵詞進 行匹配,計算下一個所述查詢關(guān)鍵詞的距離所述網(wǎng)頁中每個所述關(guān)鍵詞的距離,并將本次 計算獲得距離值A(chǔ)與計算上一個所述查詢關(guān)鍵詞在同一個位置處的距離B進行比較,如果A〈 B,則將該位置處的值設(shè)為B,否則不做處理;
[0036] 分析子模塊,用于直至最后一個所述查詢關(guān)鍵詞,獲取最后一個所述查詢項關(guān)鍵 詞在所述網(wǎng)頁中每個關(guān)鍵詞位置處的距離,獲取所有所述距離中值最小的距離確定最后一 個所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最佳位置,根據(jù)所述最佳位置查詢所有查詢關(guān)鍵詞在所 述網(wǎng)頁中的最短距離;
[0037] 統(tǒng)計子模塊,用于根據(jù)所述最短距離計算所述查詢關(guān)鍵詞的在所述網(wǎng)頁中的相關(guān) 性分數(shù)。
[0038]更進一步,第一計算子模塊還包括
[0039] 第二判斷單元,用于判斷所述查詢關(guān)鍵詞與所述網(wǎng)頁中首個關(guān)鍵詞是否匹配成 功;
[0040] 第二計算單元,用于如果所述查詢關(guān)鍵詞與所述網(wǎng)頁中首個關(guān)鍵詞匹配成功,則 確定所述查詢關(guān)鍵詞在所述網(wǎng)頁中首個關(guān)鍵詞處的距離為1;
[0041] 第三判斷單元,用于判斷所述查詢關(guān)鍵詞與所述網(wǎng)頁中的下一個關(guān)鍵詞匹配是否 成功;
[0042]第三計算單元,用于若匹配成功,則確定該所述查詢關(guān)鍵詞距離值在所述網(wǎng)頁中 該位置處的距離為1,否則確定該所述查詢關(guān)鍵詞在該網(wǎng)頁中的距離值為(M-N+1),其中,Μ 為該所述查詢關(guān)鍵詞在該網(wǎng)頁中該位置的值,Ν為該所述查詢關(guān)鍵詞在該網(wǎng)頁中匹配成功 的所述關(guān)鍵詞的位置的值。
[0043]進一步,第一計算子模塊還包括
[0044] 第四計算單元,用于如果所述查詢關(guān)鍵詞與所述網(wǎng)頁中首個關(guān)鍵詞匹配不成功, 則確定所述查詢關(guān)鍵詞在所述網(wǎng)頁中首個關(guān)鍵詞處的距離為無窮大。
[0045] 進一步,所述計算模塊還包括
[0046] 擊中率計算子模塊,用于如果N=l,統(tǒng)計所述網(wǎng)頁中所述查詢關(guān)鍵詞的擊中率,根 據(jù)所述擊中率計算所述查詢網(wǎng)頁的相關(guān)性分數(shù)。
[0047]綜上,本發(fā)明的有益效果如下:
[0048] 1、使用最優(yōu)位置組合的方法,查找出文檔中最能符合查詢詞組合的文本區(qū)域,提 升了文本相關(guān)性的準確度和相關(guān)度。
[0049] 2、使用動態(tài)規(guī)化的方法,大幅度減少查找最優(yōu)位置組合的算法復(fù)雜度,解決了在 海量文檔中快速檢索的需求。
[0050] 3、查找到最優(yōu)位置組合后,就可以通過不同的算法計算查詢詞的相關(guān)性了。
【附圖說明】
[0051 ]圖1為本發(fā)明所述的基于關(guān)鍵詞位置的檢索方法的流程示意圖;
[0052]圖2為本發(fā)明所述的基于關(guān)鍵詞位置的檢索方法中所述關(guān)鍵詞位置索引一個實施 例的不意圖;
[0053]圖3為本發(fā)明所述的基于關(guān)鍵詞位置的檢索方法中計算所述查詢關(guān)鍵詞距離一個 實施例的流程示意圖;
[0054] 圖4為本發(fā)明所述的基于關(guān)鍵詞位置的檢索方法中計算所述查詢關(guān)鍵詞在所述位 置集合每個元素位置處的距離的一個實施例的流程示意圖;
[0055] 圖5為本發(fā)明所述的基于關(guān)鍵詞位置的檢索裝置一個實施例的結(jié)構(gòu)示意圖。
【具體實施方式】
[0056] 下面通過具體的實施例并結(jié)合附圖對本發(fā)明做進一步的詳細描述。
[0057]為了解決上述問題,本發(fā)明提供了一種基于關(guān)鍵詞位置的檢索方法。如圖1所示, 所述方法包括如下步驟:
[0058] S101、采集網(wǎng)頁并分析所述網(wǎng)頁的關(guān)鍵詞位置索引,所述關(guān)鍵詞位置索引為所述 網(wǎng)頁中包括的所有關(guān)鍵詞及其在網(wǎng)頁中的對應(yīng)的位置。
[0059] 本發(fā)明通過將采集的所有網(wǎng)頁進行掃描,獲取網(wǎng)頁中包括的關(guān)鍵詞。不同的關(guān)鍵 詞包括不同的關(guān)鍵詞標識符,因此,具體實施時,本發(fā)明首先對采集的網(wǎng)頁進行分析,提取 每個網(wǎng)頁中包括的關(guān)鍵詞并記錄其在網(wǎng)頁中的位置,根據(jù)每個網(wǎng)頁中關(guān)鍵詞及其位置建立 所述關(guān)鍵詞位置索引。如圖2所示,docid為每個網(wǎng)頁的標識符,wordid為該網(wǎng)頁中包括的關(guān) 鍵詞的標識符,hit為每個關(guān)鍵詞在該網(wǎng)頁中的位置。每個網(wǎng)頁中包括的關(guān)鍵詞數(shù)量不同, 每個關(guān)鍵詞在所述網(wǎng)頁中的位置不同。因此本發(fā)明首先對網(wǎng)頁進行分析,獲取所有網(wǎng)頁的 標識符,統(tǒng)計每個網(wǎng)頁標識符包括的關(guān)鍵詞標識符并記錄每個關(guān)鍵詞在網(wǎng)頁中的位置。
[0060] S102、接收用戶輸入的查詢項并進行分詞,獲取所述查詢項對應(yīng)的查詢關(guān)鍵詞,所 述查詢關(guān)鍵詞的數(shù)量為N,N為大于或等于1的自然數(shù)。
[0061] 具體實施時,查詢關(guān)鍵詞的獲取方式是對用戶輸入的查詢項進行分詞算法獲取 的。例如"好看的電影",在分詞算法中會被分為"好看"、"的"、"電影",其中"的"字因為經(jīng)常 出現(xiàn),會被作為"停用詞"給去除。所以最后所述查詢項分詞獲取的查詢關(guān)鍵詞結(jié)果是"好 看"、"電影"。
[0062] S103、根據(jù)所述查詢關(guān)鍵詞在所述關(guān)鍵詞位置索引中的位置計算所述查詢關(guān)鍵詞 在網(wǎng)頁中的距離,根據(jù)所述距離獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最短距離,根據(jù) 所述最短距離計算所述查詢關(guān)鍵詞的相關(guān)性分數(shù)。
[0063] 本發(fā)明中,根據(jù)用戶輸入的查詢項分詞獲取的查詢關(guān)鍵詞的數(shù)量并不確定。具體 實施時,一般至少包括兩個查詢關(guān)鍵詞。本發(fā)明通過計算所述查詢關(guān)鍵詞在所述關(guān)鍵詞位 置索引中的距離獲取所述關(guān)鍵詞在查詢網(wǎng)頁中的相關(guān)性分數(shù)。由于所述查詢關(guān)鍵詞的數(shù)量 并不確定,每個所述查詢關(guān)鍵詞在網(wǎng)頁中的位置可能不同,從而導(dǎo)致該網(wǎng)頁與所述查詢關(guān) 鍵詞的相關(guān)性不大。例如查詢關(guān)鍵詞"北京"和"烤鴨",文檔1及文檔2中這兩個查詢關(guān)鍵詞 在文檔中的位置分別如下:
[0064] 文檔 1: XXXXXXXXX 北京 XX 烤鴨 XXXXXXXXXXX;
[0065] 文檔 2: XX 北京 XXXXXXXXXXXXXXXXX 烤鴨 XX。
[0066] 通過比較發(fā)現(xiàn),從所述查詢關(guān)鍵詞在文檔中的位置的角度看文檔1比文檔2相關(guān)性 更高。因此當存在多個所述查詢關(guān)鍵詞時,需要計算所述查詢關(guān)鍵詞在該網(wǎng)頁中的最近距 離,從而最大程度的計算所述查詢關(guān)鍵詞與所述網(wǎng)頁的相關(guān)性。
[0067] 與傳統(tǒng)的根據(jù)查詢關(guān)鍵詞在網(wǎng)頁中的距離計算相關(guān)性分數(shù)的技術(shù)相比較,本發(fā)明 并非采用純文本(即字符完全匹配)這種時間復(fù)雜度及空間復(fù)雜度都很大的匹配算法。本發(fā) 明首先所有的網(wǎng)頁進行分析處理獲取所述關(guān)鍵詞位置索引表,再將根據(jù)用戶輸入的查詢項 分詞獲得的查詢關(guān)鍵詞與所述關(guān)鍵詞位置索引表進行匹配,計算所述查詢關(guān)鍵詞在所述關(guān) 鍵詞位置索引表中每個關(guān)鍵詞的位置處的距離,從而有效降低檢索過程的時間復(fù)雜度及空 間復(fù)雜度。
[0068] 例如,獲得了一個最佳位置后,可選的通過所述查詢關(guān)鍵詞位置相關(guān)性性分數(shù),計 算公式為:
[0070] 其中,smoothA和smoothB為預(yù)設(shè)的平滑參數(shù),words_count為所述關(guān)鍵詞位置索引 中關(guān)鍵詞的數(shù)量,span為關(guān)鍵詞分布分數(shù)的距離,promo te參數(shù)用于挖掘span分數(shù)變化的差 異程度。
[0071] S104、將不同網(wǎng)頁的相關(guān)性分數(shù)進行排序后輸出。
[0072] 如圖3所示,S103具體包括如下步驟:
[0073] S1031、根據(jù)所述關(guān)鍵詞位置索引獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的位置 集合;
[0074] S1032、判斷所述查詢關(guān)鍵詞的數(shù)量N是否大于1;
[0075] S1033、如果N大于1,則利用首個所述查詢關(guān)鍵詞與所述位置集合中每個位置對應(yīng) 的關(guān)鍵詞進行匹配,計算首個所述查詢關(guān)鍵詞在該位置集合中各元素位置處的距離;
[0076] S1034、將下一個所述查詢關(guān)鍵詞的與所述位置集合中每個位置對應(yīng)的關(guān)鍵詞進 行匹配,計算下一個所述查詢關(guān)鍵詞在該位置集合中各元素位置處的距離,并將本次計算 獲得距離A與計算上一個所述查詢關(guān)鍵詞在同一個位置處的距離B進行比較,如果A〈B,則將 該位置處的值設(shè)為B,否則不做處理。
[0077] S1035、直至最后一個所述查詢關(guān)鍵詞,獲取最后一個所述查詢項關(guān)鍵詞在該位置 集合中各元素位置處的距離,獲取所有所述距離中值最小的距離確定最后一個所述查詢關(guān) 鍵詞在所述網(wǎng)頁中的最佳位置,根據(jù)所述最佳位置查詢所有查詢關(guān)鍵詞在所述網(wǎng)頁中的最 短距離;
[0078] S1036、根據(jù)所述最短距離計算所述查詢關(guān)鍵詞的在所述網(wǎng)頁中的相關(guān)性分數(shù)。
[0079] 進一步,S103中所述判斷所述查詢關(guān)鍵詞的數(shù)量N是否大于1還包括
[0080] S1037、如果N=l,統(tǒng)計所述位置集合中所述查詢關(guān)鍵詞的擊中率,根據(jù)所述擊中 率計算所述查詢網(wǎng)頁的相關(guān)性分數(shù)。
[0081] 如圖4所示,S1033中如果N大于1,則利用首個所述查詢關(guān)鍵詞與所述位置集合中 每個位置對應(yīng)的關(guān)鍵詞進行匹配,計算首個所述查詢關(guān)鍵詞在該位置集合中各元素位置處 的距離包括如下步驟:
[0082] S201、判斷所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵詞是否匹配成 功;
[0083] S202、如果所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵詞匹配成功, 則確定所述查詢關(guān)鍵詞在所述網(wǎng)頁中首個關(guān)鍵詞處的距離為1;
[0084] S203、判斷所述查詢關(guān)鍵詞與所述位置集合中的下一個元素對應(yīng)的關(guān)鍵詞匹配是 否成功;
[0085] S204、若匹配成功,則確定該所述查詢關(guān)鍵詞距離值在所述位置集合中該元素位 置處的距離為1,否則確定該所述查詢關(guān)鍵詞在該位置集合中的距離值為(M-N+1),其中,Μ 為該所述查詢關(guān)鍵詞在該位置集合中該元素位置處的值,Ν為該所述查詢關(guān)鍵詞在該位置 集合中上一個所述查詢關(guān)鍵詞位置處的值。
[0086] 進一步,所述S1032還包括
[0087] S205、如果所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵詞匹配不成 功,則確定所述查詢關(guān)鍵詞在所述位置集合中首個元素位置處的距離為無窮大。
[0088] 本發(fā)明還提供了一種基于關(guān)鍵詞位置的檢索裝置。如圖5所示,所述裝置包括
[0089] 索引模塊10,用于采集網(wǎng)頁并分析所述網(wǎng)頁的關(guān)鍵詞位置索引,所述關(guān)鍵詞位置 索引為所述網(wǎng)頁中包括的所有關(guān)鍵詞及其在網(wǎng)頁中的對應(yīng)的位置;
[0090] 分詞模塊20,用于接收用戶輸入的查詢項并進行分詞,獲取所述查詢項對應(yīng)的查 詢關(guān)鍵詞,所述查詢關(guān)鍵詞的數(shù)量為Ν,Ν為大于或等于1的自然數(shù);
[0091] 計算模塊30,用于根據(jù)所述查詢關(guān)鍵詞在所述關(guān)鍵詞位置索引中的位置計算所述 查詢關(guān)鍵詞在網(wǎng)頁中的距離,根據(jù)所述距離獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最短 距離,根據(jù)所述最短距離計算所述查詢關(guān)鍵詞的相關(guān)性分數(shù);
[0092] 輸入模塊40,用于將不同網(wǎng)頁的相關(guān)性分數(shù)進行排序后輸出。
[0093]進一步,所述計算模塊包括
[0094] 位置子模塊,用于根據(jù)所述關(guān)鍵詞位置索引獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁 中的位置集合;
[0095] 第一判斷子模塊,用于判斷所述查詢關(guān)鍵詞的數(shù)量Ν是否大于1;
[0096] 第一計算子模塊,用于如果Ν大于1,則利用首個所述查詢關(guān)鍵詞與所述位置集合 中每個位置對應(yīng)的關(guān)鍵詞進行匹配,計算首個所述查詢關(guān)鍵詞在該位置集合中各元素位置 處的距離;
[0097] 第二計算子模塊,用于將下一個所述查詢關(guān)鍵詞的與所述位置集合中每個位置 對應(yīng)的關(guān)鍵詞進行匹配,計算下一個所述查詢關(guān)鍵詞在該位置集合中各元素位置處的距 離,并將本次計算獲得距離Α與計算上一個所述查詢關(guān)鍵詞在同一個位置處的距離Β進行比 較,如果A〈B,則將該位置處的值設(shè)為B,否則不做處理;
[0098] 分析子模塊,用于直至最后一個所述查詢關(guān)鍵詞,獲取最后一個所述查詢項關(guān)鍵 詞在該位置集合中各元素位置處的距離,獲取所有所述距離中值最小的距離確定最后一個 所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最佳位置,根據(jù)所述最佳位置查詢所有查詢關(guān)鍵詞在所述 網(wǎng)頁中的最短距離;
[0099]統(tǒng)計子模塊,用于根據(jù)所述最短距離計算所述查詢關(guān)鍵詞的在所述網(wǎng)頁中的相關(guān) 性分數(shù)。
[0100]進一步,第一計算子模塊還包括
[0101]第四計算單元,用于如果所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵 詞匹配不成功,則確定所述查詢關(guān)鍵詞在所述位置集合中首個元素位置處的距離為無窮 大。
[0102] 進一步,第一計算子模塊還包括
[0103] 第二判斷單元,用于判斷所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵 詞是否匹配成功;
[0104] 第二計算單元,用于如果所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵 詞匹配成功,則確定所述查詢關(guān)鍵詞在所述網(wǎng)頁中首個關(guān)鍵詞處的距離為1;
[0105] 第三判斷單元,用于判斷所述查詢關(guān)鍵詞與所述位置集合中的下一個元素對應(yīng)的 關(guān)鍵詞匹配是否成功;
[0106] 第三計算單元,用于若匹配成功,則確定該所述查詢關(guān)鍵詞距離值在所述位置集 合中該元素位置處的距離為1,否則確定該所述查詢關(guān)鍵詞在該位置集合中的距離值為(M-N+1),其中,Μ為該所述查詢關(guān)鍵詞在該位置集合中該元素位置處的值,N為該所述查詢關(guān)鍵 詞在該位置集合中上一個所述查詢關(guān)鍵詞位置處的值。
[0107] 所述計算模塊還包括
[0108] 擊中率計算子模塊,用于如果N=l,統(tǒng)計所述位置集合中所述查詢關(guān)鍵詞的擊中 率,根據(jù)所述擊中率計算所述查詢網(wǎng)頁的相關(guān)性分數(shù)。
[0109] 本發(fā)明使用動態(tài)規(guī)化的方法可以大大減少查找最優(yōu)距離組合的算法復(fù)雜度。下面 以網(wǎng)頁Α為例說明本發(fā)明。假設(shè)網(wǎng)頁Α包括的內(nèi)容為d a d b a c d d a c。用戶輸入的查詢 項分詞獲取的關(guān)鍵詞分別為a、b、c。
[0110] 網(wǎng)頁A中并非全部內(nèi)容都包括a、b及c,因此本發(fā)明首先對所述網(wǎng)頁進行分析,獲取 該網(wǎng)頁中包括a、b及c的位置。
[0111] 如下所示:
[0113] 根據(jù)以上可知,所述a、b及c在所述網(wǎng)頁中的位置集合為(2 4 5 6 9 10),具體實 施時,可通過數(shù)據(jù)存儲所述網(wǎng)頁中a、b及c的位置。
[0114]
分別對應(yīng)命中的詞為:
[0115] 本發(fā)明首先記錄所述查詢關(guān)鍵詞在文檔中的位置,從而將所述查詢關(guān)鍵詞在所述 位置集合進行多次迭代。例如,首先用所述查詢關(guān)鍵詞a遍歷所述位置集合;第二次計算a b 在文檔中的最小距離,如ab,具體計算時直接遍歷b在鎖位置集合即可,最后遍歷c,即完成 a、b及c的組合檢索。用j表示遍歷positions位置集合。
[0116] 假設(shè)min_span是一個一維數(shù)組,數(shù)組大小為查詢關(guān)鍵詞在網(wǎng)頁中總共出現(xiàn)的位 置,該數(shù)組中的元素的個數(shù)為所述查詢關(guān)鍵詞在網(wǎng)頁中出現(xiàn)的次數(shù)(本例中為6個hmiru span[j]代表的是第j個位置之前的最優(yōu)組合到第j個位置的距離(包含該最優(yōu)組合的長 度),如文檔"a b c d"在查詢詞為"a b"時,min_span[l] = 2(j指向b),min_span[3]=4(j 指向d)。在每一輪的迭代中,如果在某個position位置計算出的min_span[j]值比上一輪迭 代的大,貝丨】替換掉上一輪的min_span[ j]值。
[0117] 具體計算如下:
[0118]初始化:(X表示無窮大)
[0120] i.第一輪迭代:
[0121] 當查詢關(guān)鍵詞為a時:
[0123](此刻最近的最優(yōu)組合為文檔中位置為2的term a,距離當前positions!!j] =4為3 距離)
[0125](此刻最近的最優(yōu)組合為文檔中位置為5的term a,距離當前positions!!j] = 5為1 個距離)
[0126]迭代至結(jié)束…..
[0128] ii.第二輪迭代:
[0129] 加入term b,當前查詢詞為a b
[0131 ](因為當前詞為a,沒有遇到剛加入的term b,因此min_occu為X;X比之前的1大,將 它替換為X)
[0133] (口08;[1:;[0118為4的詞命中了13,111;[11_0(^11改為4。對于13來說,該位置的111;[11_8口311為1, 但對于a來說,該位置的min_span為3,因此對于a b查詢詞來說,應(yīng)該取這兩個值的最大值 3)
[0134] 迭代至結(jié)束……
[0136] iii.第三輪迭代:
[0137] 加入term c,當前查詢詞為a b c
[0138] 迭代至結(jié)束…·
[OHO] iv.最后的結(jié)果
[0141 ] 遍歷min_span,選取其中的最小值3,即為最優(yōu)位置組合的長度。選取該posit ion 往前3距離的文本就是最優(yōu)距離的組合,下劃線對應(yīng)的查詢關(guān)鍵詞的組合。
[0143] 例如,上述獲取的下劃線的組合為最優(yōu)位置組合,那么可以先計算span_score,假 如words_count = 3,span = 3,通過設(shè)置smoothA和smoothB,以及promote,可以計算出一個 span_score = exp( (words_count+smoothA)/(span+smoothB),promote) 〇計算相關(guān)性分數(shù) 后,利用本發(fā)明的方法獲取上述最優(yōu)位置組合,即逆序b,a,c,再計算逆序b,a,c的相關(guān)性 分數(shù),可選的按照下述公式計算:
[0144] Reverse_score = exp(1-(reverse_count+smoothA)/max_reverse_count+ smooth),promote),同樣的smoothA和smoothB都是作分數(shù)的平滑處理,promote參數(shù)控制分 數(shù)的差異程度。
[0145] 以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1. 一種基于關(guān)鍵詞位置的檢索方法,其特征在于,包括如下步驟: 采集網(wǎng)頁并分析所述網(wǎng)頁的關(guān)鍵詞位置索引,所述關(guān)鍵詞位置索引為所述網(wǎng)頁中包括 的所有關(guān)鍵詞及其在網(wǎng)頁中的對應(yīng)的位置; 接收用戶輸入的查詢項并進行分詞,獲取所述查詢項對應(yīng)的查詢關(guān)鍵詞,所述查詢關(guān) 鍵詞的數(shù)量為N,N為大于或等于1的自然數(shù); 根據(jù)所述查詢關(guān)鍵詞在所述關(guān)鍵詞位置索引中的位置計算所述查詢關(guān)鍵詞在網(wǎng)頁中 的距離,根據(jù)所述距離獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最短距離,根據(jù)所述最短 距離計算所述查詢關(guān)鍵詞的相關(guān)性分數(shù); 將不同網(wǎng)頁的相關(guān)性分數(shù)進行排序后輸出。2. 根據(jù)權(quán)利要求1所述的基于關(guān)鍵詞位置的檢索方法,其特征在于,所述根據(jù)所述查詢 關(guān)鍵詞在所述關(guān)鍵詞位置索引中的位置計算所述查詢關(guān)鍵詞在網(wǎng)頁中的距離,根據(jù)所述距 離獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最短距離,根據(jù)所述最短距離計算所述查詢關(guān) 鍵詞的相關(guān)性分數(shù)包括 根據(jù)所述關(guān)鍵詞位置索引獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的位置集合; 判斷所述查詢關(guān)鍵詞的數(shù)量N是否大于1; 如果N大于1,則利用首個所述查詢關(guān)鍵詞與所述位置集合中每個位置對應(yīng)的關(guān)鍵詞進 行匹配,計算首個所述查詢關(guān)鍵詞在該位置集合中各元素位置處的距離; 將下一個所述查詢關(guān)鍵詞的與所述位置集合中每個位置對應(yīng)的關(guān)鍵詞進行匹配,計算 下一個所述查詢關(guān)鍵詞在該位置集合中各元素位置處的距離,并將本次計算獲得距離A與 計算上一個所述查詢關(guān)鍵詞在同一個位置處的距離B進行比較,如果A〈B,則將該位置處的 值設(shè)為B,否則不做處理; 直至最后一個所述查詢關(guān)鍵詞,獲取最后一個所述查詢項關(guān)鍵詞在該位置集合中各元 素位置處的距離,獲取所有所述距離中值最小的距離確定最后一個所述查詢關(guān)鍵詞在所述 網(wǎng)頁中的最佳位置,根據(jù)所述最佳位置查詢所有查詢關(guān)鍵詞在所述網(wǎng)頁中的最短距離; 根據(jù)所述最短距離計算所述查詢關(guān)鍵詞的在所述網(wǎng)頁中的相關(guān)性分數(shù)。3. 根據(jù)權(quán)利要求2所述的基于關(guān)鍵詞位置的檢索方法,其特征在于,所述如果N大于1, 則利用首個所述查詢關(guān)鍵詞與所述位置集合中每個位置對應(yīng)的關(guān)鍵詞進行匹配,計算首個 所述查詢關(guān)鍵詞在該位置集合中各元素位置處的距離包括 判斷所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵詞是否匹配成功; 如果所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵詞匹配成功,則確定所述 查詢關(guān)鍵詞在所述網(wǎng)頁中首個關(guān)鍵詞處的距離為1; 判斷所述查詢關(guān)鍵詞與所述位置集合中的下一個元素對應(yīng)的關(guān)鍵詞匹配是否成功; 若匹配成功,則確定該所述查詢關(guān)鍵詞距離值在所述位置集合中該元素位置處的距離 為1,否則確定該所述查詢關(guān)鍵詞在該位置集合中的距離值為(M-N+1),其中,Μ為該所述查 詢關(guān)鍵詞在該位置集合中該元素位置處的值,Ν為該所述查詢關(guān)鍵詞在該位置集合中上一 個所述查詢關(guān)鍵詞位置處的值。4. 根據(jù)權(quán)利要求3所述的基于關(guān)鍵詞位置的檢索方法,其特征在于,所述判斷所述查詢 關(guān)鍵詞與所述網(wǎng)頁中首個關(guān)鍵詞是否匹配成功還包括 如果所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵詞匹配不成功,則確定所 述查詢關(guān)鍵詞在所述位置集合中首個元素位置處的距離為無窮大。5. 根據(jù)權(quán)利要求2所述的基于關(guān)鍵詞位置的檢索方法,其特征在于,所述判斷所述查詢 關(guān)鍵詞的數(shù)量N是否大于1還包括 如果N=l,統(tǒng)計所述位置集合中所述查詢關(guān)鍵詞的擊中率,根據(jù)所述擊中率計算所述 查詢網(wǎng)頁的相關(guān)性分數(shù)。6. -種基于關(guān)鍵詞位置的檢索裝置,其特征在于,包括 索引模塊,用于采集網(wǎng)頁并分析所述網(wǎng)頁的關(guān)鍵詞位置索引,所述關(guān)鍵詞位置索引為 所述網(wǎng)頁中包括的所有關(guān)鍵詞及其在網(wǎng)頁中的對應(yīng)的位置; 分詞模塊,用于接收用戶輸入的查詢項并進行分詞,獲取所述查詢項對應(yīng)的查詢關(guān)鍵 詞,所述查詢關(guān)鍵詞的數(shù)量為N,N為大于或等于1的自然數(shù); 計算模塊,用于根據(jù)所述查詢關(guān)鍵詞在所述關(guān)鍵詞位置索引中的位置計算所述查詢關(guān) 鍵詞在網(wǎng)頁中的距離,根據(jù)所述距離獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的最短距離, 根據(jù)所述最短距離計算所述查詢關(guān)鍵詞的相關(guān)性分數(shù); 輸入模塊,用于將不同網(wǎng)頁的相關(guān)性分數(shù)進行排序后輸出。7. 根據(jù)權(quán)利要求1所述的檢索裝置,其特征在于,所述計算模塊包括 位置子模塊,用于根據(jù)所述關(guān)鍵詞位置索引獲取所有所述查詢關(guān)鍵詞在所述網(wǎng)頁中的 位置集合; 第一判斷子模塊,用于判斷所述查詢關(guān)鍵詞的數(shù)量N是否大于1; 第一計算子模塊,用于如果N大于1,則利用首個所述查詢關(guān)鍵詞與所述位置集合中每 個位置對應(yīng)的關(guān)鍵詞進行匹配,計算首個所述查詢關(guān)鍵詞在該位置集合中各元素位置處的 距離; 第二計算子模塊,用于將下一個所述查詢關(guān)鍵詞的與所述位置集合中每個位置對應(yīng)的 關(guān)鍵詞進行匹配,計算下一個所述查詢關(guān)鍵詞在該位置集合中各元素位置處的距離,并將 本次計算獲得距離A與計算上一個所述查詢關(guān)鍵詞在同一個位置處的距離B進行比較,如果 A〈B,則將該位置處的值設(shè)為B,否則不做處理; 分析子模塊,用于直至最后一個所述查詢關(guān)鍵詞,獲取最后一個所述查詢項關(guān)鍵詞在 該位置集合中各元素位置處的距離,獲取所有所述距離中值最小的距離確定最后一個所述 查詢關(guān)鍵詞在所述網(wǎng)頁中的最佳位置,根據(jù)所述最佳位置查詢所有查詢關(guān)鍵詞在所述網(wǎng)頁 中的最短距離; 統(tǒng)計子模塊,用于根據(jù)所述最短距離計算所述查詢關(guān)鍵詞的在所述網(wǎng)頁中的相關(guān)性分 數(shù)。8. 根據(jù)權(quán)利要求1所述的檢索裝置,其特征在于,第一計算子模塊還包括 第二判斷單元,用于判斷所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵詞是 否匹配成功; 第二計算單元,用于如果所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵詞匹 配成功,則確定所述查詢關(guān)鍵詞在所述網(wǎng)頁中首個關(guān)鍵詞處的距離為1; 第三判斷單元,用于判斷所述查詢關(guān)鍵詞與所述位置集合中的下一個元素對應(yīng)的關(guān)鍵 詞匹配是否成功; 第三計算單元,用于若匹配成功,則確定該所述查詢關(guān)鍵詞距離值在所述位置集合中 該元素位置處的距離為1,否則確定該所述查詢關(guān)鍵詞在該位置集合中的距離值為(M-N+ 1),其中,Μ為該所述查詢關(guān)鍵詞在該位置集合中該元素位置處的值,N為該所述查詢關(guān)鍵詞 在該位置集合中上一個所述查詢關(guān)鍵詞位置處的值。9. 根據(jù)權(quán)利要求1所述的檢索裝置,其特征在于,第一計算子模塊還包括 第四計算單元,用于如果所述查詢關(guān)鍵詞與所述位置集合中首個元素對應(yīng)的關(guān)鍵詞匹 配不成功,則確定所述查詢關(guān)鍵詞在所述位置集合中首個元素位置處的距離為無窮大。10. 根據(jù)權(quán)利要求1所述的檢索裝置,其特征在于,所述計算模塊還包括 擊中率計算子模塊,用于如果N=l,統(tǒng)計所述位置集合中所述查詢關(guān)鍵詞的擊中率,根 據(jù)所述擊中率計算所述查詢網(wǎng)頁的相關(guān)性分數(shù)。
【文檔編號】G06F17/30GK106095779SQ201610361720
【公開日】2016年11月9日
【申請日】2016年5月26日
【發(fā)明人】江永青
【申請人】達而觀信息科技(上海)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1