像Hacker News一樣排序博客園首頁文章


  Hacker News 是一家關於計算機黑客和創業公司的社會化新聞網站,里面有很多有價值的信息。Hacker News的文章排序算法在2008年就公開了,對文章的排序指標計算公式如下

  其中,

  •  P表示帖子的得票數,減去1是為了忽略發帖人的投票。
  •  T表示距離發帖的時間(單位為小時),加上2是為了防止最新的帖子導致分母過小(之所以選擇2,可能是因為從原始文章出現在其他網站,到轉貼至Hacker News,平均需要兩個小時)。
  •  G表示"重力因子"(gravityth power),即將帖子排名往下拉的力量,默認值為1.8,詳情請參看阮一峰的網絡日志

  

  博客園主頁的文章,一直以來都是以時間排序,文章不論優劣,只要發布到首頁,都能在首頁上走一圈,長期以往,在園內營造一種邋遢的氛圍,很多人沒有用心寫文章就發布到首頁,甚至也包括我自己。如果文章以時間和用戶評論與推薦多項指標綜合考慮,那么可以讓真正的精華的文章排在前面。雖然首頁也有一個精華板塊,但那里幾個月前的文章都排在第一頁,只能說精華板塊的精華文章明顯不夠用。

  我將博客園首頁前10頁的文章的標題、URL、閱讀次數、推薦次數拿下來,然后按照如下的公式進行排名:  

  其中,v是閱讀次數、r是推薦次數,G是一個權重,T是文章發表時間到當前的間隔,T的單位是(10分鍾)比如T=100,表示文章發布距現在已經有100個10分鍾(即100/6=16個小時了)。

  我們希望的理想排名是優質的文章在第一頁最前面部分,而剛出來的文章在第一頁的中下部分,隨着時間的推遲,新出爐的好文章就會被大家推薦,從而排名上升,而劣質的文章將被時間拉下去,很快退出首頁。

  我把前10頁的200篇文章排序,並取前50篇,形成一個簡潔版的文章首頁,然后在linux上例行化,每隔10分鍾刷新一次,這樣就能看到一個動態的精華首頁了。排序公式是我自己想的,(1+r)/v表示推薦比例,即平均一個推薦需要多少次閱讀,這有利於優秀的文章迅速提升,剛出爐的優秀文章沒有多少閱讀量,當看過的的都點贊,那它的權重將很快提升。當然這公式也不盡合理,僅僅是我自己的主觀臆斷,G我取的是1.2,參數調優可能需要調優。  

  下面是一個樣例:

 大家可以在github上看一看使用排序后的精華首頁(10分鍾更新一次)。

  寫這篇文章是自己突發奇想,算是給博客園的一些建議吧,希望管理員可以改進,博客園最近在移動端的閱讀體驗有提示,不知道是我的手機瀏覽器變好了,還是博客園改進了。另外我認為博客園可以在個性化推薦上進行改進。

  2010年知乎出來時,我在想百度知道已經做得這么強了,現在整一個知乎能有大的成就嗎,現在看了知乎已經營造了一個良好的社區,每一個成員的都是認真地回答問題。在每一個細分領域,真的有人把一件事做到極致。

  博客園加油!

  PS:不知道我做的精華首頁放在github是否對博客園造成損失,如果有,請管理員通知,我會把例行化取消。

 

 感謝閱讀,轉載請注明出處:http://www.cnblogs.com/fengfenggirl/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM