[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!

zunaechst

Umgebung

fließen

1 . Textextraktion durch Scraping 2 . Verwenden Sie MeCab, um Wörter zu trennen 3 . Erstellen einer Word Cloud

1. Schaben

Hier hat "Galaxy Railroad Night" auf der Website, extrahieren Sie also nur den Text von hier.

キャプチャ14.PNG


 <div class ="main-text">

Wie Sie sehen können, scheint es in Ordnung zu sein, wenn Sie den Text in der unteren Hierarchie aus this'div 'extrahieren!

import urllib.request
from bs4 import BeautifulSoup

text = []

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

# Beachten Sie, dass es class_ anstelle von class ist
ginga =  soup.findAll('div' , class_= 'main_text')

for i in ginga:
# Nehmen Sie nur den Text heraus und fügen Sie ihn hinzu
    text.append(i.text)

# Speichern Sie als Textdatei mit dem Namen ginga.txt
file = open('ginga.txt','w',encoding='utf-8')
file.writelines(text)
file.close()


Überprüfen Sie die Textdatei

Ich konnte bestätigen, dass der vollständige Text korrekt extrahiert wurde! t.PNG

2. Verwenden Sie MeCab, um Wörter zu trennen

MeCab zerlegt und analysiert Sätze in morphologische Elemente (die kleinste Einheit, in der ein Wort eine Bedeutung hat), basierend auf der Grammatik der Zielsprache und den Teiltextinformationen des Wortes. Weitere Informationen finden Sie auf der folgenden Website

[Technische Erklärung] Was ist morphologische Analyse? Von der MeCab-Installationsprozedur bis zum Ausführungsbeispiel in Python  https://mieruca-ai.com/ai/morphological_analysis_mecab/

import MeCab

# Öffnen Sie die gespeicherte Textdatei
data = open("ginnga.txt","rb").read()
text = data.decode('utf-8')

mecab = MeCab.Tagger("-ochasen")
# Morphologische Analyse mit perseToNode
# Setzen Sie das Analyseergebnis in den Knoten
node = mecab.parseToNode(text)

ginga_text = []

# Trennen Sie Wörter mit Teilwörtern

while node:
 #Wort
    word = node.surface
 #Teil
    hinnsi = node.feature.split(",")[0]
 # Geben Sie das Wort an, das dem Array durch Teiltexte hinzugefügt werden soll
 if hinnsi in ["Verb", "Zusatz", "Zusatz", "Substantiv"]:
        ginga_text.append(word)
    else:
 #Überprüfen Sie, welche Wörter nicht hinzugefügt wurden (nicht erforderlich)
         print("|{0}|Der Teil des Wortes ist{1}Also nicht hinzufügen".format(node.surface,node.feature.split(",")[0]))
        print("-"*35)
    node = node.next

["Vibral", "Adjunct", "Adjective", "Nomenclature"] Durch Ändern des Inhalts können Sie die Wörter ändern, die dem Array hinzugefügt werden sollen.

WordCloud kann in etwas mehr Zeit erstellt werden!

3. Erstellen Sie eine Word Cloud

Um WordCloud zu erstellen, müssen Sie das Modul installieren. Installieren Sie mit ** pip install wordcloud **. Vielleicht kannst du es jetzt benutzen. Wenn Sie es nicht verwenden können, probieren Sie es aus (sorry)!

Ich habe es unter der vorherigen Datei geschrieben.

from wordcloud import WordCloud
text = ' '.join(ginga_text)
# Es scheint ein japanischer Pass zu sein
fpath = "C:/Windows/Fonts/YuGothM.ttc"
 wordcloud = WordCloud (background_color = "weiß", # weißer Hintergrund
                     font_path=fpath,width = 800,height=600).generate(text)

# Als PNG speichern
wordcloud.to_file("./ginnga.png ")

Ergebnis

ginnga.png ginnga_2.png

Wenn Sie Dinge entfernen, die Sie nicht verstehen, wie "yo" und "na", wenn Sie sie dem Array hinzufügen, erhalten Sie etwas, das sinnvoller ist.

** Diesmal bin ich damit zufrieden! ** ** **

Bonus

Ich möchte dem Bild von Kenji Miyazawa Worte hinzufügen ↓ Vorbereitetes Bild miyazawa.png

Ich werde den Ort ändern, an dem ich Word Cloud früher erstellt habe

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

Ergebnis

wc_miyazawa2.png

** Ich bin sehr froh, es reinigen zu können! **

Referenzartikel

Ich habe versucht, die Texte von Genji Yonezu mit WordCloud zu visualisieren Power BI x Python mit japanischer Word Cloud-Python Visual Edition-

Am Ende

Ich bin froh, dass ich es schöner machen konnte als ich erwartet hatte. Als nächstes habe ich versucht, den Nachrichtenartikel zu visualisieren. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!
[Python] Ich habe versucht, Tweets über Corona mit WordCloud zu visualisieren
Ich habe versucht, alle Bemerkungen von Slack mit Wordcloud (Python) zusammenzufassen.
Ich habe es mit den Top 100 PyPI-Paketen versucht.> Ich habe versucht, die auf Python installierten Pakete grafisch darzustellen
Ich habe versucht, den Text des Romans "Wetterkind" mit Word Cloud zu visualisieren
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, die Tweets von JAWS DAYS 2017 mit Python + ELK einfach zu visualisieren
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Ich habe versucht, die Eigenschaften der neuen Informationen über mit dem Corona-Virus infizierte Personen mit Wordcloud zu visualisieren
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Einführung in Python mit Atom (unterwegs)
[Python] Ich habe versucht, das Preisgeld von "ONE PIECE" über 100 Millionen Zeichen mit matplotlib zu visualisieren.
Ich habe versucht, die Standardrolle neuer Mitarbeiter mit Python zu optimieren
Ich habe versucht, das Modell mit der Low-Code-Bibliothek für maschinelles Lernen "PyCaret" zu visualisieren.
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, mit tkinter mit dem Taschenrechner zu spielen
Ich wollte die 3D-Partikelsimulation mit der Python-Visualisierungsbibliothek Matplotlib visualisieren.
[IBM Cloud] Ich habe versucht, über Cloud Funtions (Python) auf die Tabelle Db2 on Cloud zuzugreifen.
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Ich habe Python zum ersten Mal auf dem Mac ausprobiert.
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich möchte mit Python-Datenklasse nach hinten erben
[Python] Ich habe versucht, die Top 10 der Lidschatten grafisch darzustellen
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich möchte Lambda mit Python auf Mac AWS!
Ich habe versucht, die API mit dem Python-Client von echonest zu erreichen
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe Wordcloud mit Python gemacht.
Ich habe untersucht, wie der Arbeitsablauf mit Excel x Python ④ optimiert werden kann