#Essayez-le avec JupyterLab en Python japonais Word Cloud.
#HP principal que j'ai utilisé comme référence
# https://github.com/amueller/word_cloud/blob/master/examples/masked.py
# https://note.nkmk.me/python-janome-tutorial/
# https://quest.signate.jp/quests/10031 "Dojo de prétraitement des données"
from os import path
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import os
from wordcloud import WordCloud, STOPWORDS
#Installez "re" pour utiliser le remplacement
import re
# get data directory (using getcwd() is needed to support running example in generated IPython notebook)
d = path.dirname(__file__) if "__file__" in locals() else os.getcwd()
#----
#Utilisez "janome" car il ne peut être introduit qu'avec pip. Utilisé pour extraire uniquement la nomenclature des chaînes de caractères
from janome.tokenizer import Tokenizer
text_wakati = open(path.join(d, 'chumonno_oi_ryoriten.txt'), encoding='shift_jis').read()
t = Tokenizer()
s = text_wakati
print(type(t.tokenize(s)))
text_wakati=[token.surface for token in t.tokenize(s)
if token.part_of_speech.startswith('nom')]
text_wakati =" ".join(map(str, text_wakati))
#Le mot «abaissement» est reconnu comme une nomenclature. Excluez-le car il est reconnu comme un caractère fréquent.
text_wakati = re.sub("Personnage", ' ', text_wakati)
text_wakati = re.sub("Inférieur", ' ', text_wakati)
text_wakati = re.sub("ici", ' ', text_wakati)
#Décrit pour confirmer la chaîne de caractères générée. Enfin, faites un commentaire pour éliminer l'influence.
#print(text_wakati)
# read the mask image
# taken from
alice_mask = np.array(Image.open(path.join(d, "alice_mask.png ")))
stopwords = set(STOPWORDS)
stopwords.add("said")
font_patha_a = 'gomarice_mukasi_mukasi.ttf'
#Si une police qui peut afficher le japonais ne peut pas être utilisée, elle sera écrite comme □□□□.
#Puisque j'utilise Python installé par docker cette fois, il était gênant de mettre la police dans le dossier, alors placez le fichier de police dans la même hiérarchie.
#「font_path=font_patha_Ajout de "a".
wc = WordCloud(background_color="white", max_words=2000, mask=alice_mask,
stopwords=stopwords, contour_width=3, contour_color='steelblue',font_path=font_patha_a)
# generate word cloud
wc.generate(text_wakati)
# store to file
wc.to_file(path.join(d, "alice.png "))
# show
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.figure()
plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation='bilinear')
plt.axis("off")
plt.show()
#Préparation préalable
#Préparez «fichier texte», «fichier image» et «fichier de police» dans le même calque
#Principaux changements avec l'échantillon
#Fichier texte: Utilise les données des restaurants avec de nombreuses commandes de "Aozora Bunko" Nom enregistré "chumonno"_oi_ryoriten.txt "Placé dans la même hiérarchie.
#import re: Utilisé pour remplacer les chaînes de caractères
#Classification des caractères: utilisez "janome" car il ne peut être introduit qu'avec pip. Utilisé pour extraire uniquement la nomenclature de la chaîne de caractères
#<Police> (Je pensais que cela était dû à docker, donc je ne regardais que les articles prenant en charge le japonais ... Le résultat semble être □□□ à cause de la police.)(gomarice_mukasi_mukasi.Des polices gratuites sont disponibles pour ttf.)
#Si une police qui peut afficher le japonais ne peut pas être utilisée, elle sera écrite comme □□□□.
#Puisque j'utilise Python installé par docker cette fois, il était gênant de mettre la police dans le dossier, alors placez le fichier de police dans la même hiérarchie.
#「font_path=font_patha_Ajout de "a".
Recommended Posts