[PYTHON] Visualisieren Sie 2019 nem mit WordCloud

Dieser Artikel stammt aus nem # 2 Adventskalender 2019.

Inhalt dieses Artikels

① Extrahieren Sie nur die Zeichen aus den nem-bezogenen Dokumenten (2) Zerlegen Sie es mit Mecab in Teile und visualisieren Sie es mit WordCloud. ③ Außerdem ist nur WordCloud nicht interessant, daher werde ich mich ein wenig anstrengen.

Umgebung

Mac 10.15.1 Python 3.7.4

1. Extrahieren Sie nur Zeichen aus nem-bezogenen Dokumenten

Übrigens, was ist das nem-bezogene Dokument, das eine Zusammenfassung von 2019 zu sein scheint? Genau. Es ist ein Adventskalender.

~~ Dieses Mal habe ich die Zeichenketten aus allen Artikeln des diesjährigen Adventskalenders extrahiert ~~ Wenn Sie das tun, scheint es nicht viel Sinn zu machen, wenn Sie es nicht am letzten Tag speichern, also vorerst den ersten Artikel Der Text stammt aus @ 44uk_i3s Zusammenfassung der Spezifikationen, die sich zwischen NEM1 und NEM2 ändern. (Richtig, ich habe die Erlaubnis bekommen)

Stil, um den Quellcode vorerst einzufügen

scrapy.py


import urllib.request
from bs4 import BeautifulSoup

text = []

#URL der Zielwebsite
url = 'https://qiita.com/44uk_i3/items/53ad306d2c82df41803f'
html = urllib.request.urlopen(url)
soup = BeautifulSoup(html,'html.parser')

#Qiitas Artikel ist<div class="p-items_article">Weil das Innere der Text ist
article =  soup.findAll('div' , class_= 'p-items_article')

#Extrahieren Sie nur den Text aus dem Text
for i in article:
    text.append(i.text)

#Nem den extrahierten Text.In txt speichern
file = open('nem.txt','w',encoding='utf-8')
file.writelines(text)
file.close()

Ich denke, es gibt etwas Besonderes zu erwähnen. Bitte kommentieren Sie, wenn etwas passiert.

2. Zerlegen Sie es mit Mecab in Teile und visualisieren Sie es mit WordCloud

Ja, es wird zerlegt. Das Schreiben auf diese Weise erinnert mich an den Tag, an dem ich zum ersten Mal von Mecab beeindruckt war.

Mecab ist so ein Typ.

$ mecab
Von den Oberschenkeln und Oberschenkeln
Sumomo Substantiv,Allgemeines,*,*,*,*,Sumomo,Sumomo,Sumomo
Auch Assistent,Hilfe,*,*,*,*,Ebenfalls,Mo.,Mo.
Oberschenkel Nomen,Allgemeines,*,*,*,*,Pfirsiche,Pfirsich,Pfirsich
Auch Assistent,Hilfe,*,*,*,*,Ebenfalls,Mo.,Mo.
Oberschenkel Nomen,Allgemeines,*,*,*,*,Pfirsiche,Pfirsich,Pfirsich
Hilfswörter,Union,*,*,*,*,von,Nein,Nein
Davon Nomenklatur,Nicht unabhängig,Anwalt möglich,*,*,*,Zuhause,Uchi,Uchi
EOS

Sprechen Sie im Quellcode

nem_wordcloud.py


import MeCab
from wordcloud import WordCloud

#Öffnen Sie den gespeicherten Text
data = open("./nem.txt","rb").read()
text = data.decode('utf-8')

mecab = MeCab.Tagger('-Ochasen')
mecab.parse('')

#Morphologische Analyse
node = mecab.parseToNode(text)

#Word-Liste für WordCloud
output = []

#Trennen Sie Wörter mit Teilwörtern
while node:
  word = node.surface
  hinnsi = node.feature.split(",")[0]
  #Geben Sie die Teilwörter an, die dem Array hinzugefügt werden sollen
  if hinnsi in ["Verb","Adverb","Adjektiv","Substantiv"]:
    output.append(word)
  node = node.next

text = ' '.join(output)

#Japanischer Schriftpfad(mac)
fpath = "/System/Library/Fonts/Hiragino Mincho ProN.ttc"

#WordCloud-Generierung. Geben Sie die Hintergrundfarbe an
wc = WordCloud(
    background_color="white",
    font_path=fpath,
    width=800,
    height=600).generate(text)

#Als PNG speichern
wc.to_file("./wc.png ")

Ja, ändern Sie die Schriftart nach Ihren Wünschen. Die Standardschriftarten für Mac befinden sich in / System / Library / Fonts /. Bitte googeln Sie Windows.

Dinge, die bisher abgeschlossen wurden

nem.png

Ich habe so etwas gemacht.

3. Fügen Sie eine weitere Anstrengung hinzu

Wenn es sich bisher um den Inhalt handelt, gibt es viele Artikel über Qiita, daher werde ich weitere Anstrengungen hinzufügen.

Verwöhne zuerst mit dem Quellcode

nem_wordcloud_2.py


import MeCab
from wordcloud import WordCloud
import numpy as np
from wordcloud import WordCloud ,ImageColorGenerator
from PIL import Image

#Öffnen Sie den gespeicherten Text
data = open("./nem.txt","rb").read()
text = data.decode('utf-8')

mecab = MeCab.Tagger('-Ochasen')
mecab.parse('')

#Morphologische Analyse
node = mecab.parseToNode(text)

#Liste der für WordCloud zu verwendenden Wörter
output = []

#Trennen Sie Wörter mit Teilwörtern
while node:
  word = node.surface
  hinnsi = node.feature.split(",")[0]
  #Geben Sie die Teilwörter an, die dem Array hinzugefügt werden sollen
  if hinnsi in ["Verb","Adverb","Adjektiv","Substantiv"]:
    output.append(word)
  node = node.next

#Japanischer Schriftpfad(mac)
fpath = "/System/Library/Fonts/Hiragino Mincho ProN.ttc"

text = ' '.join(output)

imagepaht = "./nem_icon_black.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_nem.png ")

Ja, ich habe dieses Bild zuerst vorbereitet. nem_icon_black.png

Wie Sie alle wissen, habe ich dieses Symbol schwarz gemacht. Dieses Bild ist das . / Nem_icon_black.png, das im imagepaht angegeben ist.

Hier ist also das Bild, das erstellt wird, wenn Sie diesen Code ausführen.

Das fertige Produkt

wc_nem.png

Besser als ich erwartet hatte.

Zusammenfassung

Wenn Sie die Datenmenge etwas weiter erhöhen, können Sie anscheinend analysieren, was 2019 für nem wichtig war.

Bonus

Sie können eine solche Version auch erstellen, indem Sie das Originalbild oder die Einstellungen ändern. wc_symbol.png

Recommended Posts

Visualisieren Sie 2019 nem mit WordCloud
Lassen Sie uns 2ch Thread mit WordCloud-morphologische Analyse / WordCloud Edition- visualisieren
Mit Pandas schnell visualisieren
Ich habe mit Wordcloud gespielt!
Visualisieren Sie Ansprüche mit AI
Lassen Sie uns 2ch Thread mit WordCloud-Scraping- visualisieren
Visualisieren Sie App-Bewertungen mit Wordcloud
Visualisieren Sie Standortinformationen mit Basemap
Lassen Sie uns das Wissen über Wikidata mit Neo4j visualisieren
Ich habe Wordcloud mit Python gemacht.
[Python] Ich habe versucht, Tweets über Corona mit WordCloud zu visualisieren
Visualisieren Sie den Entscheidungsbaum mit einem Jupyter-Notizbuch
Visualisieren Sie Python-Paketabhängigkeiten mit graphviz
[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!
Ich habe versucht, den Text des Romans "Wetterkind" mit Word Cloud zu visualisieren
[Einführung in WordCloud] Spielen Sie mit Scraping ♬
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Versuchen Sie schnell, Ihren Datensatz mit Pandas zu visualisieren
Visualisieren Sie Punkt P, der mit Python funktioniert
Visualisieren Sie den Entscheidungsbaum von Scikit-Learn mit Plotlys Treemap