Möchten Sie einen Twitter-Lebenslauf erstellen?

Einschalten! !!

Einführung

Mit einem App-Hersteller, der manchmal beim Ansehen von Twitter auftaucht Gute Freunde, mein Boom (Worte, die oft murmeln), etc ... Wie oft machst du es?

"Ja wirklich?" Gibt es nicht etwas, was ich denke?

Oh, es ist keine geschäftliche Effizienz, aber ich werde es schreiben. Dies ist Rookie. Wenn Sie Bedenken haben, Ihre Arbeit zu optimieren, lesen Sie bitte hier.

Interessiert es alle, wie man die Twitter-Timeline erhält und wie man damit umgeht? Ich bin neugierig. Diese Art von Neugier ist wichtig, nicht wahr?

Es scheint dies zu tun.

Umgebung

jedoch

Ich habe es mir am Mittwochmittag ausgedacht und es zwei Nächte von diesem Tag an geschafft, daher ist die Qualität des Inhalts begrenzt.

Umgebung

Hast du ein Macbook? Wenn Sie es jetzt nicht haben, gehen Sie bitte zuerst in den Apple Shop. Dann sollten vorerst Emacs und Python installiert sein.

Sie benötigen Consumer Key, Consumer Key Secret, Oauth Token und Oauth Token Secret, um es mit der API zu erhalten. Diese erhalten Sie, indem Sie ein Twitter-Entwicklerkonto registrieren. Daher benötigen Sie auch ein Twitter-Benutzerkonto. Ich habe vergessen, welche Site ich gesehen habe, aber bitte machen Sie so etwas wie hier.

Dies ist auch erforderlich. Grundsätzlich können Sie die Zip-Datei von der offiziellen Website löschen und binär ausführen.

Es kann nicht geholfen werden, bitte hier.

Dann hier.

Bitte laden Sie die Quell- und IPA-Wörterbücher von [hier] herunter und entpacken Sie sie (http://taku910.github.io/mecab/#download). In jedem

$ ./configure --with-charset=utf8
$ make
$ sudo make install

Dann ist es ja gut.

Code zum Schreiben

Code zum Abrufen von Tweets

Rufen Sie mit der Twitter-API die Zeitleiste eines bestimmten Benutzers ab.

user.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from requests_oauthlib import OAuth1Session
import json
import MeCab

CK = 'AAAAAAAAAAAAAAAAAAA'
# Consumer Key
CS = 'BBBBBBBBBBBBBBBBBBB'
# Consumer Key Secret
AT = 'CCCCCCCCCCCCCCCCCCC'
# Oauth Token
AS = 'DDDDDDDDDDDDDDDDDDD'
# Oauth Token Secret

url = "https://api.twitter.com/1.1/statuses/user_timeline.json" #this url for getting home timeline

#here can be set ID of tweet (ordered by time), and number of tweets (default is 20, max 200)
params = {'count':200, 'screen_name':'ACCOUNT'}
# ACCOUNT =Beim Rippen auf Twitter@Der von ACCOUNT angezeigte Teil

# GET request
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.get(url, params = params)

f = open("user.json","w")

if req.status_code == 200:
    timeline = json.loads(req.text)

    for tweet in timeline:
        array=[]
        for word in tweet["text"].split(" "):
            array.append(word)
        tweet['words']=array

        array=[]
        tagger = MeCab.Tagger()
        text_str = tweet["text"].encode('utf-8')
        node = tagger.parseToNode(text_str)
        mecab = []
        while node:
            pos = node.feature.split(",")[0]
            if pos == "Substantiv":
                word = node.surface.decode("utf-8")
                mecab.append(word)
            elif pos == "Verb":
                word = node.surface.decode("utf-8")
                mecab.append(word)
            node = node.next
        tweet['mecab']=mecab

        json.dump(tweet, f)
        f.write('\n')
else:
    print("Error: %d" % req.status_code)

Wenn Sie Ihre eigene TL wollen

timeline.py


...
url = "https://api.twitter.com/1.1/statuses/home_timeline.json"
...
params = {'count':200}
...

Für diejenigen, die die Ergebnisse einer Tweet-Suche wünschen

search.py


...
url = "https://api.twitter.com/1.1/search/tweets.json"
...
params = {'q':'Aoshima Meg', 'count':'200'}
...

ist.

Elastic Stack-Konfigurationsdatei

Die Logstash-Konfigurationsdatei ist erforderlich. Es wird beim Start angegeben. (Personen, die mit dem Dienst beginnen, sollten ihn unter "/ etc / logstash / conf.d /" einfügen.)

logstash.conf


input {
  file {
    path => "/Users/you/py/timeline.json"
    start_position => "beginning"
    type => "timeline"
    codec => "json"
  }
  file {
    path => "/Users/you/py/user.json"
    start_position => "beginning"
    type => "user"
    codec => "json"
  }
}

filter {
  date {
    match => [ "created_at" , "EEE MMM dd HH:mm:ss Z yyyy"]
    target => "created_at"
  }
  grok {
    match => { "created_at" => "%{YEAR}-%{MONTHNUM}-%{MONTHDAY}T%{HOUR:tweet_hour:int}:%{MINUTE}:%{SECOND}.000Z"}
  }
  ruby {
    code => "event.set('[tweet_hour]', event.get('tweet_hour') + 9)"
  }
  if [tweet_hour] > 23 {
    ruby {
      code => "event.set('[tweet_hour]', event.get('tweet_hour') - 24)"
    }
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "twitter-%{type}-%{+YYYY.MM.dd}"
  }
}

Der Rest der Elastic Stacks macht einen guten Job.

Die Einstellungen von Kibana sind tiefgreifend, aber jetzt kopieren und importieren wir die Einstellungsdatei von hier. [Verwaltung] -> [Gespeicherte Objekte] -> [Importieren] auf der linken Seite des Kibana-Bildschirms (http: // localhost: 5601) ist. Lassen Sie uns danach damit herumspielen und uns mit Ihrem Körper daran erinnern.

Lauf

Bitte führen Sie zuerst Elastic Stacks aus. Die Zip-Dekomprimierungsgruppe lautet "(Elastic Stack-Version) / bin / (Elastic Stack)". Der Autostarter ist "Service (Elastic Stack) Start".

Führen Sie den Code aus, um den Tweet früher zu erhalten.

$ python user.py

Wenn Sie die herauskommende Datei an der Stelle ablegen, an der Logstash sie liest (/ home / you / py im obigen Beispiel), saugt Logstash sie an.

Alles was Sie tun müssen, ist auf den Kibana-Bildschirm zu schauen.

http://localhost:5601

Ergebnis

Schauen wir uns nun die Ergebnisse an.

スクリーンショット 2016-12-08 23.56.59.png

Sie können die Hash-Tags sehen, die Sie häufig verwenden, und die Personen, die sie häufig rippen. Sie können sehen, dass ich ein RT-Dämon bin. Amazon scheint aus irgendeinem Grund mein Schlagwort zu sein. Die Idee ist ... vielleicht, weil ich den Amazon Dash Button gedrückt habe. Sie können dies auch verstehen. Die Zeit zum Twittern wird oft auch visualisiert, aber ... nun, meine Augen sind müde und ich kann nicht gut sehen.

Übrigens war der Mecab, den ich eingesetzt habe, sehr fein geteilt, weil Japanisch ein schwieriger Feind ist. Ich bin mir bei Mecab nicht sicher, aber ich denke, wenn Sie es auf Wörter mit 3 oder mehr Buchstaben auf der Kibana-Seite eingrenzen, können Sie anständigere Ergebnisse sehen.

Impressionen

Es hat Spaß gemacht! In den letzten zwei Tagen war ich mit Mac befreundet, auch nachdem ich Windows bei der Arbeit angestarrt hatte, aber der Spaß ist nicht anstrengend.

Kibana hat viele andere Visualisierungsmethoden. Bitte versuchen Sie es mit Ihren eigenen Händen oder googeln Sie ein wenig und Sie werden einige faszinierende Beispiele finden.

Oh, warum habe ich angefangen, das zu schreiben ... Es hat Spaß gemacht, also ...

Missbrauch ist verboten, oder? Es ist ein Versprechen mit deinem Bruder, oder?

Recommended Posts

Möchten Sie einen Twitter-Lebenslauf erstellen?
Machst du so etwas wie eine Rakete?
[Rekrutierung] Möchten Sie Programmierkenntnisse austauschen?
Schön Sie kennenzulernen, ich möchte mich vorstellen.
Möchten Sie Ihre Fluchtschande selbst analysieren?
So importieren Sie Dateien in Python an eine beliebige Stelle
Wie erstelle ich eine japanisch-englische Übersetzung?
Wie man einen lockeren Bot macht
Wie erstelle ich einen Crawler?
So erstellen Sie eine rekursive Funktion
[Blender] So erstellen Sie ein Blender-Plug-In
Wie erstelle ich einen Crawler?
[Python] Wie man eine Klasse iterierbar macht
Machen wir einen Jupyter-Kernel
Hinweis: [Python3] Konvertiert datetime in eine Zeichenfolge in einem beliebigen Format
Ein Shell-Skript, um sich wieder an die pipenv-Shell zu erinnern
Ich habe eine Web-API erstellt
Um eine Diktat-Eigenschaft schreibgeschützt zu machen
So erstellen Sie einen benutzerdefinierten Backtrader-Indikator
Wie erstelle ich eine Pelican Site Map?
Machen wir einen Twitter-Bot mit Python!
Zeigen Sie matplotlib wie ein flaches Design an
Versuchen Sie etwas wie C # LINQ zu machen
Wenn Sie eine TODO-Anwendung (verteilt) jetzt nur mit Python erstellen möchten
Wenn Sie einen Discord-Bot mit Python erstellen möchten, verwenden wir ein Framework
Was gefällt Ihnen an der Konvertierung eines Arrays (einer Liste) in einen String?
Ich möchte Matplotlib zu einem dunklen Thema machen
Wie man ein Dialogsystem für Anfänger erstellt
Ein Memorandum, um WebDAV nur mit Nginx zu erstellen
Machen Sie Twitter Trend Bot mit Heroku + Python
Ich mag es, sobald eine Antwort auf Twitter kommt
So erstellen Sie ein Wörterbuch mit einer hierarchischen Struktur.
Ich möchte ein Spiel mit Python machen
Wenn Sie Word Cloud erstellen möchten.
Machen Sie einen Chat-Bot und üben Sie, beliebt zu sein.
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
So erstellen Sie ein QGIS-Plug-In (Paketerzeugung)
Schritte zum Erstellen eines Twitter-Bots mit Python
Wie man sich erinnert, wenn man ein Wort vergisst
Ich las "Wie man ein Hacking Lab macht"
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Ich würde gerne etwas über Django Page Nation erfahren
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Lark grundlegende Erklärung (machen Sie einen Shell-ähnlichen Kerl mit Python, Lark)
Ansible selbst erstellte Modulerstellung - Teil 4: Leben, das Sie ohne Named Pipe machen möchten (vollständig) -
Ich habe versucht, mit dem Seq2Seq-Modell von TensorFlow so etwas wie einen Chatbot zu erstellen
Es wäre klug, wenn Sie etwas wie Boolesches und "A" oder "B" schreiben könnten [Python] [Aber]
Sie können es in 3 Minuten tun! So erstellen Sie einen funktionierenden QR-Code (GIF)!
Verwenden Sie die Twitter-API, um die von Twitter benötigte Zeit zu verkürzen (erstellen Sie eine Hervorhebungszeitleiste).
Ich habe versucht, einen "verdammt großen Literaturkonverter" zu machen.
Python, das ich Anfängern in der Programmierung empfehlen möchte
Wie man ein Schießspiel mit toio macht (Teil 1)
Erstellen Sie mit OpenCV eine Funktion zum Beschreiben japanischer Schriftarten
So erstellen Sie ein Python-Paket mit VS Code
[Python] Ich möchte aus einer verschachtelten Liste einen Taple machen
Anfänger des maschinellen Lernens versuchen, einen Entscheidungsbaum zu erstellen
Grundlagen von PyTorch (2) - Wie erstelle ich ein neuronales Netzwerk?
Wenn Sie in der for-Anweisung plt.save möchten