我正在开发各种微型论坛,由特殊用户发布一个快速(接近推文大小)主题消息,订阅者可以使用他们自己的大小相同的消息进行响应。直截了当,没有“挖掘”或任何形式的投票,只是按时间顺序排列每个主题消息的响应。但预计会有很高的流量。
我们希望根据他们提取的响应动态标记主题消息,使用0到10的等级。
谷歌搜索趋势算法和开源社区应用程序示例已有一段时间了,到目前为止已经收集了两个有趣的参考资料,我还没有完全理解:
Understanding algorithms for measuring trends,有关使用基线趋势算法比较维基百科综合浏览量的讨论,请点击此处。
The Britney Spears Problem,一篇关于如何对大量数据流进行排名的深度文章。
从第一次开始,我理解需要检查活动的斜率,并平衡两个活动规模差别很大的项目之间的权重。但是,我如何比较许多项目,随着时间的推移迅速增加?然后,如何将“嗡嗡声等级”中的项目从0分解为10?
第二个参考是令人着迷的,但在这一点上我的头脑。从第一遍开始,我了解到需要保持内存使用稳定,同时保留计数器并在必要时存储对项目的引用。但是我还没有为它的具体用例找到合适的算法。
值得注意的是,我来自非计算机科学和非统计学背景。请耐心等待:)任何帮助和代码示例(特别是在Ruby中)都将非常感激。
答案 0 :(得分:5)
直觉说这个问题的解决方案不需要大量的统计数据,通过基于一些简单的措施对主题进行排名可能已经为你提供了一个有趣的“趋势主题”选择。
一种方法是按照过去一小时/一天/一周中生成的数字注释来排序主题...并选择最常见的主题。
另一种方法是计算每个主题的评论数量,并将其除以主题的“年龄”。立即生成评论的新主题将被视为趋势,而具有许多评论的旧主题将随着年龄的增长而减少趋势。
这些实现可以很容易地在Ruby / Rails中创建,甚至可以在SQL查询中完成,只要这些表包含发布日期和注释数量。