Souhaitez-vous créer un CV Twitter?

Allumez! !!

introduction

Avec un créateur d'applications qui arrive parfois en regardant Twitter Bons amis, mon boum (des mots qui marmonnent souvent), etc ... À quelle fréquence le fais-tu?

Vraiment? N'y a-t-il pas quelque chose que je pense?

Oh, ce n'est pas l'efficacité commerciale, mais je vais l'écrire. C'est Rookie. Si vous êtes préoccupé par la rationalisation de votre travail, veuillez vous reporter à ici.

Est-ce que tout le monde se soucie de savoir comment obtenir la chronologie Twitter et comment la gérer? Je suis curieux. Ce genre de curiosité est important, n'est-ce pas?

Il semble faire cela.

environnement

pourtant

Je l'ai inventé à midi mercredi et je l'ai fait deux nuits à partir de ce jour-là, la qualité du contenu est donc limitée.

Environnement

Avez-vous un Macbook? Si vous ne l'avez pas maintenant, veuillez d'abord vous rendre dans l'Apple Shop. Ensuite, Emacs et Python devraient être installés pour le moment.

--Compte développeur Twitter

Vous avez besoin de Consumer Key, Consumer Key Secret, Oauth Token et Oauth Token Secret pour l'obtenir avec l'API. Ceux-ci peuvent être obtenus en enregistrant un compte de développeur Twitter. En conséquence, vous avez également besoin d'un compte utilisateur Twitter. J'ai oublié quel site j'ai vu, mais s'il vous plaît ici.

Ceci est également obligatoire. En gros, vous pouvez supprimer le zip du Site officiel et exécuter le binaire.

Cela ne peut pas être aidé, s'il vous plaît ici.

--Il y a Ubuntu

Puis ici.

--Installez Macab

Veuillez télécharger et décompresser les dictionnaires Source et IPA depuis ici. Dans chaque

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

Alors c'est bon.

Code à écrire

Code pour obtenir des tweets

Obtenez la chronologie d'un utilisateur spécifique avec l'API Twitter.

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 =Lors de l'extraction sur Twitter@La partie affichée par ACCOUNT

# 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 == "nom":
                word = node.surface.decode("utf-8")
                mecab.append(word)
            elif pos == "verbe":
                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)

Si vous voulez votre propre TL

timeline.py


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

Pour ceux qui veulent les résultats d'une recherche de tweet

search.py


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

est.

Fichier de configuration Elastic Stack

Le fichier de configuration Logstash est requis. Il est spécifié au démarrage. (Les personnes qui commencent avec le service doivent le mettre sous / etc / logstash / conf.d /)

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}"
  }
}

Le reste des Elastic Stacks fait du bon travail.

Les paramètres de Kibana sont profonds, mais pour l'instant, copions et importons le fichier de paramètres depuis ici. [Gestion] -> [Objets enregistrés] -> [Importer] sur le côté gauche de l'écran Kibana (http: // localhost: 5601) est. Après cela, jouons avec cela et souvenons-nous-en avec votre corps.

Courir

Veuillez d'abord exécuter Elastic Stacks. Le groupe de décompression zip est (Elastic Stack-version) / bin / (Elastic Stack), Le démarreur automatique est service (Elastic Stack) start.

Exécutez le code pour obtenir le tweet plus tôt.

$ python user.py

Si vous mettez le fichier qui sort à l'endroit où Logstash le lit (/ home / you / py dans l'exemple ci-dessus), Logstash le sucera.

Tout ce que vous avez à faire est de regarder l'écran Kibana.

http://localhost:5601

résultat

Regardons maintenant les résultats.

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

Vous pouvez voir les balises de hachage que vous utilisez souvent et les personnes qui les déchirent souvent. Vous pouvez voir que je suis un démon de RT. Amazon semble être mon mot à succès pour une raison quelconque. L'idée est ... peut-être parce que j'ai RTing le bouton Amazon Dash. Vous pouvez également comprendre cela. Le temps de tweeter souvent est aussi visualisé, mais ... eh bien, mes yeux sont fatigués et je ne vois pas bien.

Au fait, le Mecab que j'ai installé était très finement divisé car le japonais est un ennemi difficile. Je ne suis pas sûr de Mecab, mais je pense que si vous le réduisez à des mots avec 3 lettres ou plus du côté kibana, vous pouvez voir des résultats plus décents.

Impressions

Je me suis amusé! Au cours des deux derniers jours, je suis ami avec Mac même après avoir regardé Windows au travail, mais le plaisir n'est pas fatiguant.

Kibana a de nombreuses autres méthodes de visualisation. Essayez-le de vos propres mains ou un peu sur Google et vous trouverez des exemples intéressants.

Oh, pourquoi ai-je commencé à écrire ceci ... C'était amusant, alors ...

L'abus est interdit, non? C'est une promesse avec ton frère, non?

Recommended Posts

Souhaitez-vous créer un CV Twitter?
Fabriquez-vous quelque chose comme une fusée?
[Recrutement] Aimeriez-vous échanger des compétences en programmation?
Ravi de vous rencontrer, j'aimerais me présenter.
Aimeriez-vous analyser vous-même votre honte d'évasion?
Comment importer des fichiers où vous le souhaitez en Python
Comment faire une traduction japonais-anglais
Comment créer un bot slack
Comment créer un robot - Avancé
Comment créer une fonction récursive
[Blender] Comment créer un plug-in Blender
Comment créer un robot - Basic
[Python] Comment rendre une classe itérable
Faisons un noyau jupyter
Remarque: [Python3] Convertissez datetime en chaîne dans le format de votre choix
Un script shell pour se souvenir à nouveau du shell pipenv
J'ai créé une API Web
Pour rendre une propriété de type dict en lecture seule
Comment créer un indicateur personnalisé Backtrader
Comment créer un plan de site Pelican
Faisons un bot Twitter avec Python!
Afficher matplotlib comme un design plat
Essayez de créer quelque chose comme C # LINQ
Si vous souhaitez créer une application TODO (distribuée) maintenant en utilisant uniquement Python
Si vous voulez créer un bot discord avec python, utilisons un framework
Qu'est-ce que vous aimez dans la conversion d'un tableau (liste) en chaîne?
Je veux faire de matplotlib un thème sombre
Comment créer un système de dialogue dédié aux débutants
Un mémorandum pour faire WebDAV uniquement avec nginx
Créer un bot Twitter Trend avec heroku + Python
Je l'aime dès qu'une réponse arrive sur Twitter
Comment créer un dictionnaire avec une structure hiérarchique.
Je veux faire un jeu avec Python
Si vous souhaitez créer Word Cloud.
Créez un chat bot et entraînez-vous à être populaire.
Essayez de créer un code de "décryptage" en Python
Comment créer un plug-in QGIS (génération de package)
Étapes pour créer un bot Twitter avec Python
Comment se souvenir quand on oublie un mot
J'ai lu "Comment créer un laboratoire de piratage"
Essayez de créer un groupe de dièdre avec Python
J'aimerais en savoir plus sur Django page nation
J'ai créé un jeu ○ ✕ avec TensorFlow
Explication de base de Lark (faites un gars comme une coquille avec Python, Lark)
Création d'un module personnalisé Ansible - Partie 4: La vie que vous voulez créer sans tuyau nommé (complète) -
J'ai essayé de faire quelque chose comme un chatbot avec le modèle Seq2Seq de TensorFlow
Ce serait sage si vous pouviez écrire quelque chose comme booléen et "A" ou "B" [Python] [Mais]
Vous pouvez le faire en 3 minutes! Comment créer un code QR (GIF) fonctionnel!
Utilisez l'API Twitter pour réduire le temps nécessaire à Twitter (créer une chronologie de mise en évidence (comme))
J'ai essayé de faire un "putain de gros convertisseur de littérature"
Python que je voudrais recommander aux débutants en programmation
Comment faire un jeu de tir avec toio (partie 1)
Créer une fonction pour décrire les polices japonaises avec OpenCV
Comment créer un package Python à l'aide de VS Code
[Python] Je veux faire d'une liste imbriquée un taple
Les débutants en apprentissage automatique essaient de créer un arbre de décision
Bases de PyTorch (2) -Comment créer un réseau de neurones-
Lorsque vous voulez plt.save dans l'instruction for