如何测量Google Reader用户的分享活跃度-阿里云开发者社区

开发者社区> 人工智能> 正文
登录阅读全文

如何测量Google Reader用户的分享活跃度

简介:

郑昀 20090918

1、背景知识

Google Reader 用户可以再次分享他订阅的文章,只要获知某一个用户的User ID,即可通过以下格式访问他的:

(0919注:UserID并不是ProfileID,你可以从shared items 主页的html代码里找到Profile ID。)
用户还可以对某篇文章表示Like。

    通过对Shared和Like行为的数据收集,并构造一个简单的公式,可以大致测量出Google Reader用户的分享活跃度,简称GRUserRank。

GRUserRank 的用途:

  • 是一个参考指标,当估计用户对某一篇热门文章的推荐贡献时;
  • 能有效地区别对待用户,把活跃用户、分享质量低的用户、休眠用户分开,有利于优化程序;
  • 也是一种社会化的参考指标。

 

2、如何遍历

    xlvector 在《Google Reader的数据收集》中提及,因为每一个Shared Items Feed给出了like它的用户id(具体逻辑请参考我的文章《Google Reader的Likes操作数据如何获取?》),所以只要从某一批用户的Shared Item Feed出发,就可以通过广度优先搜索将整个Google Reader的用户数据抓下来。这个数据集可以说内容非常丰富,包含了时间和内容信息,相信在它的基础上可以做出不少工作。

 

3、分享活跃度的计算公式

这个思路是可以用来计算 GRUserRank 的。

第一步,

我们从 玩聚SR 的已收集GR用户ID集合(基本能保证都是中文用户)开始,扫描每一个用户的Shared Items Feed,根据正则表达式:

<gr:likingUser>([0-9a-z_!~*'()-]+)</gr:likingUser>

从中获取所有 likingUser 的ID,存入全局字典,统计每一个User最近作出Like操作的次数(变量简称Likes),保证唯一性。

 

A unique show第二步,

这样,我们拿到了一个很大的GReader User ID集合(简称LikingUsers),由于主要是对中文文章做like操作的用户,所以也基本是中文用户。当然这个集合里:

  • 并不能遍历到所有的GReader中文用户;
  • 并不是所有人都公开了自己的Shared Items;
  • 只有少部分人创建了Google Profile,拥有自己的Logo。

接下来,我们遍历 LikingUsers 集合,按照 Likes 的顺序,即经常标记Like的用户优先遍历。

对于每一个用户,要拿到以下数值:

  • 三十天内是否分享过文章:没有的话,说明此用户已经是休眠用户;
  • 四天内分享过多少文章:变量简称Shares;
  • 最近分享的三篇文章的发表时间新鲜度:变量简称FreshMeats。用每一篇文章发表时间减去一个基准时间值(我取前四天的日期作为基准,如今日是9月18日,那么基准时间是2009-09-15),然后取平均值。
  • 最近分享的三篇文章的标题是否都不包含中文:如果都不包含中文,说明该用户也许不是中文用户,可以disable了。

 

第三步,

按照我的文章《Social Media排序算法的四种模式》,我们还要指定一个时间基数:

BaseSeconds :12.5 小时周期内的总秒数,45000秒。

 

那么公式就是: 
GRUserRank = Log10(Likes*因子A+Shares*因子B)+FreshMeats/BaseSeconds

因子A、B自己调整,我取2和3。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章
最新文章
相关文章