Elasticsearch Quand je pensais essayer diverses choses, j'ai décidé d'utiliser le journal des tweets de JAWS DAYS 2017, que j'ai également tweeté.
J'ai mis le code source créé ici. Il peut être utilisé en entrant la clé d'accès. (Il est nécessaire de terminer l'inscription à l'API Twitter comme préparation préliminaire.)
https://github.com/kojiisd/TweetsSearch
import twitter
from twitter import Api
import sys
import os
import time
import json
reload(sys)
sys.setdefaultencoding('utf-8')
from collections import defaultdict
maxid = 0
search_word = "#XXXXXX"
api = Api(base_url="https://api.twitter.com/1.1",
consumer_key='XXXXXXXX',
consumer_secret='XXXXXXXX',
access_token_key='XXXXXXXX',
access_token_secret='XXXXXXXX')
count = 0
file = open(name='../data/result.json', mode='w')
found = api.GetSearch(term=search_word, count=100, lang="ja", result_type='mixed', until="yyyy-mm-dd")
while count < 3000:
for result in found:
file.write(str(result) + os.linesep)
count += 1
maxid = result.id
found = api.GetSearch(term=search_word, count=100, result_type='mixed', max_id=maxid - 1)
file.close()
print "TweetsNum: " + str(count)
{
"created_at": "Sat Mar 11 04:57:29 +0000 2017",
"favorited": false,
"hashtags": [
"jd2017_b",
"jawsdays"
],
"id": XXXXXXXXXXXXXXXXXX,
"lang": "ja",
"retweeted": false,
"source": "<a href="http://twitter.com" rel="nofollow">Twitter Web Client</a>",
"text": "Plein + debout. C'est incroyable.#jd2017_b #jawsdays",
"truncated": false,
"user": {
:
:
:
"name": "Koji,
:
:
:
"screen_name": "kojiisd",
:
:
:
}
}
Pour logstash, je voulais voir le résultat immédiatement, donc je l'ai juste importé au format JSON Je n'ai pas écrit beaucoup de traitement dans le fichier de configuration ...
En conséquence, l'indice est devenu difficile, mais pour le moment, je continuerai tel quel.
Ainsi, ELK est pratique quel que soit le nombre de fois que vous l'utilisez. Tant que je suis heureux que Kibana puisse faire une petite visualisation une fois qu'il est versé dans Elasticsearch. J'ai essayé d'organiser le nombre de tweets pour chaque utilisateur dans les tweets acquis cette fois. L'utilisateur qui tweete peut être obtenu par "user.screen_name".
Hmmm, peut-être que vous vous êtes bien battu, mais n'avez-vous pas tweeté 100? Faisons de notre mieux.
La personne la plus retweetée était "nakayama_san". C'est lui qui affiche toujours des images faciles à comprendre lors des sessions d'étude. Convaincu. Les retweets sont limités par "retweeted_status.user.screen_name". Je me demande si ça va comme ça ...
Au fait, quand j'essaye d'afficher le nuage de tags pour le moment, ça ressemble à ça. Ce n'est pas du tout bon (^^; C'est naturel, mais c'est parce que je n'ai rien défini de tel qu'analysé.
Avec JAWS DAYS, il y a peu de tweets eux-mêmes, il semble donc nécessaire de faire des préparatifs tels que l'analyse correcte de la chaîne de caractères, la prise en compte correcte du paramètre logstash et l'ajout d'un modèle à l'index cible.
Cependant, si vous vous préparez correctement et que vous les analysez ensuite, vous pourrez voir les mots-clés de tendance dans re: Invent.
Pour le moment, j'ai créé un flux «d'acquisition de données» → «visualisation». Cette fois, je l'ai créé en supposant qu'il sera exécuté localement, mais si vous pouvez l'analyser sur AWS tel quel et publier l'URL, il sera peut-être possible d'afficher les mots-clés de tendance dans le nuage de balises en temps réel. Hmm. Si vous en avez envie, essayons-le avant de re: Inventer.
Recommended Posts