Pregunta ¿Cuál es una buena forma de seleccionar un conjunto aleatorio de twitterers?


Teniendo en cuenta el conjunto de usuarios de Twitter "nodos" y la relación u follows v como los "bordes", tenemos un gráfico del cual me gustaría seleccionar un subconjunto de usuarios al azar. Podría estar equivocado, pero al leer los documentos de la API, creo que es imposible obtener una colección de usuarios, excepto obteniendo los seguidores o amigos de un usuario ya conocido.

Entonces, comenzando por mí y explorando el gráfico de Twitter desde allí, ¿cuál es una buena manera de seleccionar una muestra aleatoria de (digamos 100) usuarios?


5
2018-02-06 03:08


origen


Respuestas:


Yo usaría el numérico user id. Genera un montón de números aleatorios y busca usuarios en función de eso. Si tocas una identificación inexistente, simplemente sáltate eso.

La wiki de la API de Twitter, para usuarios / show:

carné de identidad. El ID o nombre de usuario de la pantalla.


4
2018-02-06 03:58



Asumiendo el seis grados de separación es cierto, puede hacer una primera búsqueda de Amplitud hasta 6 niveles y seleccionar 100 usuarios aleatorios de esa lista. O podría decir, dejaré de buscar más usuarios cuando diga, un millón de usuarios únicos y muestrear 100 de eso.

Dado que almacenar una lista de millones de usuarios y tratar de muestrear puede ser prohibitivo, existe una técnica llamada Muestreo de yacimientos que puede usar, que le permite muestrear durante el recorrido mismo.


1
2018-02-06 03:27



Simplemente consulte la línea de tiempo pública y use el conjunto de usuarios devueltos:

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

No será aleatorio, ya que son solo los últimos 20 tweets enviados por cualquier persona, pero lo más probable es que nunca sea el mismo conjunto de usuarios dos veces.

Ya que solo le da 20 a la vez, y los resultados se almacenan en caché en sus servidores durante 60 segundos, tendrá que hacer 5 solicitudes diferentes con una pausa de 60 segundos entre ellos.

Por supuesto, también es posible que algunos usuarios estén twitteando con frecuencia en un período de tiempo determinado, por lo que puede obtener un total de menos de 100 usuarios en ese tiempo, por lo que podría hacer un bucle hasta que haya obtenido 100, si es necesario.


1
2018-02-06 03:27



A menos que tenga todo el gráfico de usuarios de Twitter (o una muestra aleatoria), no podrá tomar una muestra aleatoria. De lo contrario, cualquier muestra que tome estará sesgada por su relación con usted.


1
2018-02-06 03:15



La API de transmisión de Twitter tiene un punto final llamado "Muestra" que Returns a small random sample of all public statuses (cf. https://dev.twitter.com/docs/api/1.1/get/statuses/sample)

Los ID de twitter de los autores se devuelven con los tweets, por lo que esto te daría al azar activo usuarios de Twitter.


1
2018-01-03 16:31



Puedes usar GET status / muestra para obtener una secuencia continua de tweets de Twitter que se publican mientras se está ejecutando su código. Luego puede extraer el usuario (tweeter) de la información recibida del tweet.

Aquí está el código de python para hacerlo usando el 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
2018-03-14 19:26