[PYTHON] Analyse de texte pouvant être effectuée en 5 minutes [Word Cloud]

Faisons du text mining très facilement en utilisant la série Python 3.x.

** Cette fois, en plus du traitement sur le terminal LINUX autant que possible pour que même les personnes qui n'ont jamais utilisé Python puissent le comprendre, soyez assuré que les commandes à saisir sont également décrites! ** (Je ne sais rien de Python ...)

Qu'est-ce que l'exploration de texte?

L'exploration de texte (anglais: text mining) est une exploration de données pour les chaînes de caractères. Il s'agit d'une méthode d'analyse de données textuelles qui extrait des informations utiles en divisant les données constituées de phrases ordinaires en mots et en phrases et en analysant la fréquence de leur apparition, la corrélation de la co-apparition, la tendance de l'apparence et la série chronologique. Source [Wikipedia](https://ja.m.wikipedia.org/wiki/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%9E% E3% 82% A4% E3% 83% 8B% E3% 83% B3% E3% 82% B0)

Cette fois, créons un * nuage de mots * avec la technologie de text mining! Voilà ce qu'est un nuage de mots. ↓ wc1-1.png

Préparez d'abord les données

Tout d'abord, préparez les données à analyser. Cependant, il est difficile de se préparer immédiatement, donc cette fois je vais utiliser les données du tweet ** de l'événement en ligne ** "Idol Master Shiny Colors MUSIC DAWN DAY 1" qui a eu lieu le 31 octobre.

cliquez ici pour télécharger [Données textuelles # Shanimas MUSICDAWNday2](https://www.github.com/ysok2135/py/tree/main/%E5%BD%A2%E6%85%8B%E7%B4%A0%E8%A7%A3 % E6% 9E% 90% E5% 85% 83% E3% 83% 86% E3% 82% 99% E3% 83% BC% E3% 82% BF_SC_DOWN_20201031_utf8.csv)

Installation de la série Python 3.x

sudo apt install python3.7

Effectuer une analyse morphologique des données

Contrairement à l'anglais, le japonais ne sépare pas les segments par des espaces, vous ne pouvez donc pas faire de text mining depuis le début. Par conséquent, cette fois, nous utiliserons le ** moteur d'analyse morphologique open source MeCab **, qui est familier dans la rue.

Installation liée à MeCab

Tapez l'ordre de commande suivant.

udo apt install mecab
sudo apt install libmecab-dev
sudo apt install mecab-ipadic
sudo apt install mecab-ipadic-utf8
pip install mecab-python3

Si vous souhaitez améliorer la précision de la recherche, vous devez également installer un dictionnaire supplémentaire tel que NEologd, mais cette fois ce n'est pas gênant.

Analyse morphologique réelle

De nombreux sites fonctionnent sur python, mais je pense que c'est beaucoup plus facile. Tout d'abord, définissez le fichier source de l'analyse sur "test.txt". Entrez ensuite ce qui suit dans le terminal:

mecab -Owakati test.txt -o sample.txt

**c'est tout! ** ** Lorsque je vérifie le fichier, il est correctement analysé. スクリーンショット 2020-11-01 15.42.09.png スクリーンショット 2020-11-01 15.42.23.png

Enfin, travaillez sur WordCloud!

Installation de Wordcloud

pip install wordcloud

C'est tout.

Essayez de créer un nuage de mots

Copiez l'exemple de code ci-dessous.

sample.py


from wordcloud import WordCloud
with open('sample.txt') as f:
        text = f.read()
stop_words = [ u'https', u'co', u'Merci', u'RT', u'Ah', u'']
wc = WordCloud(background_color="white",width=1600, height=1200, font_path='GenEiLateGoP_v2.ttf', stopwords=set(stop_words))
wc.generate(text)
wc.to_file('wc1.png')

Description du code

** ① Lire wordcloud et importer des fichiers **

from wordcloud import WordCloud
with open('sample.txt') as f:
        text = f.read()

** ② Divers réglages ** stop_words ・ ・ ・ Définissez des mots-clés à exclure ** Il est recommandé d'essayer plusieurs fois et de définir des mots-clés. ** ** background_color ・ ・ ・ Couleur de fond largeur, hauteur ・ ・ ・ Réglez la taille de l'image (l'unité est le pixel) fonf_path ・ ・ ・ Spécifiez le chemin de la police (Cette fois, j'utilise la source anglaise Latemin) ↑ ** [Super important! Si vous ne chargez pas la police japonaise, vous obtiendrez du tofu! !! !! ] **

stop_words = [ u'https', u'co', u'Merci', u'RT', u'Ah', u'']
wc = WordCloud(background_color="white",width=1600, height=1200, font_path='GenEiLateGoP_v2.ttf', stopwords=set(stop_words))

** ③ Traitement d'exécution **

wc.generate(text)
wc.to_file('wc1.png')

Je suis effectivement allé

python3 sample.py

Résultat d'exécution wc1.png

Génial! !! !! La présence de M. Tsuda est dangereuse! (Lol)

Vous pouvez le visionner avec le thème d'Aozora Bunko. J'espère que vous serez intéressé par l'analyse émotionnelle et ainsi de suite. Merci jusqu'à la fin.

Je fais Twitter

* Environnement de vérification
Ubuntu 18.04 LTS
Python 3.7

Recommended Posts

Analyse de texte pouvant être effectuée en 5 minutes [Word Cloud]
Une histoire que heroku, qui peut se faire en 5 minutes, a en fait duré 3 jours
Enregistrement d'image ANT qui peut être utilisé en 5 minutes
Analyse morphologique et tfidf (avec code de test) pouvant être effectuée en 1 minute environ
Bot LINE sans serveur qui peut être réalisé en 2 heures (acquisition de l'identifiant source)
[Peut être fait en 10 minutes] Créez rapidement un site Web local avec Django
Construire un Sphinx qui peut être écrit avec Markdown
Algorithmes de base utilisables par les pros de la compétition
Résumé des méthodes d'analyse de données statistiques utilisant Python qui peuvent être utilisées en entreprise
Un mécanisme pour appeler des méthodes Ruby à partir de Python qui peut être fait en 200 lignes
Il semble que le suivi des squelettes puisse être effectué avec RealSense
Goroutine (contrôle parallèle) utilisable sur le terrain
Goroutine utilisable sur le terrain (édition errgroup.Group)
Scripts pouvant être utilisés lors de l'utilisation de Bottle en Python
J'ai étudié le prétraitement qui peut être fait avec PyCaret
Index d'évaluation pouvant être spécifié pour GridSearchCV de sklearn
[Pour les débutants] Statistiques de baseball dont on peut se souvenir en 33 minutes et 4 secondes et PyData ~ avec Yojima Steel
Un enregistrement que GAMEBOY n'a pas pu être fait avec Python. (PYBOY)
Créez une Spinbox qui peut être affichée en binaire avec Tkinter
Un minuteur (ticker) qui peut être utilisé sur le terrain (peut être utilisé n'importe où)
Gestion des chaînes de caractères dans la communication JSON
Résumé de l'entrée standard de Python pouvant être utilisée dans Competition Pro
Créez une Spinbox pouvant être affichée dans HEX avec Tkinter
Confirmation que rkhunter peut être installé
Remplissage facile des données pouvant être utilisées dans le traitement du langage naturel
Résumé des problèmes d'AtCoder C qui peuvent être résolus en mathématiques au secondaire
Nombre maximum de paramètres de fonction pouvant être définis dans chaque langue
Analyse du résumé de PubMed dans le nuage de mots
Text mining avec Python ② Visualisation avec Word Cloud
Obtenez Cloud Logging disponible en Python en 10 minutes
Une file d'attente FIFO peut-elle être créée en "spécifiant l'ordre des messages" dans Cloud Pub / Sub?
Je souhaite créer une file d'attente prioritaire pouvant être mise à jour avec Python (2.7)
Notes personnelles des opérations liées aux pandas qui peuvent être utilisées dans la pratique
Programme d'installation facile et programme de mise à jour automatique pouvant être utilisé dans n'importe quelle langue
Résumé des sources de données scikit-learn pouvant être utilisées lors de la rédaction d'articles d'analyse
Cela peut être réalisé en 1 minute! Le décorateur qui met en cache l'exécution de la fonction entraîne Memcached
Liste des outils qui peuvent être utilisés pour essayer facilement l'analyse des émotions des phrases japonaises avec Python (essayez avec google colab)