java 板


LINE

先跟版主還有板友們說聲抱歉啊 這不是學校作業啦(囧),只是想研究看看啊 我大致上了解PageRank的演算法啦: PR(pi) = (1-d)/N + Σ( PR(pj)/L(pj) ) PR(pi)為目標網頁i的PR值 PR(pj)為具有指向網頁i連結的網頁j的PR值 L(pj)為網頁j中超連結的數目 N為網頁總數 d為隨機瀏覽的機率,一般設定為0.85 不過在實作上就碰到了滿多困難,例如如何parse之前所講到的紀錄所有連結資訊的txt檔 然後把對所一網頁的inLink outLink資訊作儲存,才有辦法算PageRank 因為八月才開始學java的關係,在寫比較長的程式碼時會碰到很多問題 於是之後找到了一個Package-WebLA http://webla.sourceforge.net/ 首頁 http://webla.sourceforge.net/javadocs/ API documentation 其中包含了許多Link Analysis的演算法如PageRank'HITS和SimRank等等 比較重要的是WebGraph這個Class,可以parse文件檔然後儲存連結資訊 雖然裡面寫的輸入格式跟我現有的資料格式不同,不過在修改和測試後也可以使用了 目前的問題就卡在另一個Class-PageRank上面了 其中的方法PageRank: public Double pageRank(String link) 輸入參數為目標網址,會傳回該網只在計算過後的PR值 計算了手邊紀錄了數十萬筆連結資訊的txt檔後(記憶體加到1G才有辦法算) 出現了以下問題(連結資訊格式為url1 -> url2): 1.出現在右邊的連結(如上一行的url2),傳回值全都會是Infinity 2.出現在左邊的連結(如上一行的url1),傳回值幾乎全部一樣(PR值完全相同, 小部分不相同) 想說應該是計算PR值的方法出了問題吧,但是又一直找不出來問題在哪 因此想麻煩各位大大幫我看看是哪邊寫錯了 謝謝 public void computePagerank(int iter) //iter為重複計算次數 { int n=graph.numNodes(); //WebGraph的方法 numNodes(),傳回總節點(網頁)數 double aux = (1-dampening)/n; //dampening即為d,隨機瀏覽機率(0.85) while((iter--)>0) { Map newScore = new HashMap(); for (int j=0;j<n;j++) { Map inlinks = graph.inLinks(new Integer(j)); //inLinks方法傳回參數型態為map,紀錄所有具有連向網頁pj超連結的網頁url Iterator it = inlinks.keySet().iterator(); Double weight2 = new Double(0); while (it.hasNext()) { Integer link = (Integer)(it.next()); Double weight = (Double)(inlinks.get(link)); if(weight!=null && weight.doubleValue()>0) { int numLinks = 0; Map outlinks = graph.outLinks(link); Iterator it2 = inlinks.keySet().iterator(); while (it.hasNext()) { Integer l = (Integer)(it.next()); Double w = (Double)(outlinks.get(l)); if(w!=null && w.doubleValue()>0) numLinks++; } weight2 = new Double(weight2.doubleValue() + (((Double)(scores.get(link))).doubleValue()/numLinks)); } } weight2 = new Double(aux + dampening*weight2.doubleValue()); newScore.put(new Integer(j),weight2); } for (int j=0;j<n;j++) { scores.put(new Integer(j),(Double)(newScore.get(new Integer(j)))); } } } 整個程式碼太長了所以貼我覺得有問題的部分 如果有需要再把其他部分也貼出來,或是上面網頁也有程式碼可以下載 先謝謝大家了 ※ 引述《willieliao (Willie Liao)》之銘言: : ※ 引述《kians (臨兵鬥者皆陣列在前)》之銘言: : : 如題,Google利用頁面分析+PageRank技術達成了搜尋引擎霸主的地位 : : PageRank就是給予每一個網頁一個value啦,用google自己發展的PageRank演算法 : : 用在搜尋後的網頁排序,越重要的網頁會放在越前面 : : 最近對PageRank滿有興趣的,要如何讓電腦對數以億計的網頁進行運算 : : 一般的電腦根本不可能達成吧,有點想知道演算法是怎麼寫的 : : 還是說關鍵在硬體? 用multiprocess的方式達成? : GOOG是用分散式運算 : : 有人用java寫過PageRank的演算法嘛? : 單純回答你的問題,有(舉手) : 這是我在CARNEGIE MELLON CS大二資料結構的第三還是第四個作業,兩周要寫出來, : 而且包括CRAWLER(讀取網頁並TOKENIZE),INDEXER﹛讓USER搜尋關鍵字),和PAGE : RANKING。我是用JAVA寫的,據說GOOGLE是用RUBY寫的,不過還請板上強者補充。 : 這裡是我的作業的CLASS DIAGRAM,看看是不是你想要的 : http://www.willieliao.com/ooad/src/default.dfPackage.wmf : : 希望能找到範例來參考一下,想對手邊有的幾十萬筆的連結資訊算出所有url的PageRank值 : : (格式(txt): url1->url2 : : url1->url3 : : url2->url3 : : . : : . : : . ) : : 不知道有沒有辦法辦到,先謝謝各位囉 : 既然你只要算PAGERANK,那左邊都不用管,建一個HASHMAP,對每一個右邊的 : URL先去看看MAP裡面有沒有,沒有的話用URL當KEY(假設你是STRING),用一個 : INTEGER HOLDER當DATA丟進去,KEY存在的話就把DATA的VALUE 加一 : 話說我怎麼聞到作業文的味道... --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.201.125
1F:推 forkome:推,謝謝你的分享 11/02 23:56







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP