热门推荐
热词统计发现算法3则
2024-10-31 21:32

转载于http://qing.blog.sina.com.cn/2090594487/7c9bf0b733001jsa.html

热词统计发现算法3则

以搜索为例,点击类似。所有变换和简化须不影响排序结果。

排位变化

最初的算法参考电影排行榜,统计昨日Top词、前日Top词,然后计算每个词w两天的排位差,排位变化最大的就是最热的词。

排序取出取出排位前 N 的词语集合。

WZ为昨日搜索词TopN集合,WQ为前日搜索词TopN集合。

SortBySearchCount(WZ, Desc

SortBySearchCount(WQ, Desc

    if(w in WQ)

        PositionChange = Position( w,昨日) - Position( w,前日 )

    else

        PositionChange = Position( w,昨日) - ( N + 1 )

SortByPositionChange( WZ

此算法比较笨,必需做三次排序,但是挑选出的词语效果还是比较好的。

注意,根据上述方法,词条这两天的排位差PositionChange 越小,表示其越火。PositionChange 可以为负值。

----------备注----------

举例:对于在集合WZ中的词条w,给出几种情况

(1)假设词条w这两天比较火,即分别出现在昨天和前天的词条集合WZ和WQ中了,则

假设昨天拍在第3位,前天排在第5位,则该词条上升了两位。此时PositionChange = -2.

假设昨天拍在第5位,前天排在第3位,则该词条下降了两位。此时PositionChange = 2.

(2)假设词条w只在昨天的集合WZ中,但是不在前天的集合WQ中,则

假设昨天拍在第3位,又因为N = 100,则98位。此时PositionChange = -98.

又因为PositionChange 越小(-98<-2<2,表示其越火,根据排序,可以得到第三情况的词条最火。此时也符合实际情况。

变化率

算法很简单:今日次数/昨日次数,按照变化率排序即可。

    ChangeRate = (Cz+1)/(Cq+1) - 1

 }

SortByChangeRate(WZ, Desc)

算法很简单,但是哪些前日访问很少的词语,就很占便宜了。

加权变化率

加权变化率是对于算法2的修正,考虑搜索量因素,将搜索量较小的词语加权小,而对于搜索量大的词语加权大,平衡一下访问量因素。此处的权值取两天内此词总共的搜索次数在全部搜索次数中的比例。

    ChangeRate = (Cz+1) / (Cq+1) - 1

    Weight = (Cz+Cq) / (CZ+CQ)

    RateWithWeight = ChangeRate * Weight

SortByRateWithWeight (WZ, Desc)

因为我们只考虑排序,所以可以对词算法进一步简化

RateWithWeight = ChangeRate * Weight

= ( (Cz+1) / (Cq+1) - 1 ) * (Cz+Cq) / (CZ+CQ= (Cz-Cq) * (Cz+Cq) / (Cq+1) / (CZ+CQ)

 

因为CZ、CQ对于两天内的所有值都是一样的,所以可以不计算,不影响最后的排序结果。

可以取简化后的

RateWithWeight = (Cz-Cq) * (Cz+Cq) / (Cq+1)

-------------------------------分割线------------------------------------

小结

方法一:排位差

算法思想:根据词语每天出现次数求出其排在老几,之后计算两天的排位差,根据排位差求热度。

具体步骤

(1)统计每一个词在昨天和前天出现的次数,并找出排位前 N 的词语集合

(2)对每一个词,计算每个词w两天的排位差

(3)根据词语的排位差进行排序,其中排位变化最大的就是最热的词。

评价此算法比较笨,必需做三次排序,但是挑选出的词语效果还是比较好的。

方法二:变化率

算法思想:根据词语两天的出现次数求出其出现次数的比值,根据比值求出其热度。

具体步骤

(1)统计每一个词在昨天和前天出现的次数,并找出排位前 N 的词语集合

(2)对每一个词,计算每个词w两天的变化率,即今日次数/昨日次数。

(3)根据词语的变化率进行排序,其中变化率最大的就是最热的词。

评价算法简单,但是对于访问次数少但变化率大的词语会占便宜。

方法三:加权变化率

算法思想:根据词语两天的出现次数其在总搜索次数的站的份额求出比值,根据比值求出其热度。

具体步骤

(1)统计每一个词在昨天和前天出现的次数,并找出排位前 N 的词语集合

(2)对每一个词,计算每个词w两天的加权变化率,即(今日次数/昨日次数)* 该词这两天的总搜索次数在全部搜索次数中的比例。

(3)根据词语的加权变化率进行排序,其中加权变化率最大的就是最热的词。

    以上就是本篇文章【热词统计发现算法3则】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/3394.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多