自由記述アンケートのテキスト分析 Part 2：よく一緒に使われる単語の組み合わせの集計と可視化

![p1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/12e1cfed-acda-b858-c408-cfeb2e08423c.png)


# 自由記述アンケートのテキスト分析 Part 2：よく一緒に使われる単語の組み合わせの集計と可視化


どうも！[Exploratory](https://ja.exploratory.io/?utm_campaign=survey_count_pair&utm_medium=blog&utm_source=qiita)の[Ikuya](https://twitter.com/Ikuyamm)です。

[前回](https://qiita.com/IkuyaM/items/e77a8292cf445011eda7)は自由記述のアンケートのテキストを分析するために、文章を単語化して、ワードクラウドで可視化する方法を紹介しました。


![p2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/4686270d-97dc-351d-c703-5962116cbc1b.png)


- Part1：文章の単語化とワードクラウド - [Link](https://qiita.com/IkuyaM/items/e77a8292cf445011eda7)

このワードクラウドは、どのような単語が多く出現するかを直感的に理解することには向いていますが、一方でどのような文脈で各々の単語が使われているかが分かりづらいといったことがあります。

そこで本日は文章の中で使われている単語の組み合わせを集計して、自由記述のアンケートを分析する方法を紹介します。


# 自由記述のテキストを分析するステップ

今回は[Exploratory](https://ja.exploratory.io/?utm_campaign=survey_count_pair&utm_medium=blog&utm_source=qiita)を使って、以下の3ステップに沿って説明していきます。

1. 文章を単語化する
2. 単語の組合わせをカウントする
3. 単語の組み合わせを可視化する

# 1. 文章を単語化する


![p3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/82d63c64-2a50-3d5d-8a0f-ce2bcaa308ca.png)


今回は上記のようなアンケートのデータを下記のように単語化しておいたデータを利用していきます。（文章を単語化する方法については[こちら](https://qiita.com/IkuyaM/items/e77a8292cf445011eda7)をご参考ください。）


![p4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/66eec0bd-fac9-2fba-1686-4dc3bb16ee82.png)


# 2. 単語の組み合わせをカウントする

今回のデータでは文章がすでに単語化されているので、早速、単語の組み合わせを集計していきます。「token」の列ヘッダーメニューから、「テキストデータの加工（UI）」、「テキストペアをカウント」を選択します。


![p5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/7b90aa3f-5096-0697-d8d5-c4cc8011bad3.png)


すると、「テキストペアをカウント」ダイアログが表示されるので、そのまま実行します。

なお「文書IDの列」には文章ごとにユニークなIDを選択します。今回はすでに文章ごとにユニークなIDである「document_id」が選択されているので、デフォルトのまま実行します。


![p6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/4bcb20d6-e63d-f870-bbdc-d7ee084c65c4.png)


それぞれの単語の組み合わせの回数を列として作ることができました。


![p7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/966552d6-3872-5a0e-fa28-7d8ccbc843de.png)


ただ残念ながら単語のペアが別々の列に分かれているため、このままでは可視化がしづらいということがあります。そこで可視化がしやすいように単語のペアを一列にまとめていきます。

一つ目の単語である「token.x」列と二つ目の単語である「token.y」列を選択したら、列ヘッダーメニューから「複数の列をつなげる(Unite)」を選択します。
	

![p8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/dd134239-8d65-320e-57df-621280370db0.png)


すると「複数の列をつなげる（Unite）」ダイアログが表示されるので、新しい列名を「text_pair」として実行します。


![p9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/59d6432e-bb88-a638-734f-8a5f6f00b3ec.png)


無事、単語のペアを一列にまとめるこができました。


![p10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/e44df4b4-b097-6198-efcb-c340393ea18f.png)


# 3. 単語の組み合わせを可視化する

最後に単語のペアの出現数を可視化していきます。チャートビューに移動したら、チャートのタイプに「バー」、X軸に「text_pair」、Y軸に「value」を選択します。


![p11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/728103a4-0c73-1b9d-0d89-611b86598a20.png)


続いてY軸の集計関数に「合計値(sum)」を選択します。


![p12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/9099dc18-b37c-5871-6807-a13685e949be.png)


最後にソートに「Y1軸」を選択します。


![p13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/4d50be10-b7a1-67f5-02df-96c78e756d93.png)


これで単語のペアを出現回数の多い順に可視化できました。


![p14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/7821bfc8-1a56-714f-67a7-baccdefd9b62.png)


ただし、今のままだと単語のペアがあまりにも多く見づらくなってしまっています。さらに1回しか出現しない単語のペアも多くなっています。1回しか出現しないペアはたまたま使われた組み合わせの可能性が高いので、今回は3回以上出現した単語のペアに絞っていきます。

先ほどのチャートのX軸メニューより「表示する値の制限」を選択します。


![p15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/68411586-a493-3cd9-84c8-dd0041cf0e49.png)


続いてタイプを「条件」、基になる列を「value」、演算子を「以上」、値に「3」と入力し、適用します。


![p16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/7335dbf1-955b-94ad-55a4-545e3692ba4c.png)


すると3回以上、出現した単語の組み合わせが表示され「時間_配分」や「もっと_事例」、「デモ_みたい」といった組み合わせが多いことが分かりました。


![p17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/f234e988-0801-c49f-f8a1-238ed7d4c21f.png)


このように単語の組み合わせを集計し、さらに可視化することで、セミナーの「時間の配分」を改善したり、「もっとデモ」を増やしたりしたほうがいいのではないかというインサイトを得ることができました。

# 自分のデータで実際に試してみる

[Exploratory](https://ja.exploratory.io/?utm_campaign=survey_count_pair&utm_medium=blog&utm_source=qiita)では30日間、無料でトライアルができます。実際に自分達のデータを使って試してみたい方は下記より無料トライアルをご利用ください！

![p18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/1b345901-2f56-9dd8-ad5d-fa7dbcf47a45.png)