天天看點

《資訊檢索導論》第十九章總結一、Web搜尋介紹二、網頁三、贊助搜尋四、索引規模比較五、随機網頁抽樣方法六、近似重複

一、Web搜尋介紹

前面我們都是對傳統文檔集進行檢索,而Web搜尋和傳統的搜尋完全不同,因為Web的文檔集數量是不能估計的,并且形式多樣;

一般Web都是通過B/S架構進行實作的,用戶端是浏覽器,伺服器端是web伺服器,通過HTTP進行傳輸資料;

浏覽器送出請求并接收伺服器的應答,浏覽器會自動屏蔽那些不能了解的部分;

Web的文檔集是海量的,但是如果這些資訊不能被搜尋到的話,則這些資訊是無用的,是以Web搜尋很重要。

Web搜尋的文檔集不僅要相關,而且要注重權威;

可能會遇到的問題是有些網頁是由圖檔組成的,沒有文本文字;

靜态頁面:固定頁面;

動态頁面:與資料庫互動的頁面;

Web網頁集可以轉化成一張圖,節點表示網頁,邊表示連結;

注意:Web圖可能不是強連通的,即A節點可能不能夠到達B節點;

入度為i的網頁數目正比于1/(i^a);

為了讓使用者體驗更好,一般需要:

(1)讓搜尋界面做的簡潔,搜尋出的網頁也需要盡量簡潔;

(2)相關度盡量高;

使用者查詢類型

(1)資訊類查詢:查相關主題的頁面;

(2)導航類查詢:查某個詞的官方首頁;

(3)事務類查詢:需要幹一件事,比如下載下傳;

二、網頁

網頁的主要原因是經濟利益;

1.在網頁上充滿重複的關鍵字以提高排名

2.将重複關鍵字作為背景色,使得使用者看不出,但是會被搜尋引擎建構索引

3.付費收錄(Paid Inclusion):付錢給IR公司讓他的網頁排名靠前

4.僞裝(Cloaking):spider爬到的網頁和使用者浏覽器通路的網頁不一緻,比如采集器采集時傳回相關文檔,但是使用者通路時卻給出另一個網頁;

5.橋頁(doorway page):使用者-->橋頁-->商業網頁;橋頁是相關的,但是如果通路橋頁,則直接跳轉到另一個網頁;

三、贊助搜尋

Sponsored search

在網頁中,右半部分是提供給贊助商的,贊助商給的錢越多,排名越靠前;

一般采用CPC(Cost Per Click)收費,使用者點選一次,則贊助商付給IR公司一筆錢;

有些人利用垃圾點選(Click Spam),讓贊助商多付錢給IR公司;

四、索引規模比較

注意:

1.搜尋引擎會搜尋到沒有被索引的網頁;

2.搜尋引擎不會傳回所有的索引頁面;

是以很難精确估計索引規模;

注意:可能搜尋引擎采集頁面時會進入一個陷阱伺服器,即隻要通路了這個伺服器,則伺服器會自動生成無數網頁讓采集器采集;

比較兩個搜尋引擎的索引規模

給定兩個搜尋引擎E1和E2,我們采用随機在E1和E2中抽取網頁,并比較E2抽出的網頁在E1中出現的比例,E1抽出的網頁在E2中出現的比例;

比如:

《資訊檢索導論》第十九章總結一、Web搜尋介紹二、網頁三、贊助搜尋四、索引規模比較五、随機網頁抽樣方法六、近似重複

E1/E2=y/x=(1/6)/(1/2)=1/3;是以E1索引規模較少;

y表示E1的網頁在E2中的比例;

x表示E2的網頁在E1中的比例;

五、随機網頁抽樣方法

在前面我們采用随機抽網頁的方式進行估計搜尋引擎的索引規模,但是不可能做到随機抽樣,是以我們采用一些随機抽樣的技術:

(1)随機搜尋法(Random Search):跟蹤一個使用者的查詢記錄,并從查詢結果中随機抽取網頁;

(2)随機IP位址法(Random IP Address):随機生成一個IP位址并對應的伺服器,收集該伺服器的所有網頁;

(3)随機走路法(Random Walk):如果Web是強連通的,則可以發現一個規律;

(4)随機查詢法(Random Query):随機生成一個查詢送出給E1,然後從結果中抽取一個網頁,并從網頁中随機抽取6-8個低頻詞,放在E2中查詢;

六、近似重複

在Web中有40%的網頁都是重複的,有些是完全重複,有些是近似重複,比如建立日期不同,但内容相同;

搜尋引擎需要避免索引重複的頁面;

對于完全重複的網頁檢測,可以通過每個網頁生成一個指紋進行比較;

Shingling:解決近似重複的方法

文檔D的k-shingle是類似于K-gram的概念,表示K個連續的詞項構成的序列,比如a Hello World a Hello world的3-shingle是a Hello world ,Hello World a ,World a Hello;

方法1:利用Jaccard系數計算兩篇文檔的相似度;但是計算太複雜;

方法2:

我們可以通過随機置換方法進行:

《資訊檢索導論》第十九章總結一、Web搜尋介紹二、網頁三、贊助搜尋四、索引規模比較五、随機網頁抽樣方法六、近似重複

步驟:

(1)對于每篇文檔的每個k-shingle通過Hash函數進行映射成為一個點,如上圖第一行的藍點;

(2)将這些點随機置換到新的位置,比如上圖的紅點;

(3)保留随機置換的點的最小點,取紅點的最小點;

(4)當兩篇文檔最後保留的點位置一樣時,則說明文檔近似重複;