この記事を見てやってみた。
準備
git clone https://github.com/amueller/word_cloud cd word_cloud python setup.py install
setup.pyの実行時にC++のビルド環境を求められた。
ここから、「VisualStudio2019のツール>Build Tools for Visual Studio 2019」をダウンロード。
実行して、「Visual C++ Build Tools」をインストール。
再度setup.py installをしたら無事完了した。
WindowsでのMeCabの導入
実装
import matplotlib.pyplot as plt from wordcloud import WordCloud import MeCab as mc import sys import re from collections import Counter def create_wordcloud(text): # 環境に合わせてフォントのパスを指定する。 fpath = "C:\\Windows\\fonts\\YuGothM.ttc" # ストップワードの設定 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''] wordcloud = WordCloud(background_color="white", font_path=fpath, width=900, height=500, \ stopwords=set(stop_words)).generate(text) plt.figure(figsize=(15, 12)) plt.imshow(wordcloud) plt.axis("off") plt.show() # ファイル読み込み infile = 'C:\\Users\\hiyoriaya\\Desktop\\teshita_wordCloud\\talk.csv' # ※txtファイルの格納場所は各自変えてください with open(infile ,encoding="utf-8") as f: data = f.read() parse = mc.Tagger().parse(data) lines = parse.split('\n') items = (re.split('[\t,]', line) for line in lines) output = [] for item in items: if item[0] == 'EOS': break if item[1] in ["形容詞", "動詞", "名詞", "副詞"]: output.append(item[0]) create_wordcloud(" ".join(output))
今回はあらかじめDBからCSVファイルを書き出していたので、 ファイル読み込みでデータを作成しました。
冒頭の記事を参考に、MeCabに形態素解析をさせたあと、スペース区切りに分解してWordCloudに渡します。
実行結果
対象のデータはLINEbotが集めた会話データをそのまま投げてみた。
ちゃんとそれらしいのができてすごい。
形態素解析はMeCabに投げればいいだけなのでお手軽でたのしい。