搜索引擎,讀《數學之美》

1.下載網頁
把每一個網頁當作節點,鏈接當作弧,組成一個複雜的圖,下載則要遍歷整個圖,採用深
度遍歷還是廣度遍歷?
廣度優先:爬蟲應該是在有限時間裏面爬下最重要的網頁,網站最重要的顯然是首頁。
深度優先:下載服務器和網站的服務器之間建立通信的過程是需要時間的,爬蟲是分佈式
(如何建立複雜網絡系統並協調服務器的任務?)的系統,對於某個特定的網站服務器,
一般由特定的幾臺服務器專門下載,下載完一個站點再下載下一個站點,而不是先下載每
個站點的首頁再輪迴第二次下載。
2.建立索引
提取頁面url,記錄url(防止重複下載),怎麼存儲?
哈希表(怎麼維護?)
實際上是不直接存儲url,因爲太長。存儲下所有的url到哈希表裏面,需要100TB的空間。
而且查找的時候是把哈希表放到內存裏面,所以這100TB不是硬盤能存儲就可以的,需要
用內存來存儲。
存儲這些url要用信息指紋,將每一個url映射到128位2進制,也就是16字節。這個映射
類似於md5加密,也是一種加密方式。
用一個很長的二進制數表示一個關鍵詞是否出現
比如“原子能”這個關鍵詞
0100100011000001.......表示第2,5,9,10,16篇文章裏面含有這個關鍵字
假定“應用”這個關鍵字:0010100110000001....
搜索時有這兩個關鍵字時,將這兩個二進制數AND一下。
布爾運算,普通計算機一秒可以做10億次以上。
如何確定網頁和查詢的相關性,將關鍵詞賦予權重,比如某網頁“原子能”出現2次,“的”
出現35次,“應用”出現5次,停止詞權重爲0,“應用”的權重比“原子能”的權重小,(一
個關鍵詞w在Dw個網頁中出現過,Dw越大,w的權重越小)
3.對網頁進行排序
大概上是一個網頁被其他網頁所連接,他的排名就高。
PageRank算法
網頁Y的排名來自所有指向這個網頁的其他網頁X1,X2,X3....Xk的權重之和。
如何度量權重?--->網頁本身的排名
解決這個問題,應用了二維矩陣相乘,並用迭代的方法解決。(假定網頁權重初值相同)
矩陣太大------>稀疏矩陣
反排名作弊
從通信的角度考慮,抗噪聲和過濾噪聲
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章