はじめに
昨年、Splunk のGojasというユーザー会で話させて頂く機会がありまして、そこで DLTKにある spacyというライブラリーを使った自然言語処理をアンケート結果に対して利用し分析してみたという発表をさせていただきました。ここではそちらの内容をシェアさせていただきたいと思います。
当時利用したスライドはこちらからご覧いただけます。slideshare
サマリー
Splunkのワークショップ後のアンケートコメントを使って以下のような分析をしてみました。
- Token化 (形態素解析) / 品詞タグ付け + ワードクラウドによる可視化
- TFIDFによる重み付けによる、重要コメントの抽出
- 類似度判定 + クラスタリングによるコメント傾向分析
1. Token化 (形態素解析) / 品詞タグ付け + ワードクラウドによる可視化
これは、ワークショップ毎にどのようなキーワードがコメントで発せられているかがわかります。日本語は形態素解析するだけでも一苦労なのですが、spacy(ginza)を使うと簡単にトークン化してくれて、品詞タグまで付けてくれるので、必要なワードを洗い出すことができます。ストップワードも入力できるのでワードクラウドと組み合わせると相性抜群です。
2. TFIDFによる重み付けによる、重要コメントの抽出
単純な単語だけでなく、その頻出度などと組み合わせながらコメント全体で重要度の高いと思われるものを洗い出すことができます。大量のコメントがあるときはこのような方法で絞ることも必要になってきます。(ただ付け加えておきますと、きちんと全部のコメントに目を通してます!!)
3. 類似度判定 + クラスタリングによるコメント傾向分析
類似度判定の機能とクラスターの機能を組み合わせた分析手法です。類似ワードがまとまるため、全体でどのようなコメントの傾向があるのか傾向分析できます。PCAと組み合わせることで図のように可視化もできて雰囲気出ますね。
さいごに
Splunk の DLTKと組み合わせることで自然言語処理のできる幅が大きく広がりました。残念ながら spacyは感情分析には対応していないため、他の方法を利用する必要がありますが、それ以外のことはかなりできそうです。
今回利用したDLTKのコードはこちらからご利用できます。