1 . Textextraktion durch Scraping 2 . Verwenden Sie MeCab, um Wörter zu trennen 3 . Erstellen einer Word Cloud
Hier hat "Galaxy Railroad Night" auf der Website, extrahieren Sie also nur den Text von hier.
<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()
Ich konnte bestätigen, dass der vollständige Text korrekt extrahiert wurde!
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!
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 ")
ginnga.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! ** ** **
Ich möchte dem Bild von Kenji Miyazawa Worte hinzufügen ↓ Vorbereitetes Bild
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 ")
** Ich bin sehr froh, es reinigen zu können! **
Ich habe versucht, die Texte von Genji Yonezu mit WordCloud zu visualisieren Power BI x Python mit japanischer Word Cloud-Python Visual Edition-
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