LoginSignup
4

More than 1 year has passed since last update.

posted at

updated at

アンケート調査データを分析してみる【第3回:形態素解析】

今回は、テキストマイニングの基本的な手法のひとつである形態素解析(文章を意味のある最小単位に分解し、意味や品詞などを判別する)について、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)

image.png

③ワードクラウドにより、よく使われる単語を視覚的に表現できます。今回は名詞を選び、ワードクラウドを作成します。

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()

出力されたワードクラウドを見ると「便利」や「管理」といった言葉が目立ちます。手帳を電子化することによる利便性の向上や、管理のしやすさがポイントであることが伺えます。

image.png

今回は基本的な手法として、形態素解析を実施し頻出単語を調べてみました。ここからさらに、共起分析などを行うことでより深い分析が可能になります。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4