2009-06-16 90 views
0

为了找到热门话题,我用的是标准分结合移动平均线:时限标准分

z-score = ([current trend] - [average historic trends])/[standard deviation of historic trends] 

(Thank you very much, Nixuz)

到现在为止,我做如下:

无论时间如何,对于历史潮流,我只需回顾24小时。假设我们1月12日,现在下午3:45:

current_trend =命中[1月11日,3:45 - 1月12日,3:45]

historic_trends =命中[1月10日,3:45 - 1月11日,3:45] +点击[1月9日,3:45 - 1月10日,3:45] +点击[1月8日,3:45 - 1月9日,3:45] + ...

但是这真的足够吗?如果我始终在00:00开始,不是更好吗?例如这种方式对于相同的数据(下午3点45分):

current_trend =命中[年01月11,0:00 - 1月12日,0:00]

historic_trends =命中[年01月10 0:00 - 1月11日,0点] +点击[1月9日,0点 - 1月10日,0点] +点击[1月9日,0:00 - 1月9日,0:0] + ...

我相信结果会有所不同。但是哪种方法会给你更好的结果?

我希望你已经理解我的问题,你可以帮助我。 :) 提前致谢!

回答

1

我认为您目前的实施可能会遇到的问题是,23小时前很热的话题正在影响您的排名。我在新提出的实施方案中看到的问题是,您在午夜清理板岩,因此昨晚深夜的热点在第二天早上似乎不会很热(但他们应该)。

我建议你看看实施Digg-style algorithm(抱歉连接到Digg)主题的热度随着年龄衰减。您可以通过计算每个过去24小时时段的点击次数/小时数来实现此目的,然后将每个时段分数除以期间发生的时间。加上24个时期来得分。

hottness =(score24/24)+(score23/23)+ ... +(score2/2)+ score1

哪里score24是 “命中”,一个主题中的单拿到的数量24小时前发生的小时期(可能不是完全命中,但是该小时的归一化分数)。

这种24小时前很热的话题仍然会算在你的算法中,但并不像一小时前热门的话题那么严重。

+0

谢谢比尔蜥蜴,这个提示。我不知道这个简单的算法,但它非常酷。不幸的是,它不适合我的目的,即找到热门话题。我的算法过滤出总是很热的话题。你的算法没有那个,是吗? ;)但它对我来说非常有用,因为我也过滤了趋势链接。为此,它很有用。 但是你关于我的算法和时间段的例子非常好。那么你是否推荐了第一种方法(简单地回到24小时,而不是从0:00开始)? – caw 2009-06-17 17:15:10