随机选择一组Twitterers的好方法是什么?

问题描述 投票:6回答:7

将Twitter用户的“节点”集合和关系u follows v视为“边缘”,我们有一个图表,我希望从中随机选择一个用户子集。我可能是错的,但是通过阅读API文档,我认为除非获得已知用户的关注者或朋友,否则无法获得用户集合。

所以,从我自己开始,然后从那里开始探索Twitter图,有什么好方法可以随机选择一个(例如100个)用户样本?

random graph twitter
7个回答
5
投票

我将使用数字user id。生成一堆随机数,并以此为基础获取用户。如果您输入了不存在的ID,只需跳过该ID即可。

Twitter API Wiki,用于用户/节目:

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


1
投票

假设six degrees of separation为真,您可以进行广度优先搜索,最多搜索6个级别,然后从该列表中选择100个随机用户。或者您可以说,当我说一百万个唯一用户并从中抽样100个时,我将停止寻找更多的用户。

由于存储一百万个用户的列表并尝试采样可能是禁止的,因此可以使用一种称为Reservoir Sampling的技术,它允许您在遍历过程中进行采样。


1
投票

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

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

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

由于一次只能给您20个,并且结果在其服务器上缓存了60秒,因此您必须执行5个不同的请求,并且它们之间要暂停60秒。

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


1
投票

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


1
投票

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

作者的推特ID与推文一起返回,因此这将使您随机地成为[[active Twitter用户。


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

这是使用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


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

随机句柄是基于:

生成的
    国家名称
  • 该国家中指定的随机坐标点数
  • 给定纬度/经度(坐标点)的半径,以千米为单位(鸣叫将在该半径之内)
  • 每个坐标点指定的鸣叫数
  • 推文的语言
© www.soinside.com 2019 - 2024. All rights reserved.