Elasticsearch Als ich darüber nachdachte, verschiedene Dinge auszuprobieren, entschied ich mich, das Tweet-Protokoll von JAWS DAYS 2017 zu verwenden, das ich auch twitterte.
Ich habe den erstellten Quellcode hier eingefügt. Sie kann durch Eingabe des Zugriffsschlüssels verwendet werden. (Es ist erforderlich, die Registrierung für die Twitter-API als vorläufige Vorbereitung abzuschließen.)
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": "Voll + stehend. Es ist wunderbar.#jd2017_b #jawsdays",
"truncated": false,
"user": {
:
:
:
"name": "Koji,
:
:
:
"screen_name": "kojiisd",
:
:
:
}
}
Für logstash wollte ich das Ergebnis sofort sehen, also habe ich es einfach als JSON importiert Ich habe nicht viel Verarbeitung in die Einstellungsdatei geschrieben ...
Infolgedessen ist der Index schwierig geworden, aber ich werde vorerst so weitermachen, wie er ist.
ELK ist also praktisch, egal wie oft Sie es verwenden. Solange ich froh bin, dass Kibana eine kleine Visualisierung machen kann, sobald es in Elasticsearch eingegossen ist. Ich habe versucht, die Anzahl der Tweets für jeden Benutzer in den diesmal erfassten Tweets zu bestimmen. Der Benutzer, der twittert, kann über "user.screen_name" abgerufen werden.
Hmmm, vielleicht hattest du einen guten Kampf, aber hast du nicht 100 getwittert? Geben wir unser Bestes.
Die am meisten retweetete Person war "nakayama_san". Er ist derjenige, der bei Lernsitzungen immer leicht verständliche Bilder veröffentlicht. Überzeugt. Retweets werden durch "retweeted_status.user.screen_name" eingegrenzt. Ich frage mich, ob es so passt ...
Übrigens, wenn ich versuche, die Tag-Cloud vorerst anzuzeigen, sieht es so aus. Es ist überhaupt nicht gut (^^; Es ist natürlich, aber es liegt daran, dass ich nichts wie analysiert eingestellt habe.
Bei JAWS DAYS gibt es selbst nur wenige Tweets. Daher müssen Vorbereitungen getroffen werden, z. B. die Zeichenkette richtig zu analysieren, die Logstash-Einstellung richtig zu berücksichtigen und dem Zielindex eine Vorlage hinzuzufügen.
Wenn Sie sich jedoch richtig vorbereiten und dann analysieren, können Sie Trendschlüsselwörter in re: Invent sehen.
Vorerst habe ich einen Fluss von "Datenerfassung" → "Visualisierung" erstellt. Dieses Mal habe ich es unter der Annahme erstellt, dass es lokal ausgeführt wird. Wenn Sie es jedoch so wie es ist in AWS analysieren und die URL veröffentlichen können, können Trendschlüsselwörter möglicherweise in Echtzeit in der Tag-Cloud angezeigt werden. Hmm. Wenn Sie Lust dazu haben, versuchen wir es vor re: Invent.
Recommended Posts