选择一组随机的twitterers有什么好方法?

时间:2010-02-06 03:08:09

标签: random graph twitter

考虑到一组Twitter用户“节点”和关系u follows v作为“边缘”,我们有一个图表,我想从中随机选择一个用户子集。我可能是错的,但是从阅读API文档我认为除了获得已知用户的粉丝或朋友之外,不可能得到一组用户。

那么,从我自己开始并从那里探索Twitter图表,选择随机抽样(例如100个)用户的好方法是什么?

7 个答案:

答案 0 :(得分:5)

我会使用数字user id。生成一堆随机数,并根据该数据获取用户。如果您点击了不存在的ID,只需跳过它。

Twitter API wiki,适用于users / show:

  

ID。用户的ID或屏幕名称。

答案 1 :(得分:1)

除非您拥有整个Twitter用户图表(或其随机样本),否则您将无法随机抽样。否则,您采取的任何样本都会因与您的关系而产生偏见。

答案 2 :(得分:1)

假设six degrees of separation为真,您可以进行最多6个级别的广度搜索,并从该列表中选择100个随机用户。或者你可以说,当我说出来时,我会停止寻找更多的用户,一百万个独特用户并从中获得100个样本。

由于存储一百万用户的列表并尝试进行采样可能会让人望而却步,因此您可以使用一种名为Reservoir Sampling的技术,允许您在遍历过程中进行采样。

答案 3 :(得分:1)

只需查询公共时间轴,然后使用返回的用户集:

http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-public_timeline

它不会是随机的,因为它只是所有人发送的最后20条推文,但它很可能永远不会是同一组用户两次。

因为它一次只给你20个,并且结果在他们的服务器上缓存60秒,你将不得不做5个不同的请求,它们之间有60秒的暂停。

当然,某些用户也可能会在特定时间段内频繁发送推文,因此在这段时间内总共可能会少于100个用户,因此如果需要,您可以循环直到获得100个用户到。

答案 4 :(得分:1)

Twitter的流API有一个名为“Sample”的端点Returns a small random sample of all public statuses(参见https://dev.twitter.com/docs/api/1.1/get/statuses/sample

作者Twitter推特会随推文一起返回,因此这会让你随机活跃推特用户。

答案 5 :(得分:1)

您可以使用GET statuses/sample在您的代码执行时从Twitter发布连续的推文流。然后,您可以从收到的推文信息中提取用户(tweeter)

以下是使用Python twitter api

执行此操作的python代码
import twitter

f=open("account","r") #this file should contain "consumer_key consumer_secret access_token_key access_token_secret"
acc=f.read().split()
f.close()

api=twitter.Api(consumer_key=acc[0], consumer_secret=acc[1], access_token_key=acc[2], access_token_secret=acc[3])


lis = api.GetStreamSample()
cnt = 0
userIDs = []

for tweet in lis:

    # stop after getting 100 tweets. You can adjust this to any number
    if cnt == 100:
        break;

    cnt += 1
    userIDs.append(tweet['user']['id'])


userIDs = list(set(userIDs))    # To remove any duplicated user IDs
print userIDs

答案 6 :(得分:0)

您可以使用此仓库[Random Twitter Handles Generator](随机Twitter句柄生成器)为特定国家/地区生成随机Twitter句柄(用户名)。

随机句柄的生成基于:

  • 国家名
  • 在该国指定的随机坐标点数
  • 给定纬度/经度(坐标点)的半径,以千米为单位(鸣叫将在该半径之内)
  • 每个坐标点指定的tweet数量
  • 推文的语言