[Python] J'ai essayé de visualiser la nuit du chemin de fer de la galaxie avec WordCloud!

en premier

environnement

couler

1 . Extraction de texte par grattage 2 . Utilisez MeCab pour séparer les mots 3 . Création de Word Cloud

1. Grattage

Ici a "Galaxy Railroad Night" sur le site, donc extrayez uniquement le texte d'ici.

キャプチャ14.PNG


 <div class ="main-text">

Comme vous pouvez le voir, il semble correct d'extraire le texte de la hiérarchie inférieure de this'div '!

import urllib.request
from bs4 import BeautifulSoup

text = []

# URL du site cible
url = 'https://www.aozora.gr.jp/cards/000081/files/456_15050.html'
html = urllib.request.urlopen(url)
soup = BeautifulSoup(html,'html.parser')

# Notez que c'est class_ au lieu de class
ginga =  soup.findAll('div' , class_= 'main_text')

for i in ginga:
# Retirez uniquement le texte et ajoutez
    text.append(i.text)

# Enregistrer en tant que fichier texte avec le nom ginga.txt
file = open('ginga.txt','w',encoding='utf-8')
file.writelines(text)
file.close()


Vérifier le fichier texte

J'ai pu confirmer que le texte intégral a été extrait correctement! t.PNG

2. Utilisez MeCab pour séparer les mots

MeCab décompose et analyse les phrases en éléments morphologiques (la plus petite unité dans laquelle un mot a un sens) en fonction de la grammaire de la langue cible et des informations sur les paroles de la partie du mot. Veuillez consulter le site ci-dessous pour plus de détails

[Explication technique] Qu'est-ce que l'analyse morphologique? De la procédure d'installation MeCab à l'exemple d'exécution en Python  https://mieruca-ai.com/ai/morphological_analysis_mecab/

import MeCab

# Ouvrez le fichier texte enregistré
data = open("ginnga.txt","rb").read()
text = data.decode('utf-8')

mecab = MeCab.Tagger("-ochasen")
# Analyse morphologique avec perseToNode
# Mettre le résultat de l'analyse dans node
node = mecab.parseToNode(text)

ginga_text = []

# Séparez les mots en utilisant des mots partiels

while node:
 #mot
    word = node.surface
 #Partie
    hinnsi = node.feature.split(",")[0]
 #Spécifier le mot à ajouter dans le tableau par paroles
 si hinnsi dans ["verbe", "auxiliaire", "auxiliaire", "nom"]:
        ginga_text.append(word)
    else:
 #Vérifiez quels mots n'ont pas été ajoutés (pas nécessaire)
         print("|{0}|La partie du mot est{1}Alors n'ajoute pas".format(node.surface,node.feature.split(",")[0]))
        print("-"*35)
    node = node.next

["Vibral", "Adjunct", "Adjectif", "Nomenclature"] En modifiant le contenu, vous pouvez changer les mots à ajouter au tableau.

WordCloud peut être créé en un peu plus de temps!

3. Créer un nuage de mots

Pour créer WordCloud, vous devez installer le module. Installez avec ** pip install wordcloud **. Peut-être que maintenant vous pouvez l'utiliser. Si vous ne pouvez pas l'utiliser, vérifiez-le (désolé)!

Je l'ai écrit sous le fichier précédent.

from wordcloud import WordCloud
text = ' '.join(ginga_text)
# Cela semble être un pass japonais
fpath = "C:/Windows/Fonts/YuGothM.ttc"
 wordcloud = WordCloud (background_color = "blanc", # fond blanc
                     font_path=fpath,width = 800,height=600).generate(text)

# Enregistrer au format png
wordcloud.to_file("./ginnga.png ")

résultat

ginnga.png ginnga_2.png

Si vous supprimez des éléments que vous ne comprenez pas, tels que "yo" et "na", lorsque vous les ajoutez au tableau, vous obtiendrez quelque chose qui a plus de sens.

** J'en suis satisfait cette fois! ** **

prime

Je veux mettre des mots à l'image de Kenji Miyazawa ↓ Image préparée miyazawa.png

Je vais changer l'endroit où j'ai créé Word Cloud plus tôt

import numpy as np
from wordcloud import WordCloud ,ImageColorGenerator
from PIL import Image

text = ' '.join(ginga_text)

imagepaht = "./miyazawa.png "
img_color = np.array(Image.open( imagepaht ))
wc = WordCloud(width=800,
              height = 800,
              font_path=fpath,
              mask = img_color,
              background_color= "white",
              collocations=False,).generate(text)

wc.to_file("./wc_miyazawa.png ")

résultat

wc_miyazawa2.png

** Je suis très heureux de pouvoir le nettoyer! **

Article de référence

J'ai essayé de visualiser les paroles de Genji Yonezu avec WordCloud Power BI x Python avec Word Cloud-Python Visual Edition en japonais-

À la fin

Je suis content d'avoir pu le faire plus magnifiquement que prévu. Ensuite, je pense que j'ai essayé de visualiser l'article de presse. Merci d'avoir lu jusqu'au bout.

Recommended Posts

[Python] J'ai essayé de visualiser la nuit du chemin de fer de la galaxie avec WordCloud!
[Python] J'ai essayé de visualiser des tweets sur Corona avec WordCloud
J'ai essayé de résumer les remarques de tout le monde sur le slack avec wordcloud (Python)
J'ai essayé avec les 100 meilleurs packages PyPI> J'ai essayé de représenter graphiquement les packages installés sur Python
J'ai essayé de visualiser le texte du roman "Weather Child" avec Word Cloud
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé de simuler la propagation de l'infection avec Python
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
J'ai essayé de visualiser les caractéristiques des nouvelles informations sur les personnes infectées par le virus corona avec wordcloud
J'ai essayé de visualiser AutoEncoder avec TensorFlow
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
J'ai essayé de démarrer avec Bitcoin Systre le week-end
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé de "différencier" l'image avec Python + OpenCV
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé de "binariser" l'image avec Python + OpenCV
J'ai essayé d'automatiser la fabrication des sushis avec python
Introduction à Python avec Atom (en route)
[Python] J'ai essayé de visualiser le prix en argent de "ONE PIECE" plus de 100 millions de caractères avec matplotlib.
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
J'ai essayé de visualiser le modèle avec la bibliothèque d'apprentissage automatique low-code "PyCaret"
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé de jouer avec la calculatrice avec tkinter
Je voulais visualiser la simulation de particules 3D avec la bibliothèque de visualisation Python Matplotlib.
[IBM Cloud] J'ai essayé d'accéder à la table Db2 on Cloud à partir de Cloud Funtions (python)
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
J'ai essayé de représenter graphiquement les packages installés en Python
J'ai essayé Python sur Mac pour la première fois.
J'ai essayé de démarrer avec le script python de blender_Part 01
J'ai essayé python pour la première fois avec heroku
J'ai essayé de démarrer avec le script python de blender_Partie 02
J'ai essayé d'implémenter le perceptron artificiel avec python
Je veux hériter de l'arrière avec la classe de données python
[Python] J'ai essayé de représenter graphiquement le top 10 des ombres à paupières
J'ai essayé de visualiser les informations spacha de VTuber
Je veux AWS Lambda avec Python sur Mac!
J'ai essayé de frapper l'API avec le client python d'echonest
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de résoudre la théorie des nombres entiers d'AOJ avec Python
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
J'ai créé wordcloud avec Python.
J'ai étudié comment rationaliser le flux de travail avec Excel x Python ④