[Python] Ich habe versucht, Tweets über Corona mit WordCloud zu visualisieren

Einführung

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.

Zielperson

・ Kann bis zu einem gewissen Grad Python-Programme schreiben ・ Diejenigen, die sich für Wordcloud interessieren

Umgebung

Betriebssystem (funktioniert sowohl unter Windows als auch unter Mac) ┗mac OS Catalina 10.15.7 ┗Widows 10 Python 3.8.3 mecab-python3

Was ist Word Cloud?

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. Figure_2 1.jpg

Was ist MeCab?

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.

Datensammlung

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

Word Cloud-Generierung

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

Schließlich

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

[Python] Ich habe versucht, Tweets über Corona mit WordCloud zu visualisieren
[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!
Ich habe versucht, die Tweets von JAWS DAYS 2017 mit Python + ELK einfach zu visualisieren
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich habe versucht, alle Bemerkungen von Slack mit Wordcloud (Python) zusammenzufassen.
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Ich habe versucht, den Text des Romans "Wetterkind" mit Word Cloud zu visualisieren
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 versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
Ich habe verschiedene Methoden ausprobiert, um japanische Post mit Python zu senden
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, WebScraping mit Python.
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
Mayungos Python Learning Episode 3: Ich habe versucht, Zahlen zu drucken
Ich habe versucht, die Eigenschaften der neuen Informationen über mit dem Corona-Virus infizierte Personen mit Wordcloud zu visualisieren
Ich habe versucht, mich über MCMC zu organisieren.
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Ich möchte mit Python debuggen
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe die SMTP-Kommunikation mit Python versucht
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, die Lesezeichen zu visualisieren, die mit Doc2Vec und PCA nach Slack fliegen
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
[Pandas] Ich habe versucht, Verkaufsdaten mit Python zu analysieren. [Für Anfänger]
Ich habe versucht zu beheben "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren"
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht herauszufinden, ob ReDoS mit Python möglich ist
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, Gesichtsmarkierungen mit Python und Dlib leicht zu erkennen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
Ich habe versucht, mit Python + OpenCV eine Bildähnlichkeitsfunktion zu erstellen
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, mit Hy anzufangen