1 . Extraction de texte par grattage 2 . Utilisez MeCab pour séparer les mots 3 . Création de Word Cloud
Ici a "Galaxy Railroad Night" sur le site, donc extrayez uniquement le texte d'ici.
<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()
J'ai pu confirmer que le texte intégral a été extrait correctement!
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!
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 ")
ginnga.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! ** **
Je veux mettre des mots à l'image de Kenji Miyazawa ↓ Image préparée
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 ")
** Je suis très heureux de pouvoir le nettoyer! **
J'ai essayé de visualiser les paroles de Genji Yonezu avec WordCloud Power BI x Python avec Word Cloud-Python Visual Edition en japonais-
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