如何从Twitter API中找到用户最受欢迎的提及

时间:2011-01-08 18:31:28

标签: ruby-on-rails ruby twitter

我正试图找出一种方法来查找用户在推文中提及的最多。

即。如果有人经常回复或提及,那么最好的方法是找出那个?

我正在为这个项目使用Rails和Twitter gem。 如果我可以返回用户最近的200条推文并运行某种可能有效的查询,那就不确定我会运行什么类型的查询。

如何解决这个问题的任何想法都很受欢迎。

2 个答案:

答案 0 :(得分:1)

您可以通过user_timeline text拨打任意未受保护的用户推文:

  

single unauthenticated API

从那里开始,您只需在推文内容({{1}}字段)中为@ mentions解析返回的JSON / XML的主体(取决于您的偏好)。

答案 1 :(得分:1)

除非Twitter宝石有办法从单个推文中提取@提及,否则你可以用

之类的东西来解决它们
"haha @foo @bar sdasda".split.select { |t| t.start_with? '@' } #=> ["@foo", "@bar"]

在所有用户的推文上映射,获取一系列提及然后计算它们。

编辑以回答评论中的问题:

>> tweets = ["haha @foo @bar sdasda", "lalal @foo", "@bar @foo"] #=> ["haha @foo @bar sdasda", "lalal @foo", "@bar @foo"]
>> tweets.map do |t| 
>>   t.split.select { |t| t.start_with? '@' }
>> end.flatten.group_by { |e| e }.values.max_by(&:size).first #=> "@foo"

所以基本上你map超过所有推文,提取@ mentions。然后你join将所有数组放在一起,找到最常见的元素。