J'ai été bâclé sur l'étude de l'exploration et du grattage pendant mes vacances de printemps gratuites, mais j'ai décidé de créer un robot Twitter parce que je voulais faire quelque chose ici. Avec l'aide de Friend B, j'ai créé un Bot qui analyse les tweets de Friend B et crée des tweets de type Friend B.
Utilisation de l'environnement virtuel Ubuntu avec Virtualbox sur Windows 10 Ubuntu 18.04.4 LTS
J'écrirai une petite explication pour chacun
Quand j'ai enquêté en demandant: "Eh bien, comment faites-vous pour que les phrases à générer ressemblent à cette personne? Comment faites-vous la génération automatique de phrases en premier lieu?", J'ai trouvé une règle de chaîne de Markov.
Veuillez vous référer à cet article pour la loi des chaînes de Markov, qui est également rédigée de manière facile à comprendre. J'ai également fait référence au code Python. ** La règle de la chaîne de Markov est incroyable! ** Ce sera.
[Python] Générer des phrases avec une chaîne de Markov au N-ième étage](https://qiita.com/k-jimon/items/f02fae75e853a9c02127)
MeCab MeCab est utilisé comme un moyen d'analyser les tweets récupérés. Le flux de base de la génération de phrases est "d'effectuer une analyse morphologique sur les tweets acquis en utilisant MeCab, créer une liste de mots et organiser les mots selon la règle de chaîne de Markov".
Cliquez ici pour une explication détaillée de MeCab.
tweepy Pour faire fonctionner Twitter automatiquement, utilisez l'API Twitter officiellement fournie par Twitter. L'API Twitter vous permet d'exploiter votre compte par programmation.
Lorsque vous utilisez l'API Twitter à partir de Python, tweepy, qui est une bibliothèque Python, est pratique, j'ai donc appris à l'utiliser lors de la recherche sur le net en me référant à ce livre.
[Python Crawling & Scraping-Practical Development Guide for Data Collection and Analysis-](https://www.amazon.co.jp/Python%E3%82%AF%E3%83%AD%E3%83% BC% E3% 83% AA% E3% 83% B3% E3% 82% B0-% E3% 82% B9% E3% 82% AF% E3% 83% AC% E3% 82% A4% E3% 83% 94 % E3% 83% B3% E3% 82% B0-% E3% 83% 87% E3% 83% BC% E3% 82% BF% E5% 8F% 8E% E9% 9B% 86% E3% 83% BB% E8% A7% A3% E6% 9E% 90% E3% 81% AE% E3% 81% 9F% E3% 82% 81% E3% 81% AE% E5% AE% 9F% E8% B7% B5% E9% 96% 8B% E7% 99% BA% E3% 82% AC% E3% 82% A4% E3% 83% 89-% E5% 8A% A0% E8% 97% A4-% E8% 80% 95% E5% A4% AA / dp / 4774183679 / ref = tmm_other_meta_binding_title_0? _Encoding = UTF8 & qid = & sr =)
MySQL
J'ai décidé d'utiliser MySQL pour sauvegarder les données acquises par l'API Twitter, pensant que je devrais quand même étudier la base de données. L'utilisation de MySQL présente l'avantage qu'il est facile d'étendre l'application ultérieurement. Au moment de la production d'essai, j'ai essayé de mettre les données dans un fichier texte, mais il semble que l'opération ait été un peu lente.
Si vous souhaitez en savoir plus sur MySQL, veuillez vous référer au lien ci-dessous. Je pense que vous pouvez obtenir une image.
VPS J'ai loué un VPS car j'avais besoin d'un serveur pour exécuter le Bot. L'image est que vous pouvez utiliser un ordinateur qui est toujours en cours d'exécution.
Construire l'environnement nécessaire exigeait une connaissance de Linux, ce qui était une tâche assez difficile pour moi en tant que débutant en serveur, mais j'ai installé les logiciels nécessaires tels que MySQL et MeCab.
J'ai pu facilement l'emprunter chez CohoHa VPS. Je vais bientôt l'utiliser comme serveur Web. Ce n'est pas cher si vous pouvez jouer sur le serveur pour 880 yens par mois ...
C'est enfin le sujet principal, mais cela ressemble à ceci sur la figure.
Le rôle de chaque script est le suivant @ twitter_collector.py (script de collecte de données)
@ bot.py (corps du bot)
Je pense que c'est plus facile à gérer en séparant la partie qui recueille les données et le corps du Bot qui tweete.
Nous avons préparé l'environnement de CentOS 8 sur le serveur, installé tous les outils nécessaires tels que MeCab, MySQL, Python dessus et construit l'environnement.
Bot est géré en exécutant automatiquement un script shell pour exécuter un script Python par systemd. systemd est expliqué d'une manière facile à comprendre dans cet article.
C'était amusant car cela produisait des tweets assez intéressants simplement en faisant des phrases selon la règle de la chaîne de Markov, mais pour le moment, je suis en train de concevoir les deux points suivants parce que je veux le rendre plus similaire
Les deux sont obtenus en obtenant des données à partir de tweets réellement créés par l'ami B, en les répertoriant et en sélectionnant au hasard leurs valeurs.
Comme prévu, plus la phrase est longue, moins la phrase devient significative, mais s'il s'agit d'un court tweet, il peut s'agir d'un tweet que la personne a vraiment dit, et les mots sont choisis au hasard parmi le contenu que la personne a tweeté dans le passé. Par conséquent, en fonction de la combinaison, j'ai pu générer des tweets qui me faisaient rire.
Je pense que si les icônes sont exactement les mêmes, il ne sera peut-être pas possible de faire la distinction entre le Bot et la personne elle-même, et je veux faire un test de tuling.
Ami B, merci pour votre coopération.
Je me demandais si je pouvais le faire avec l'apprentissage automatique, mais appelons cela la prochaine tâche ... Les vacances de printemps sont terminées ... C'est un cours en ligne.
Merci d'avoir lu jusqu'au bout. Si vous avez des conseils, je vous serais reconnaissant de bien vouloir commenter.
Recommended Posts