Dieser Artikel stammt aus nem # 2 Adventskalender 2019.
① 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.
Mac 10.15.1 Python 3.7.4
Ü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)
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.
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
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.
Ich habe so etwas gemacht.
Wenn es sich bisher um den Inhalt handelt, gibt es viele Artikel über Qiita, daher werde ich weitere Anstrengungen hinzufügen.
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.
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.
Besser als ich erwartet hatte.
Wenn Sie die Datenmenge etwas weiter erhöhen, können Sie anscheinend analysieren, was 2019 für nem wichtig war.
Sie können eine solche Version auch erstellen, indem Sie das Originalbild oder die Einstellungen ändern.
Recommended Posts