2011-01-08 77 views
2

我想找出一種方法來查找用戶在他們的推文中提到最多的人。如何找到用戶最受歡迎的提及從Twitter API

即,如果有人經常回復或提到,那麼最好的方法是什麼?

我正在使用Rails和此項目的Twitter Gem。 如果我可以返回用戶最近的200條推文並運行某種可能起作用的查詢,只是不確定我會運行哪種查詢。

任何想法如何解決這個很大的讚賞。

回答

1

除非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了所有的微博,提取@提到。然後你把所有的數組放在一起,找到最常見的元素。

1

您可以得到任何非保護用戶的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