ワードクラウド

ワードクラウドは、単語出現頻度に応じてフォントサイズを変化させた図です。どういった内容が語られているかを一目で把握する試みです。

データ

獣医事審議会

国の獣医の方針が決められている会議です。令和元年で、議事録が公開されているものに絞ってワードクラウドを作成してみます。どういった内容が議論されていうでしょうか。

https://www.maff.go.jp/j/council/zyuizi/

令和元年度第1回

令和元年度第2回

令和元年度第3回

令和元年度第4回

令和元年度第5回

第1~5回を合わせたもの

産業動物について多く語られていることが分かります。

実施方法

環境構築

文章の形から名詞を取り出さなければなりません。そのためには、mecabという形態素解析器を使います。pythonから操作します。

インストールの仕方は以下のQiita記事を参考にしました。

https://qiita.com/menon/items/f041b7c46543f38f78f7

私の場合は、mecab-python-windowsがインストールできませんでした。解決した方法はまず、pythonのバージョンを3.7に下げてから、https://pypi.org/project/mecab-python-windows/#filesのcp3.7と書かれたファイルをダウンロードしました。そして、そのフォルダをpip install ”パス” しました。

追記:mecab-python-windowsの開発者ご本人様が、アップデートはないので別方法を推奨するとおっしゃっています。ご本人の記事を紹介します。

https://qiita.com/yukinoi/items/990b6933d9f21ba0fb43

コード

libraryはmecab、matplotlib、wordcloudを使用します。

import MeCab
from matplotlib import pyplot as plt
from wordcloud import WordCloud

with open("C:\\Users\\shingikai.txt", mode='rt', encoding='utf-8') as fi:
    source_text = fi.read()

tagger = MeCab.Tagger()
tagger.parse('')
node = tagger.parseToNode(source_text)

word_list = []
while node:
    word_type = node.feature.split(',')[0]
    if word_type == '名詞':
        word_list.append(node.surface)
    node = node.next

word_chain = ' '.join(word_list)

#除外語
stop_words = [ 'てる', 'いる', 'なる', 'れる', 'する', 'ある','こと', 'これ', 'して', 
        'くれる', 'やる', 'くださる', 'そう', 'せる', 'した',  '思う', 'それ', 'ここ',
        'よう','て','に','を','は','の', 'が', 'と', 'た', 'し', 'で',
        'ない', 'も', 'な', 'い', 'か', 'ので', 'よう', ]

# ワードクラウド作成
W = WordCloud(width=1200,
              height=1000,
              stopwords=set(stop_words),
              background_color='white',
              colormap='bone',
              font_path='C:\Windows\Fonts\yumin.ttf').generate(word_chain)

fig, ax = plt.subplots(figsize=(10, 10))
ax.axis("off")
plt.imshow(W)
category