Visualisieren Sie die Häufigkeit von Wortvorkommen in Sätzen mit Word Cloud. [Python]

Ich möchte die Häufigkeit des Auftretens von Wörtern mithilfe der von amueller erstellten Word Cloud-Python-Bibliothek visualisieren.

Es ist so ein Typ. constitution-compressor.png

Eine Beschreibung dieser Bibliothek finden Sie hier. http://amueller.github.io/word_cloud/index.html

1. Installation verschiedener Bibliotheken

1-1. Installieren der word_cloud-Bibliothek

Sie können es einfach installieren, indem Sie den Quellcode von git abrufen.

git clone https://github.com/amueller/word_cloud
cd word_cloud
python setup.py install

1-2. Installation verschiedener Python-Bibliotheken

Im Gegensatz zu Englisch hat Japanisch keine klaren Wortumbrüche. Um Wörter zu trennen, verwenden wir eine Software namens MeCab, um sie in Wörter auszuschneiden. [Mecab installieren] (Http://qiita.com/kenmatsu4/items/02034e5688cc186f224b#1-1mecab Installation) wurde in diesem Link erläutert, sodass Sie es installieren können, indem Sie auf diesen Link verweisen.

Darüber hinaus sind die folgenden Bibliotheken erforderlich. Bereiten Sie sie daher vor.

pip install beautifulsoup4
pip install requests

2. Erstellen der Word Cloud

Jetzt, wo ich fertig bin, schreibe ich den Code sofort. Der erste ist das Importieren der erforderlichen Bibliotheken.

#Bibliothek importieren
%matplotlib inline
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from bs4 import BeautifulSoup
import requests
import MeCab as mc

Eine Funktion, die MeCab verwendet, um Wörter auszuschneiden und in eine Liste aufzunehmen. Die Teile beschränken sich auf Nomenklaturen, Verben, Adjektive und Zusätze, um Wörter zu visualisieren und zu extrahieren, die wahrscheinlich bedeutungsvoll sind.

def mecab_analysis(text):
    t = mc.Tagger('-Ochasen -d /usr/local/Cellar/mecab/0.996/lib/mecab/dic/mecab-ipadic-neologd/')
    enc_text = text.encode('utf-8') 
    node = t.parseToNode(enc_text) 
    output = []
    while(node):
        if node.surface != "":  #Kopf- und Fußzeilen ausschließen
            word_type = node.feature.split(",")[0]
            if word_type in ["Adjektiv", "Verb","Substantiv", "Adverb"]:
                output.append(node.surface)
        node = node.next
        if node is None:
            break
    return output

Verwenden Sie Beutiful Soup, um den in der URL angegebenen Text zu erfassen. Nur der Text kann gemäß der HTML-Struktur von Qiita extrahiert werden.

def get_wordlist_from_QiitaURL(url):
    res = requests.get(url)
    soup = BeautifulSoup(res.text)
    text = soup.body.section.get_text().replace('\n','').replace('\t','')
    return mecab_analysis(text)

Ab hier ist die Produktion, Word Cloud Generation. Sie können Wörter ausschließen, die nicht viel Sinn machen, indem Sie sie als Stoppwörter angeben. Verwenden Sie diese Option. Bei der Implementierung auf einem Mac muss außerdem die Schriftart angegeben werden. Geben Sie daher font_path an.

def create_wordcloud(text):
    
    #Geben Sie den Schriftpfad entsprechend der Umgebung an.
    #fpath = "/System/Library/Fonts/HelveticaNeue-UltraLight.otf"
    fpath = "/Library/Fonts/Hiragino Kakugo Pro W3.otf"

    #Stoppen Sie die Worteinstellung
    stop_words = [ u'Teru', u'Ist', u'Werden', u'Sein', u'Machen', u'Gibt es', u'Ding', u'Dies', u'Herr.', u'Tu es', \
             u'Gib mir', u'machen', u'Gib mir', u'damit', u'Lassen', u'tat',  u'Überlegen',  \
             u'Es', u'Hier', u'Chan', u'Kun', u'', u'Hand',u'Zu',u'Zu',u'Ist',u'von', u'Aber', u'Wann', u'Ta', u'Shi', u'damit', \
             u'Abwesend', u'Ebenfalls', u'Nana', u'ich', u'Oder', u'Damit', u'Yo', u'']
     
    wordcloud = WordCloud(background_color="white",font_path=fpath, width=900, height=500, \
                          stopwords=set(stop_words)).generate(text)

    plt.figure(figsize=(15,12))
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.show()

Da dies die Funktionsdefinition der erforderlichen Verarbeitung ist, erstellen wir mit diesen Word Cloud. Trennen Sie jedes Wort in eine einzelne Zeichenfolge und übergeben Sie es an die Word Cloud-Erstellungsfunktion.

Ich möchte @ t_saekos Artikel "Was ich getan habe, als ich plötzlich als Regisseur in ein brennendes Projekt verwickelt wurde" verwenden. (Weil es interessant war, kürzlich zu lesen)

url = "http://qiita.com/t_saeko/items/2b475b8657c826abc114"
wordlist = get_wordlist_from_QiitaURL(url)
create_wordcloud(" ".join(wordlist).decode('utf-8'))

Es fühlt sich ziemlich gut an! wordcloud-compressor.png

Der vollständige Code wurde auf gist hochgeladen.

Recommended Posts

Visualisieren Sie die Häufigkeit von Wortvorkommen in Sätzen mit Word Cloud. [Python]
[Flask & Bootstrap] Visualisiere den Inhalt von Texten mit Word Cloud ~ Lyrics Word Cloud ~
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Visualisieren Sie Schlüsselwörter in Dokumenten mit TF-IDF und Word Cloud
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Visualisieren Sie die Ergebnisse von Entscheidungsbäumen, die mit Python scikit-learn erstellt wurden
Berechnen Sie mit Python Millionen von Stellen in der Quadratwurzel von 2
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Überprüfen Sie das Verhalten des Zerstörers in Python
Überprüfen Sie die Existenz der Datei mit Python
Zeigen Sie Python 3 im Browser mit MAMP an
Das Ergebnis der Installation von Python auf Anaconda
Grundlagen zum Ausführen von NoxPlayer in Python
Erstellen Sie mit Python 3.4 einen Worthäufigkeitszähler
Text Mining mit Python ② Visualisierung mit Word Cloud
Auf der Suche nach dem schnellsten FizzBuzz in Python
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
Da es der 20. Jahrestag der Gründung ist, habe ich versucht, die Texte von Parfüm mit Word Cloud zu visualisieren
Geben Sie die Anzahl der CPU-Kerne in Python aus
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
Probieren Sie es mit Word Cloud Japanese Python JupyterLab.
2016 Todai Mathematik mit Python gelöst
[Hinweis] Exportieren Sie das HTML der Site mit Python.
Holen Sie sich den Aufrufer einer Funktion in Python
Passen Sie die Verteilung jeder Gruppe in Python an
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
[Automatisierung] Extrahieren Sie die Tabelle als PDF mit Python
Überprüfen Sie das Datum der Flaggenpflicht mit Python
Finden Sie den Bruchteil des in Python eingegebenen Werts heraus
Finden Sie die Lösung der Gleichung n-ter Ordnung mit Python
Die Geschichte des Lesens von HSPICE-Daten in Python
[Hinweis] Über die Rolle des Unterstrichs "_" in Python
Lösen von Bewegungsgleichungen in Python (odeint)
Ausgabe in Form eines Python-Arrays
Visualisieren Sie das Verhalten des Sortieralgorithmus mit matplotlib
Konvertieren Sie den Zeichencode der Datei mit Python3
[Python] Bestimmen Sie den Typ der Iris mit SVM
Vergleichen Sie die Summe jedes Elements in zwei Listen mit dem in Python angegebenen Wert
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Berechnen Sie mithilfe des in Python 3.3 implementierten Naive Bayes-Klassifikators die Ähnlichkeit aus der Häufigkeit des gleichzeitigen Auftretens von Wörtern in Sätzen und Zeichenfolgen.
Erleben Sie die gute Berechnungseffizienz der Vektorisierung in Python
Extrahieren Sie die Tabelle der Bilddateien mit OneDrive & Python
So ermitteln Sie die Anzahl der Stellen in Python
Lerne Nim mit Python (ab Anfang des Jahres).
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
[Python] Holen Sie sich die Zahlen im Diagramm mit OCR
[Python] Ruft die Liste der im Modul definierten Klassen ab
der Zen von Python
Crawlen Sie die im Twitter-Tweet enthaltene URL mit Python
Die Geschichte von FileNotFound im Python open () -Modus = 'w'
Konvertieren Sie das Bild in .zip mit Python in PDF