Ich habe Tweets für das maschinelle Lernen gesammelt, aber ich habe versucht, sie zu visualisieren, weil es eine große Sache war. Ich werde diese Methode hier lassen. Aus irgendeinem Grund habe ich es sowohl unter Windows als auch unter MacOS ausgeführt, sodass es unter beiden funktioniert.
・ Kann bis zu einem gewissen Grad Python-Programme schreiben ・ Diejenigen, die sich für Wordcloud interessieren
Betriebssystem (funktioniert sowohl unter Windows als auch unter Mac) ┗mac OS Catalina 10.15.7 ┗Widows 10 Python 3.8.3 mecab-python3
WordCloud ist eine Methode zum Auswählen mehrerer Wörter, die häufig in einem Satz vorkommen, und zum Anzeigen dieser Wörter in einer Größe entsprechend der Häufigkeit. Es bezieht sich auf das automatische Anordnen von Wörtern, die häufig auf Webseiten und Blogs erscheinen. Indem Sie nicht nur die Größe der Zeichen, sondern auch Farbe, Schriftart und Ausrichtung ändern, können Sie den Inhalt des Textes auf einen Blick beeindrucken. (Aus dem Kommentar zu Digital Daijisen)
Einfach ausgedrückt, visualisiert es die Häufigkeit von Wortvorkommen auf leicht verständliche Weise. In Python gibt es eine Bibliothek, die die Implementierung vereinfacht. Nachdem Sie diesen Artikel gelesen haben, können Sie etwas wie das unten gezeigte erstellen.
Es ist eine Bibliothek, die Sätze nach morphologischen Elementen analysiert. Aufteilung von Sätzen / Phrasen in "minimale sinnvolle Einheiten". Zum Beispiel Wenn der Satz "Ich programmiere in der Firma" morphologisch analysiert wird, Es kann in Mindesteinheiten wie "Ich / ist / Firma / bei / Programmierung / ist /" unterteilt werden.
Mit dieser Bibliothek können Sie nur Wörter wie WordCloud oben extrahieren.
Eigentlich haben wir Tweets mit der Twitter-API gesammelt und ungefähr 70.000 Daten gesammelt, aber diesmal werden wir die Methode weglassen. In Zukunft kann ich einen weiteren Artikel schreiben, wenn ich das beste Programm für mich selbst erstellen kann. Ich dachte, es wäre schwierig, damit Tweets zu sammeln, also habe ich hier eine Datei vorbereitet. Da es sich um einen Tweet handelt, ist die Datenmenge auf 8000 begrenzt. Eingabedatei (Tweet-Daten) ↓ https://17.gigafile.nu/1108-d3e975ac3446f65274267ced0915bc8ff word_except_file (Liste der ausgeschlossenen Wörter) ↓ https://17.gigafile.nu/1108-c355b7876fecb940dd6efd712b84adda8
Schließlich werde ich WordCloud generieren, aber da WordC Loud von hier aus keine japanischen Schriftarten unterstützt (https://moji.or.jp/ipafont/ipa00303/) 4 Laden Sie das Font Pack (Ver.003.03) herunter, antworten Sie an der entsprechenden Stelle und platzieren Sie die Datei mit dem Namen ** ipag.ttf ** in derselben Hierarchie wie das folgende Programm (wenn Sie es verstehen, ist der vollständige Pfad in Ordnung). .. Die Datei word_except_file enthält Wörter, die "corona" ähneln, sodass Sie Wörter ausschließen können, die sich leicht auf das Wort beziehen, z. B. "corona" und "Infektion". Darüber hinaus enthält die Ausschlussliste unnötige Wörter, die bei der Analyse morphologischer Elemente unweigerlich vorkommen.
** Ausführungsmethode ** python3 makeWordCloud.py colona_data.txt except_word_list.txt
Wenn Sie dies verstehen, schreiben Sie es bitte entsprechend in Ihre eigene Umgebung.
makeWordCloud.py
import MeCab
import sys
from matplotlib import pyplot as plt
from wordcloud import WordCloud
args = sys.argv
input_file = args[1]
word_except_file = args[2]
#Textdatei lesen
with open('input_file', mode='rt', encoding='utf-8') as fi:
source_text = fi.read()
#Vorbereitung für MeCab
tagger = MeCab.Tagger()
tagger.parse('')
node = tagger.parseToNode(source_text)
#Nomenklatur extrahieren
word_list = []
while node:
word_type = node.feature.split(',')[0]
if word_type == 'Substantiv':
word_list.append(node.surface)
node = node.next
#Ausgeschlossene Wörter lesen
except_word_list = []
f = open(except_word_file)
for i in f:
except_word_list.append(i.rstrip())
#Liste in Zeichenfolge konvertieren
word_chain = ' '.join(word_list)
#Wortwolkenerstellung
W = WordCloud(width=640,height=480,background_color='white',font_path="./ipag.ttf",stopwords = except_word_list).generate(word_chain)
plt.imshow(W)
plt.axis('off')
plt.show()
Seit ich es zum ersten Mal bei Qiita gepostet habe, gab es viele Dinge, die ich nicht verstanden habe, aber es hat Spaß gemacht. Wenn Sie Fragen haben oder Verbesserungen benötigen, hinterlassen Sie bitte einen Kommentar. Wenn Sie sich wieder etwas einfallen lassen, werde ich es veröffentlichen. Na dann.
Recommended Posts