2010-12-22 123 views
6

我正在開發一個微型論壇,通過一個特殊的用戶發佈一個快速(接近推特大小)的主題消息,這些訂閱者可以用他們自己的大小的消息做出響應。直截了當,不要對任何形式進行「挖掘」或投票,只是按時間順序對每個主題消息進行回覆。但預計流量很高。趨勢算法

我們希望標誌根據他們atract響應議話題的消息,使用0分至10

被google搜索趨勢算法和開源社區的應用實例一會兒,到目前爲止有收集到的兩個有趣的參考,我不完全神交尚未:

從第一個我明白需要檢查活動的斜率,並平衡活動規模差異很大的兩個項目之間的重量。但是,我如何比較很多項目,隨着時間的推移快速增長?然後,如何將「buzz成績」中的項目從0分到10分?

第二個參考是令人着迷的,但在這一點上我的頭。從第一遍我已經理解需要保持內存使用的穩定性,同時保留計數器並在必要時存儲對項目的引用。但是,我還沒有爲我的特定用例計算出合適的算法。

值得注意的是,我來自非計算機科學,絕對不是統計背景。請耐心等待:)任何幫助和代碼示例(特別是在Ruby中)將不勝感激。

+0

更新:剛剛轉發這個偉大的文章[如何建立一個熱門的算法,你可以自豪](http://blog.linkibol.com/2010/05/07/how-to-build-a -popularity-algorithm-you-can-be-proud-of /) – oliverbarnes 2011-01-13 21:04:08

+0

@Joe Doyle:感謝您幫助[清理](http://meta.stackexchange.com/questions/128315/the-great-stack- overflow-tag-question-cleanup-of-2012),但這不是[tag:trends]的合法用法嗎? – 2012-04-30 03:17:21

回答

5

直覺說這個問題的解決方案不需要太多的統計數據,通過基於一些簡單的度量排列主題可能已經爲您提供了一個有趣的「趨勢主題」選擇。

一種方法是通過在最近一小時/每天/每週生成的數字評論排序主題...並選擇最重要的主題。

另一種方法是計算每個主題的評論數量,並將其除以主題的「年齡」。立即生成評論的新主題將被視爲趨勢,而隨着年齡的增長,包含許多評論的舊主題將會減少趨勢。

這些實現可以很容易地在Ruby/Rails中創建,甚至可以在SQL查詢中完成,只要這些表包含發佈日期和評論數。