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

问题描述:

我想找出一种方法来查找用户在他们的推文中提到最多的人。如何找到用户最受欢迎的提及从Twitter API

即,如果有人经常回复或提到,那么最好的方法是什么?

我正在使用Rails和此项目的Twitter Gem。 如果我可以返回用户最近的200条推文并运行某种可能起作用的查询,只是不确定我会运行哪种查询。

任何想法如何解决这个很大的赞赏。

除非Twitter的创业板有一个方法来提取@从单一的分享Tweet提到,你可以只把他们救出来的东西,如

"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了所有的微博,提取@提到。然后你把所有的数组放在一起,找到最常见的元素。

您可以得到任何非保护用户的tweet与single unauthenticated API调用user_timeline

http://api.twitter.com/1/statuses/user_timeline.json?screen_name=SCREENNAME&count=200

从那里,你只需解析返回的JSON/XML的身体(取决于您的喜好)@鸣叫鸣叫的内容(在text字段中)。

+0

谢谢你,这是有道理的。我只是不确定我解析所有推文后需要做什么样的计算。 – Lee 2011-01-10 12:29:07

+0

@Lee我不知道Ruby,但是如果您遵循Michael Kohl的建议,并在流中创建所有@提及的数组,那么您只需要找到Mode值,并且可以使用此值:http://stackoverflow.com/questions/412169 – Yahel 2011-01-10 13:50:58