自由記述のアンケートデータがあったときに実施すべき4つの分析手法

アンケートには、数値で回答をする設問があったり、自由記述の回答をする設問があったりすることが一般的です。

そして、数値の回答に関しては、集計して性別や年代など回答者の属性ごとにスコアを比べたり、質問間の相関を調べて、分析を進めることが可能です。

一方で、自由記述の回答の場合、膨大なテキストデータを眺めるだけで終わってしまったり、アンケートを見た人の主観的な気付きをまとめただけで分析が終わってしまい、「データに基づいた気付き」を得るまでには至らないことも少なくありません。

そこで、今回は自由記述のアンケートデータがあったときに、有用な情報や気付きを得るために実施すべき4つの分析手法を紹介いたします。

# 1. 頻出単語のカウント

自由記述のテキストデータがあったときに、データ（文章）は「単語」に分け、それぞれの単語の出現回数を集計（定量化）することで、データの中にあるパターンや特徴を掴めるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/a57692e6-27da-5469-2247-b78d3242f151.png)

例えば、下記は1行が1人の回答者を表すようなセミナーのアンケートデータですが、「時間」といった単語が、他の単語と比べて多く使われていることから、アンケートの回答者に「時間」を気にしている人が多いことがわかります。

![image-20240606215112559.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/2057bb6f-8e10-b04c-91f4-687c0e22d82e.png)

そこで、文章を単語に分けて、その登場頻度を可視化するときによく利用される「ワードクラウド」という可視化の方法があります。

![image-20240610233823299.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/439d6b18-321d-141b-57dc-54ceede2ff4e.png)

ワードクラウドは、それぞれの単語の出現頻度に応じて単語の「サイズ」や「色」が決まり、例えば、上記のワードクラウドからは「時間」や「事例」などの単語が多く使われていることを確認できます。

このように、ワードクラウドはインパクトがあるビジュアルなため、興味を引くことには役立ちますが、それぞれの単語が何回出現したのか、どの順番で多いのか、あるいは一番多く利用されている単語が、二番目に多く利用されている単語比べてどれだけ多いのか、といったことまではわかりません。

そのため、実際に分析をするときには、それぞれの単語の出現回数を比較しやすいバーチャートなどを利用することで、単語の出現回数が多いのか少ないのかを、より直感的に理解できるようになります。

![image-20240606215421079.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/ce1d0ead-7211-6664-4f10-b188f8235d6c.png)

このように利用されるの単語の頻度を理解することで、文章全体にどのような傾向があるのかを理解できるようになるわけです。

# 2. ネットワーク図（共起ネットワーク）を使った可視化

単語の出現頻度を集計することで、アンケートの回答者の大まかなか回答傾向は掴めますが、登場頻度の多い単語がどのような文脈で使われているかまではわかりません。

例えば先程の例では、「時間」という単語が多く使われていることがわかりましたが、「時間」がなんなのかまではわかりません。

そこで、回答の傾向をより深くつかみたいときに有効なのが、単語の登場頻度と一緒に使われる単語の関係性を可視化した「**ネットワーク図（共起ネットワーク）**」です。

![image-20240610233905417.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/a7b3f59a-f2ae-11b8-9229-b4b7a519711e.png)

上記のネットワーク図において、サークルは「単語」を表し、円の大きさは「出現頻度」によって決まっていて、出現頻度が多いとサークルは大きくなり、出現頻度が少ないとサークルは小さくなります。

また、各単語をつなぐ線は、一緒に使われている単語を表しており、一緒に使われやすい単語の組み合わせになるほど、線がより太くなります。

上記の結果から以下の内容に関する文章が多いのではないか、と想定できるわけです。

- オレンジ: 時間が長い、時間配分、発表者を減らす
- 赤: 特にない、良い
- 緑: 機械学習の活用事例の紹介
- 紫: 資料の（事前）共有
- 茶: 開催頻度を増やして欲しい
- ピンク: もっとデモをみたい
- 黒: オンラインの開催希望

このように単語の登場頻度と一緒に使われる単語の関係性を理解することで、回答にどのような傾向があるのかをより深く理解できます。

# 3. 相関分析：単語と数値を掛け合わせた分析

これまで見てきた2つの分析手法は、自由記述のデータそのものを分析する方法でした。

しかし、冒頭で紹介したように、多くの場合、アンケートデータには自由記述の設問があるだけではなく、数値のスコアをつける設問も含まれます。

![image-20240610234316783.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/71aa2e1d-0b56-830c-524a-9c5ba5dc8ed6.png)

そこで有効なのが、単語と数値データを掛け合わせた分析です。

例えば、以下は上記のセミナーのアンケートの回答の一部ですが、「時間」と回答しているのほとんどの人の満足度のスコアが低いことが分かれば、時間という単語が使われると、満足度が低くなりやすい、といった関係を見出すことができます。

![image-20240610234711971.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/655453d9-2048-2e70-b1b5-ac9d7b491c84.png)

上記のことは、以下のように頻出単語と、回答のスコアの比率を可視化することで、アンケートのスコアと頻出単語の関係性を定量的に理解できます。

![image-20240610235413811.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/24ba0e6e-2e02-15a1-2a49-7e4d87130677.png)

例えば、上記のチャートからは以下のように、「時間」あるいは「配分」といった単語は低いスコアをつける回答者の比率が高いことが読み取れます。

![image-20240610235438775.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/2948ca2d-3934-a500-afeb-565808710027.png)

このような結果からは、多くの人がネガティブな文脈、言い換えれば改善可能な要素として「時間」「配分」に言及していることがわかるわけです。

# 4. トピックの分類

これまで見てきた分析手法は、自由記述のアンケートデータがあったときに「全体的な傾向」を捉えるための分析でした。

一方で、回答自体を「トピック（話題）」に分類することができれば、それをアンケートの回答者の「属性」として捉えて、それをもとに顧客とのコミュニケーションやプロモーションなどに役立てることが可能です。

![image-20240611002242674.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/2145eb6c-fa66-3410-e830-7da0a3e8cd32.png)

そういったときに有効なのが「**トピックモデル（LDA）**」です。

トピックモデルは、テキストデータがあったときに、単語の出現頻度と、それぞれの単語が一緒に利用されるパターンをもとに、文書をトピックに分類する手法です。

トピックモデルは自身で設定した任意のトピック数に応じて、それぞれのトピックである確率を計算します。

例えば、以下の結果はトピックモデルを実行し、「トピック2」である確率が高い回答（回答者）にデータをソートしたものですが、この結果から、「トピック2」は、時間配分や発表時間などに関するトピックであることが伺えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/d640bc70-b97b-2504-4ecc-535c0dfc925d.png)

なお、トピックモデルは各トピックがどのようなものであるかの名前を付けてくれるわけではありません。そのため、各トピックがどのようなものであるかは、人間が解釈する必要があります。

上記の例はわかりやすいものでしたが、それぞれのトピックがどのようなものであるかが分かりづらいときもあります。そういったときには、トピックモデルが計算する各トピックにおける重要語から各トピックへの理解を深めることが可能です。

![image-20240611000014959.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/c6274bb2-e103-965a-6939-99871f23064c.png)

例えば、トピック2における重要語には「時間」「発表」「配分」といった単語が並んでいることから、改めて、発表時間や時間配分に関するトピックであることが確認できます。

# 自分のデータで試してみたい！

今回、自由記述のアンケートデータがあったときに実施すべき4つの分析手法を紹介いたしました。

いずれの分析手法も直感的にわかりやすいものでですが、いざ、実際に自分でテキストデータを単語に分けて集計をしようと思うと手間がかかったり、トピックモデルのような分析手法を利用するためには、コードを書くことが求められます。

そこで、記事内のスクリーンショットで利用している、データの加工、可視化、分析、レポーティングのためのUIツールの[Exploratory](https://exploratory.io/?utm_campaign=4-text-analysis&utm_medium=blog&utm_source=qiita)を利用することで、これらの分析手法の実行が数クリックで実現可能です。

こちらの記事で紹介した分析手法に興味がある方は、それぞれの分析手法をサンプルデータ付きで試せる情報も公開しています。

https://exploratory.io/note/exploratory/hvP4cCu6?utm_campaign=4-text-analysis&utm_medium=blog&utm_source=qiita

https://exploratory.io/note/exploratory/LDA-MmP4fnU2?utm_campaign=4-text-analysis&utm_medium=blog&utm_source=qiita

上記を参考に、ご自身のデータを使って、データの分析をしたい方は、下記のリンクより無料トライアルが可能です。

https://exploratory.io/?utm_campaign=4-text-analysis&utm_medium=blog&utm_source=qiita

なお、今回、紹介したテキストデータの分析以外にも、アンケートデータ分析に必須の5つのアナリティクスを紹介する動画も公開しています。こちらも、合わせてご覧ください。

https://exploratory.io/note/kanaugust/103-5-phL8upG0mF?utm_campaign=4-text-analysis&utm_medium=blog&utm_source=qiita

# 企業や組織で真にデータインフォームドな文化を作りたい！

企業や組織で真にデータインフォームドな文化を作っていくための最初の一歩として欠かせないデミング哲学を、具体的なビジネスの例を使って解説するセミナーを2024年6月19日に実際いたします。

データを使ってビジネスを改善したい方は、ぜひ参加をご検討ください。

https://exploratory.io/note/kanaugust/vrL1LGI3Zb?utm_campaign=4-text-analysis&utm_medium=blog&utm_source=qiita



# データサイエンスを体系的に学びたい！

今回は自由記述のアンケートデータにおける分析手法を紹介しましたが、実際のビジネスを改善していくためのヒントを得るためには、自分達が注目している指標の将来を予測したり、またはその裏にある因果関係に迫っていくための分析が欠かせません。

そこで、そういった分析手法を基礎から、そして体系的に学びたいという方向けに、データサイエンス・ブートキャンプ・トレーニングを9月に開催しますので、興味のある方はぜひご参加をご検討いただければと思います。

https://exploratory.io/training-jp?utm_campaign=4-text-analysis&utm_medium=blog&utm_source=qiita