給定查詢,有關網頁的綜合排名=網頁排名(PageRank)*相關性(TF-IDF)
網頁質量
對於一個特定的查詢,搜索結果的排名取決於兩組信息,關於網頁的質量和這個查詢與每個網頁的相關性信息。
PageRank算法--衡量網頁質量
簡單說,民主表決。
一個網頁被很多其他網頁鏈接,它的認可度高,可靠性高,計算排名時,需要給予較大的權重。
二維矩陣相乘的問題,用迭代方法解決。
Bi=A*Bi-1
B爲一維向量,bi標識第n個網頁的排名
A爲矩陣,amn表示第m個網頁指向第n個網頁的鏈接數。
網頁排名對於零概率或小概率事件需要進行平滑處理。
利用稀疏矩陣計算技巧簡化計算量——>發明了Mapreduce並行計算工具。
http://hi.baidu.com/mshltkiygobbrtq/item/772ac099020562f42916479e
Google 不斷的重複計算每個頁面的 PageRank。如果您給每個頁面一個隨機 PageRank 值(非0),那麼經過不斷的重複計算,這些頁面的 PR 值會趨向於正常和穩定。這就是搜索引擎使用它的原因。
這個方程式引入了隨機瀏覽的概念,即有人上網無聊隨機打開一些頁面,點一些鏈接。一個頁面的PageRank值也影響了它被隨機瀏覽的概率。爲了便於理解,這裏假設上網者不斷點網頁上的鏈接,最終到了一個沒有任何鏈出頁面的網頁,這時候上網者會隨機到另外的網頁開始瀏覽。
爲了對那些有鏈出的頁面公平,q = 0.15(q的意義見上文)的算法被用到了所有頁面上, 估算頁面可能被上網者放入書籤的概率。
所以,這個等式如下:
p1,p2,…,pN是被研究的頁面,M(pi)是鏈入pi頁面的數量,L(pj)是pj鏈出頁面的數量,而N是所有頁面的數量。
PageRank值是一個特殊矩陣中的特徵向量。這個特徵向量爲
R是等式的答案
如果pj不鏈向pi, 而且對每個j都成立時,等於 0
這項技術主要的弊端是,舊的頁面等級會比新頁面高,因爲新頁面,即使是非常好的頁面,也不會有很多鏈接,除非他是一個站點的子站點。
這就是 PageRank 需要多項算法結合的原因。PageRank 似乎傾向於維基百科頁面,在條目名稱的搜索結果中總在大多數或者其他所有頁面之前。原因主要是維基百科內相互的鏈接很多,並且有很多站點鏈入。
Google 經常處罰惡意提高 PageRank 的行爲。Google 究竟怎樣區分正常的鏈接交換和不正常的鏈接堆積仍然是商業機密。
代碼參考如下:
http://blog.csdn.net/midgard/article/details/7061721
確定網頁和查詢的相關性
搜索關鍵詞權重的科學度量TF-IDF
單文本詞頻(Term Frequency),關鍵詞次數除以網頁總字數。
查詢和網頁相關性:TF1+TF2……+TFn (n個關鍵詞),缺陷如下:
1、除去停止詞(對確定網頁主題沒有用處):的 和 是……
2、關鍵詞權重:一個詞預測主題能力強,權重大。
一個關鍵詞在很少的網頁中出現,則容易鎖定,權重應該大。
逆文本頻率指數(Inverse Document Frequency, IDF): log(D / Dw)
D 爲全部網頁數,Dw爲關鍵詞出現的網頁數。
改進後公式:
TF1*IDF1+TF2*IDF2+……+TFn*IDFn