見出し画像

Google Colaboratoryでワードクラウドを作ってみる【Python】

今回は日本語テキストをワードクラウドで可視化します。
開発環境として、Google Colaboratoryを利用します。

▼Google Colaboratoryの詳細・設定方法はこちらから

またワードクラウドを生成するためのPythonライブラリであるWordCloudを使用します。

ワードクラウドとは

ワードクラウドはテキストに含まれるキーワードの出現頻度にあわせて文字の大きさを変えて視覚化したものです。出現頻度の高い単語を視覚的にとらえやすくなります。

1.stop_wordsの設定

stop_wordsとは、除外するあまり意味のない単語を指定することです
ワードクラウドから除外することで、精度を上げることができます

# stop_wordsの設定(表示しない単語)文章に応じて追加してよし
# 不要な文字を入力→指定した文字は処理されない

stop_words = [ u'てる', u'いる', u'なる', u'れる', u'する', u'ある', u'こと', u'これ', u'さん', u'して', \
u'くれる', u'やる', u'くださる', u'そう', u'せる', u'した', u'思う',u'すぎ',u'ため', \
u'それ', u'ここ', u'である', u'だ', u'', u'て',u'に',u'を',u'は',u'の', u'が', u'と', u'た', u'し', u'で', \
u'ない', u'も', u'な', u'い', u'か', u'ので', u'']

2.MeCabと各種インストール

Colabに日本語を形態素解析するためのツールであるMeCabをインストールします。その他に必要なものも同時にインストールします

!apt install aptitude
!aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file -y
!pip install mecab-python3==0.7

import MeCab # 分かち書きに必要
import re #reは正規表現操作で用いられる

from wordcloud import WordCloud
import matplotlib.pyplot as plt
import codecs

3.フォントの設定

fpath = '/usr/share/fonts/truetype/fonts-japanese-gothic.ttf' # フォント指定

4.テキスト入力&形態素解析処理

入力したテキストを形態素解析し、WordCloudを利用するための文字列に変換します。
また、品詞を指定してワードクラウドに表示することができます
(今回は’名詞’となっていますが、動詞や形容詞なども指定できます)

# 解析したい文章を入力
text=input('文章を入力してください')

tagger = MeCab.Tagger("")
tagger.parse(text)
node = tagger.parseToNode(text).next
print(node.surface)
print(node.feature[0])

wc_text=''
while node.next:
    print(node.surface, node.feature.split(',')[0])
    if node.feature.split(',')[0]=='名詞': #名詞のみ取り出す(動詞、形容詞など変更可)
        wc_text += node.surface+' '
    node = node.next
print(wc_text) # 分かち書き&品詞の分類の表示

5.ワードクラウド表示

形態素解析した結果をWordCloudを利用して表示します。

wordcloud = WordCloud(font_path = fpath,
                      background_color="white",
                      width=1000,height=400,stopwords=set(stop_words)).generate(wc_text)
plt.figure(figsize=(15,12))
plt.imshow(wordcloud)
plt.axis("off")
plt.savefig("word_cloud.png")


最終的にこのような画像が生成されます


この記事が気に入ったらサポートをしてみませんか?