Какой хороший способ выбрать случайный набор твиттеров? - PullRequest
6 голосов
/ 06 февраля 2010

Рассматривая набор «узлов» пользователей Твиттера и отношение u follows v как «ребра», мы имеем график, из которого я хотел бы выбрать подмножество пользователей случайным образом. Я могу ошибаться, но, читая документы по API, я думаю, что невозможно получить коллекцию пользователей, кроме как получить последователей или друзей уже известного пользователя.

Итак, начиная с себя и изучая график Twitter, какой хороший способ выбрать случайную выборку (скажем, 100) пользователей?

Ответы [ 6 ]

5 голосов
/ 06 февраля 2010

Я бы использовал числовое значение user id. Создайте группу случайных чисел и выбирайте пользователей на основе этого. Если вы нажали несуществующий идентификатор, просто пропустите это.

Вики API Twitter, для пользователей / шоу:

идентификатор. Идентификатор или отображаемое имя пользователя.

1 голос
/ 14 марта 2015

Вы можете использовать GET statuses / sample , чтобы получать непрерывный поток твитов из твиттера, публикуемого во время выполнения вашего кода. Затем вы можете извлечь пользователя (твитер) из полученной информации твита

Вот код Python для этого, используя Python twitter api

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
1 голос
/ 03 января 2014

API потоковой передачи Twitter имеет конечную точку под названием «Sample», которая Returns a small random sample of all public statuses (ср. https://dev.twitter.com/docs/api/1.1/get/statuses/sample)

Авторы Twitter идентификаторы возвращаются вместе с твитами, так что вы получите случайных активных пользователей Twitter.

1 голос
/ 06 февраля 2010

Просто запросите общедоступную временную шкалу и используйте возвращенный набор пользователей:

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

Это не будет случайным, поскольку это всего лишь последние 20 твитов, отправленных кем-либо, но, скорее всего, это никогда не будет одним и тем же набором пользователей дважды.

Поскольку он дает только 20 одновременно, а результаты кэшируются на их серверах в течение 60 секунд, вам придется выполнить 5 различных запросов с паузой в 60 секунд между ними.

Конечно, также возможно, что некоторые пользователи будут часто твитить в определенный период времени, так что вы можете получить менее 100 пользователей за это время, так что вы можете просто зацикливаться, пока не получите 100, если вам нужно к.

1 голос
/ 06 февраля 2010

Предполагая, что шесть степеней разделения истинно, вы можете выполнить поиск в ширину до 6 уровней и выбрать 100 случайных пользователей из этого списка. Или вы могли бы сказать, что я перестану искать других пользователей, когда получу, скажем, миллион уникальных пользователей и выборку из 100.

Поскольку сохранение списка миллионов пользователей и попытка выборки могут быть недопустимыми, существует метод под названием Выборка резервуара , который вы можете использовать, который позволяет выполнять выборку во время самого обхода.

1 голос
/ 06 февраля 2010

Если у вас нет всего пользовательского графика в Твиттере (или его случайной выборки), вы не сможете взять случайную выборку. В противном случае любой взятый вами образец будет предвзятым по отношению к вам.

...