機械学習エンジニア・データサイエンティストのmuraokazです。VISITS Advent Calendar 2020 10日目の記事です。今回はニッチな内容ですが、アンケートのフリーテキストで複数要素を答えさせた場合の回答フォーマットのゆらぎについて書きたいと思います。
テキスト解析では、いつも綺麗なデータを解析できるとは限らない
テキスト解析(データ分析)の基本は、諸々の解析にかける前に、その材料(テキスト)が分析したい内容のものとなっていることです。例えば、商品レビューページの感情分析をしたいのであれば、まずはページ中の「レビューが記載されている箇所」を抽出することから始まります。更に、「デザインについてのレビュー」「機能についてのレビュー」が別々のセクションに分かれているのであれば、それぞれのセクションを抜き出してくる処理が必要になると思います。ソースがHTMLファイルであれば、スクレイピング+DOM解析+タグからのテキスト抽出が該当します。
ところで、世の中のテキストデータは、常にこのように構造を持った形で存在しているわけではありません。例を上げると、企業が過去に収集したアンケート結果がExcelデータとして存在する、しかし複数の設問に対し、回答データは1つのカラムに結合されてしまっている、というような場合があるかもしれません。このような場合、カラムの中はフリーテキストであるとみなされるので、ここからいくつかの設問要素を切り出すという作業が必要になります。
回答フォーマットのゆらぎ分析
単純に考えると、フリーテキストから必要な箇所を抽出するスクリプトを書いたら良いと思われるかもしれません。しかし、実際のデータを覗いてみると、設問で回答フォーマットが指定してあった場合においても、一定の割合で回答にゆらぎが発生していることが分かりました。つまり、フォーマットを微妙に(ときには大きく)変更して回答する回答者が存在するようです。従って、抽出作業においてはこういったゆらぎを考慮するスクリプトを書く必要がありますが、今回の投稿ではそもそもどういったゆらぎがあるのか、私が実際に遭遇したいくつかのパターンについて、その例と割合を書いてみたいと思います。
(注)実際のデータは公開できないため、上記で書いた架空のアンケートを例に、パターンを示したいと思います。
改行の追加
上記の例では、次のような回答フォーマットを設問で指定しました。
①購入した理由:
②満足度:
③上記のように回答した理由:
このような設問では、コロン(:)に続いて回答が始まることを期待していると思われますが、回答が長くなりそうな場合、回答の見た目を気にした場合など、回答者がフォーマットに改行を追加する場合がありました。
①購入した理由:
XXXXXXXXXXXXXXXXXXXXX ← コロンに続けて回答をスタートせず、改行を挟んでいる
②満足度:普通
③上記のように回答した理由
YYYYYYYYYYYYYYYY ← 改行の追加に加え、コロンが不要と判断して削除している
割合は、
- 改行を挟んだ回答:約9〜19%
- 改行を挟んだ回答+コロンの削除:約0.7〜4.3%
となりました。ちなみに、以下のように回答フォーマットに回答例も併記して説明することで、このような回答ゆらぎは約3%以下にまで抑えられるようです。
①購入した理由:大掃除で収納用品が必要になり、部屋の雰囲気にも合いそうだったので購入した
②満足度:満足
③上記のように回答した理由:商品画像と実際の商品の色合いが一致していて、イメージ通りのものが届いたため
設問ラベルの除去
回答者によっては、ナンバリングがされていれば設問ラベルは不要と感じ、ラベリング部分(例えば「購入した理由」)は削って回答することがありました。具体的には次のような回答になります。
①XXXXXXXXXXXXXXXXXXXXX
②普通
③YYYYYYYYYYYYYYYY
このような回答パターンは約3.3〜11%見受けられました。ラベリング部分が長いほど、削られる確率が高い傾向にあり、逆にラベリング部分が短ければ(例「①理由:」)そのまま回答に使われる確率が高いようです。
設問ラベルの修正
頻度としては低いですが、設問ラベル部分について、指定された回答フォーマットから修正・加筆された回答もありました。その中では(具体的すぎるためここでは取り上げられませんが)タイポだと思われるものもあり、フォーマットをコピペせずに打ち直した過程でこうした事象が起きているのではないかと思われます。パターンとしては次の通りです。
回答フォーマット | 回答 | 割合 |
---|---|---|
①理由(一言で) | ①理由 | 約2.1% |
①理由/背景: | ①理由/背景: | 約0.4% |
①理由/背景: | ①理由・背景: | 約0.4% |
②理由: | ②その理由: | 約0.2% |
①具体的な理由: | ①理由: | 約0.1% |
回答フォーマットに従わない回答
こうした回答フォーマットに従わず、型化されていないフリーテキストで(設問に対して全般的に)回答されたデータも存在します。さらにこれらは、
- 回答フォーマットには従っていないが、段落や改行によって、回答要素は分割されている場合:約0.4〜0.7%
- ひとつのパラグラフで回答しており、回答要素が改行などによって分割されていない場合:約4〜18%
に分かれるようです。後者の場合の例を上げるとこのようなものになります。
今回の商品の購入に至ったのは、在宅勤務が続き、仕事道具としての椅子が必要になったためです。まずオフィスで使っていたものを見たのですが予算が合わず、無理なく購入できるものを選んだのですが、結果的にはソファと比較すると格段に良くなり、値段の割には高価格帯のものと遜色ない効果がありそうで、たいへん満足しています。
まとめ
最初に書いたように、テキスト解析の観点から言うと、一要素一カラムとなったデータ、そのようなデータが収集できるアンケートツール等を用意したいものです。ですが実際には、クライアントが持っている過去アンケートの集計データを扱うような場合など、フリーテキストから抽出・解析をかけなければいけない場合も存在します。こうしたとき、どんな回答ゆらぎがどのくらいの頻度であるのか、頭の片隅にでもあると、もしかしたらデータを見る心構えとなるかもしれません。本投稿がテキスト解析に携わるどなたかの役に少しでも立てば嬉しく思います。