[PYTHON] J'ai joué avec wordcloud!

introduction

J'ai décidé d'utiliser wordcloud, alors je l'ai posté sous forme de mémorandum

Puisque mecab est utilisé, si vous demandez "Qu'est-ce que mecab?", Veuillez cliquer [ici] 1!

J'ai essayé de résumer de l'installation de wordcloud à la sortie d'image

La description de l'article est la suivante

Quelle histoire est-ce?

Comme c'est un gros problème, je vais publier le problème en sortie par wordcloud (rire)

wordcloud.png

J'écrirai la réponse dans ** Conclusion **!

Qu'est-ce que wordcloud

Une méthode de sélection de plusieurs mots qui apparaissent fréquemment dans une phrase et de les afficher dans une taille en fonction de la fréquence.

Le fonctionnaire est [ici] 2

L'installation peut être utilisée immédiatement en installant avec pip, etc.

pip install wordcloud

Je l'ai déplacé

Je pense que c'est plus rapide à expliquer en utilisant des images, alors j'ai essayé de le déplacer immédiatement L'histoire utilisée ici est "Le Chaperon Rouge"

programme

import MeCab

from wordcloud import WordCloud

FILE_NAME = "sample.txt"

with open(FILE_NAME, "r", encoding="utf-8") as f:
    CONTENT = f.read()

tagger = MeCab.Tagger("-Owakati")
parse = tagger.parse(CONTENT)

wordcloud = WordCloud()
wordcloud.generate(CONTENT)
wordcloud.to_file("wordcloud.png ")

wordcloud = WordCloud()

Objet nuage de mots pour la génération et le dessin

wordcloud.generate ("chaîne")

Créer wordcloud à partir de texte (chaîne de caractères)

wordcloud.to_file ("nom de la photo")

Exporter vers un fichier image

Les étapes ci-dessus créeront une image wordcloud

image

wordcloud.png

Wordcloud affiche les mots fréquemment utilisés en grande taille

Cependant, notez que les ** mots d'une seule lettre ** tels que A et moi ne sont pas affichés!

On peut voir que grand-mère, Little Red et Red Riding sont souvent utilisés dans "Red Riding".

Divers réglages

Vous pouvez ajouter des paramètres dans WordCloud, tels que les arrière-plans et les limites de caractères

Voici quelques-uns des paramètres que vous utiliserez le plus souvent.

parameter Défaut La description
width 400 Largeur
height 200 Largeur verticale
background_color "black" Couleur de l'arrière plan
colormap None Couleur de la lettre
collocations True Langage commun
stopwords None Mots à exclure (liste)
max_words 200 Nombre maximum de mots à afficher
regexp r"\w[\w']+" Expression régulière du caractère affiché

Je veux changer la taille de l'image

L'image précédente est un peu petite (car c'est pour Qiita)

Si vous essayez de le régler sur 1080 vertical et 1920 horizontal, ce qui correspond également à la taille du bureau, ce sera comme suit

wordcloud = WordCloud(width=1920, height=1080)

Je veux changer la couleur

L'arrière-plan et la couleur du texte sont difficiles à voir ...

Déclarez la couleur d'arrière-plan que vous souhaitez spécifier Puisqu'il existe plusieurs couleurs d'image de caractères, déclarez-les.

Cette fois, la couleur de fond est le blanc et la couleur de l'image des personnages est l'été.

wordcloud = WordCloud(background_color="white", colormap="summer")

wordcloud.png

Je veux briser un mot comme Red Riding

"Red" apparaît souvent à l'écran, comme Red Riding et Little Red.

Alors, essayez de régler comme suit Très pratique car vous pouvez juger une combinaison de mots comme des mots séparés

wordcloud = WordCloud(background_color="white", colormap="summer", collocations=False)

wordcloud.png

Je ne veux pas afficher un certain caractère

Cela n'a pas beaucoup de sens de mettre des mots comme "le, et, à" sur wordcloud

Si vous ne souhaitez pas afficher ces mots, vous pouvez le déclarer à l'aide d'un tableau comme suit. (Cette fois, par souci de clarté, essayez de ne pas afficher ["Petite", "grand-mère"])

wordcloud = WordCloud(background_color="white", colormap="summer", collocations=False, stopwords=["Little", "grandmother"])

wordcloud.png

Je souhaite limiter le nombre de caractères pouvant être affichés

wordcloud est configuré pour afficher 200 caractères par défaut Vous pouvez définir le nombre de caractères à sortir en définissant comme suit.

wordcloud = WordCloud(background_color="white", colormap="summer", collocations=False, stopwords=["Little", "grandmother"], max_words=10])

wordcloud.png

En regardant cela, il semble que vous pouvez obtenir des données qui semblent bonnes si vous effacez autour de [le, et, à]? ??

Je veux afficher même des mots d'une seule lettre

Comme mentionné ci-dessus, wordcloud ne peut pas générer des mots d'une seule lettre. En limitant avec regexp, même les mots avec un ou plusieurs caractères peuvent être pris en charge.

wordcloud = WordCloud(background_color="white", colormap="summmer", collocations=False, stopwords=["the", "and", "to"], max_words=20, regexp=r"[\w']+")

wordcloud.png

Il est compréhensible que ** a ** soit le plus courant ...

Dis m'en plus! De [Officiel] 2

Erreurs courantes en japonais

Si vous jouez une phrase japonaise avec le programme ci-dessus, vous verrez l'image suivante ...

wordcloud.png

En effet, la police utilisée dans wordcloud ne prend pas en charge le japonais.

Ainsi, vous pouvez définir la police

Les paramètres de police sont les suivants

FONT_FILE = "C:\Windows\Fonts\MSGOTHIC.TTC" wordcloud = WordCloud(font_path=FONT_FILE, background_color="white", colormap="summer", collocations=False, regexp=r"[\w']+")

e? Pourquoi est-ce MS Gothic? ** Ancien Coboler ** Voilà pourquoi! (Ceux qui comprennent ... je pense)

C'est pourquoi la sortie était comme ça

wordcloud.png

en conclusion

J'ai résumé en gros wordcloud

À propos, la réponse à la question précédente est ...

wordcloud.png

** Trois porcelets **!

wordcloud est un mot qui a souvent de grandes lettres Regardant l'image

little pig house

Les trois ci-dessus sont les mots qui apparaissent souvent!

En créant un nuage de mots comme celui-ci, Il peut également être utilisé comme un index tel que ce que représente la chaîne de caractères (˘ω˘)

Recommended Posts

J'ai joué avec wordcloud!
J'ai créé wordcloud avec Python.
J'ai joué avec PyQt5 et Python3
J'ai joué avec Mecab (analyse morphologique)!
J'ai joué avec DragonRuby GTK (Game Toolkit)
[Scikit-learn] J'ai joué avec la courbe ROC
[Introduction à Pytorch] J'ai joué avec sinGAN ♬
[Python] J'ai joué avec le traitement du langage naturel ~ transformers ~
Visualisez le nem 2019 avec WordCloud
J'ai joué avec Floydhub pour le moment
J'ai joué avec Diamond, un outil de collecte de métriques
J'ai essayé de gratter avec Python
J'ai écrit GP avec numpy
J'ai fait un blackjack avec du python!
J'ai essayé le clustering avec PyCaret
J'ai essayé d'implémenter VQE avec Blueqat
Je ne peux pas effectuer de recherche avec # google-map. ..
J'ai mesuré l'IMC avec tkinter
J'ai essayé gRPC avec Python
J'ai créé COVID19_simulator avec JupyterLab
J'ai essayé de gratter avec du python
J'ai créé Word2Vec avec Pytorch
J'ai fait un blackjack avec Python.
[Python] J'ai essayé de visualiser des tweets sur Corona avec WordCloud
pyenv-vertualenv n'installe pas correctement la série python3
J'ai essayé l'apprentissage automatique avec liblinear
J'ai essayé webScraping avec python.
J'ai essayé de déplacer de la nourriture avec SinGAN
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Impossible de télécharger des images avec Google_images_download
Action que mysql-connector-python ne peut pas être installé avec anaconda
J'ai fait une loterie avec Python.
J'ai essayé d'implémenter Attention Seq2Seq avec PyTorch
J'ai envoyé un SMS avec Python
J'ai essayé d'implémenter DeepPose avec PyTorch
[Introduction à sinGAN-Tensorflow] J'ai joué avec la super-résolution "Challenge Big Imayuyu" ♬
J'ai aimé le tweet avec python. ..
J'ai essayé la détection de visage avec MTCNN
[Introduction à Matplotlib] Axes Animation 3D: J'ai joué avec des figurines 3D Lisaju ♬
Je ne peux pas utiliser le japonais avec pyperclip
J'ai essayé de résumer les remarques de tout le monde sur le slack avec wordcloud (Python)
Je veux faire ○○ avec les Pandas
Je ne pourrais pas faire de gunicorn un démon avec Fabric
[Introduction à RasPi4] J'ai joué avec "la conversation de langue empoisonnée d'Hiroko / Hiromi" ♪
[Introduction à StyleGAN] J'ai joué avec "Une femme se transforme en Mayuyu" ♬
Je veux déboguer avec Python
J'ai essayé d'exécuter prolog avec python 3.8.2.
J'ai créé un démon avec Python
J'ai essayé la communication SMTP avec Python
J'ai essayé la génération de phrases avec GPT-2
J'ai essayé d'apprendre LightGBM avec Yellowbrick
J'ai essayé la reconnaissance faciale avec OpenCV
[Python] J'ai essayé de visualiser la nuit du chemin de fer de la galaxie avec WordCloud!
[Introduction à AWS] J'ai joué avec des voix masculines et féminines avec Polly et Transcribe ♪
[Introduction à StyleGAN] J'ai joué avec style_mixing "Femme qui enlève ses lunettes" ♬
J'ai essayé de visualiser le texte du roman "Weather Child" avec Word Cloud
J'obtiens une erreur avec les pandas d'importation.
[Introduction à WordCloud] Jouez avec le scraping ♬
Je veux détecter des objets avec OpenCV