今回は、テキストマイニングの基本的な手法のひとつである形態素解析(文章を意味のある最小単位に分解し、意味や品詞などを判別する)について、Pythonで試してみました。
データは、以下のアンケート調査より「電子版お薬手帳を使いたい理由」に関する自由回答を使用しました。
「電子版お薬手帳に関する意識調査」を行いました
https://www.nicho.co.jp/corporate/newsrelease/11633/
①まずはライブラリをインポートします。今回はMeCabを使用しました。
import MeCab
from MeCab import Tagger
from matplotlib import pyplot as plt
from wordcloud import WordCloud
②テキストファイルを読み込み、形態素解析を行うことで文章を品詞別に分解してくれます。
df = "survey3.txt"
with open(df, "r", encoding="utf-8") as f:
opinion = f.read()
tagger = MeCab.Tagger()
parse = tagger.parse(opinion)
print(parse)
③ワードクラウドにより、よく使われる単語を視覚的に表現できます。今回は名詞を選び、ワードクラウドを作成します。
with open('survey3.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)
matplotlibで可視化します。
W = WordCloud(width=1280, height=960, background_color='white', colormap='PuBu', font_path='C:\Windows\Fonts\yumin.ttf').generate(word_chain)
plt.imshow(W)
plt.axis('off')
plt.show()
出力されたワードクラウドを見ると「便利」や「管理」といった言葉が目立ちます。手帳を電子化することによる利便性の向上や、管理のしやすさがポイントであることが伺えます。
今回は基本的な手法として、形態素解析を実施し頻出単語を調べてみました。ここからさらに、共起分析などを行うことでより深い分析が可能になります。