作業第三步 Top10的最重要頁面

2021-05-23 09:43:42 字數 1086 閱讀 9140

到了這一步,這次的作業基本計算完成了。通過得到url的出入度資訊,排出top10的最重要頁面。

在抓取過程中,我們建立了自己extractor,然後又在bdbfrontier中修改了**實現了出入度的檔案儲存,於是接下來只需對檔案進行分析利用pagerank演算法即可。

思路一:

這是最常規的方法,也是第一時間可以相處的方法,就是利用出度關係,直接構造乙個鄰接矩陣,讀取矩陣之後進行

n g= 0.85*l

t +0.15/11(1

n )n p

0 =(1/11,1/11,….) tn

p 1=gp

0迭代計算,直接動手實現。課堂上老師提到了matlab,所以我們決定小試一下,matlab由於其資料解圍矩陣形式儲存,所以處理矩陣會有很大優勢。

所以**中只是簡單的呼叫matlab的一些現成的函式即可輕鬆完成。**極其簡單

matrix

x=0.15

[line,row]=size(m)

p=ones(line,1)/line

i=0e=ones(line,line)

while i<10

g=(1-x)*m.'+x*e/line

p=g*p

p=p/sum(p)

i=i+1

end這裡建設矩陣存在matrix.m檔案中,直接迴圈計算。

貌似到這裡已經很完美的解決了作業,問題出現了:ccer有近20000頁面,存成矩陣的話就會有20000x20000個元素,簡單計算一下生成的純文字檔案將會多達數g,計算的效率如何保證?

思路二:

由於一中存在的嚴重問題,自然而然的想到稀疏矩陣的表示,然而在heritrix中,我們只儲存了每個頁面及其的出度,以及頁面的列表,因此需要利用這兩個檔案構造出係數矩陣的表達形式。

具體操作可以有很多選擇,為了提高效率我們選擇了c++語言,具體實現此處不再贅述。

得到稀疏矩陣之後,就可以逐行對其進行操作,大大提高了效率。

結果資料仍在處理之中,稍後奉上。

p.s.首先感謝國家,然後感謝戴志偉童鞋,正是他對我們的資料量產生了質疑使得我們如夢初醒,驀然回首,發現是在過於信任數學軟體而忽略了資料本身的龐大,特此表示感謝。

lucene第三步 建立索引

對所有文件分析得出的語彙單元進行索引,索引的目的是為了搜尋,最終要實現只搜尋被索引的語彙單元從而找到document 文件 注意 建立索引是對語彙單元索引,通過詞語找文件,這種索引的結構叫倒排索引結構。傳統方法是根據檔案找到該檔案的內容,在檔案內容中匹配搜尋關鍵字,這種方法是順序掃瞄方法,資料量大 ...

第三步 移動sprite小精靈

開啟第二步的專案,給遊戲新增敵人enemies 自定義addtarget 函式來完成這項工作 使敵人從螢幕左邊出生,以乙個隨機random的速度向左移動 在helloworldscene.h標頭檔案加入void addtarget 宣告 在helloworldscene.cpp檔案中實現該函式 並新...

新人產品分析 第三步(5)

決定分析報告的細節有很多分別為 文字格式 格式 水印 大小 清晰度 排列 標點符號 合理的分段 正確的使用各種大綱級別,合理使用隔頁 各種符號輔助,這才是乙個專業的產品分析報告。水印 不要在上保留各種水印。但是一些必要的水印需要保留 有版權申明的 資料 機構的原始水印。大小 最小不要低於300畫素 ...