見出し画像

ソーシャルリスニングの分析精度を上げるデータクリーニング方法

みなさん、こんにちは。ソーシャルリスニングBlogです。
今回は、たびたびアップしているソーシャルリスニングKnow-Howシリーズの新作として、データクリーニングについて取り上げたいと思います。

https://note.com/n_ide/n/nc14470bce56b

多くのクライアントさまとSNSデータの分析についてお話しすると、SNSデータにはマーケティングやリサーチ的な利用価値がたくさんありそうだけど、本当に見るべきデータに絞り込む/不要なデータをきれいに除外することに手間がかかりすぎて手がつけれらない、といった話をしばしば耳にします。

たしかに、調査の世界には、「ガーベッジイン、ガーベッジアウト」という話が有名なように、テキストマイニングだーとか、機械学習だーと言う前に、分析するべき正しいきれいなデータに揃えることが何よりも重要です。

でも、具体的に何をどのように、どこまでクリーニングするのか、などは業界標準などは名いいんじゃないかって気がしてます。
今回は、普段行ってるデータクリーニングの考え方などを皆さんと共有することで少しでも共通の認識が作られるきっかけになるといいなと思いってます。


何がノイズで、何がノイズではないのか

データクリーニングの際に考えなくてはいけないのは、「削除するべきノイズとはどの範囲までをさすのか」を明確にすることです。

これは行おうとしているソーシャルリスニング分析が何を目的にしているのかによって変化します。
例えば、自社のSNSマーケティング施策の効果測定を行おうとする際や、競合を含めて各社のブランドトラッキングなどを行う場合、各公式アカウントや著名やインフルエンサーや、多くのメディアアカウントからの投稿は分析対象としてデータに残す必要があります。

一方で、自社ブランドに対するリアルな声を捉えたいとか、カテゴリー全体のトレンドとかアンメットニーズを分析したいとなった場合には、純粋な消費者投稿に絞り込む必要があるので、公式アカウントや各メディアアカウントなどは分析対象になりません。

ちなみに、弊社では、(Twitterを例にすると)、Tweetを以下のような分類のなかで、どこまで除外するのかなどは、案件ごとに議論になります。

  • コマーシャルツイート(企業やインフルエンサーによる投稿)

  • レゾネイテッド・オーガニックツイート(企業やインフルエンサーからの投稿に刺激されて生み出された投稿)

  • ピュア・オーガニックツイート(ゼロスクラッチから消費者が自発的に発信した投稿)

※実際には、もう少し細かい視点で分類を議論していますが、ざっくりこんなイメージです

このように、データクリーニングというのは、常に一定のステップを踏めばいいと言うわけではなく、ソーシャルリスニングを通じてどのような分析を行いたいのか、によってさまざまに変化します。

以下は、この中でも、もっともデータクリーニングの深度が深い「純粋な消費者の生声だけに絞る」ケースを考えていきたいと思います。

データクリーニングの視点

データ全体からノイズを探す

まず、データクリーニングで最初に行うのは、データ全体を見て不要なデータを除外する方法です。
おそらく、データクリニングの中でも最も一般的な方法だと思います。
「通販」とか「懸賞」とかの除外ワードを入れることで懸賞系のツイートなどを除外するイメージです。

ここでは主にテキストマイニングや機械学習がワークします。
収集したデータをテキストマイニングにかけてワードランキングを出し、その中で明らかにノイズに該当するキーワードをピックアップして、除外していく方法です。

一方で、上記のようなキーワードベースの方法以外にも、投稿データをクラスター分析することで、クラスター単位でノイズを見つける方法も有効です。ここでのクラスター分析はキーワード単位ではなく、投稿単位でクラスタリングする方法です。トピックモデリングといった言い方もしますね。
クラスター分析では特定の単語に依存しない話題の塊を発見できるので、別の角度から効率的にノイズクリーニングすることができます。


スパイクからノイズを探す

また、時系列グラフの上昇(スパイク)からノイズを探す方法もあります。
瞬間的なスパイクは往々にして企業アカウントやインフルエンサーへの反響で生まれることが多いです。
SNSデータって結構上下動するイメージがありますが、本当にピュアなオーガニックツイートに絞り込むと、基本的には結構フラットなんですよね。

スパイクからノイズを探す場合もシンプルで、データ期間をそのスパイクに絞り込んで、キーワードを見ていくことで除外するべきノイズワードを見つけることができます。

「すでに全体データからノイズワードを除外しているんだから、不必要じゃない?」って思う方もいるかもですね。
しかし、瞬間的なスパイクってデータ上は視覚的に目立つんですが、データ全体からすると一部なんですよね。そうすると、データ全体を一塊にしてキーワードを出してもうまくノイズワードが見つからないケースが少なくありません。でも、スパイクをそのままにしておくと、波形がおかしくなったり、定量的な分析がうまくいかなくなる結果に繋がります。

スパイクが5個あれば、同じ作業を5回繰り返しです(辛い!)。

フォロサー数の規模でアカウントを削除する

今までは、データからキーワードベースでノイズを除外していきました。
それ以外にも、アカウント単位でデータをクリーニングする方法も有効です。

一番有効なのは、フォロサー数で足切りをしてしまう方法です。例えば、「フォロサー数10000以上は一般人ではない」という想定のもと、フォロワー数でばっさりデータを削ってしまうのも有効です。

インフルエンサーも、著名なアカウントは事前に想定できますが、世の中にはマイクロインフルエンサーからインフルエンサー風のアカウントまで、非常に長いグラデーションがあります。
そのようなデータ傾向がある時には、フォロサー数でデータクリーニングするのはとても効果的です。個人的な感覚では1000人以上のフォロワーがいる人は純粋な個人ではないのでは?という見方をしています。(もちろん、どこを閾値にするかは個別に判断していますが)

異常に投稿頻度が高いアカウントを削除する

また、投稿頻度も、除外するべきアカウントの判別には有効です。

例えば、「スキンケア」に関する何かのソーシャルリスニング分析を行おうとする時、スキンケア関連の投稿を年に400回もしているアカウントがあるとします。
おそらくこれはBotかインフルエンサーの類である可能性が高いです。Botやインフルエンサーも投稿テキスト内に判別しやすいキーワードが含まれているとか、Bioに何かヒントがあれば見つけやすいのですが、うまく除外するのは地味に大変です。

そのような時、普通の一般人がそんな頻度で特定の言葉が含まれる投稿をいないだろうという基準でデータクリーニングするのもワークすることが多いです。

おわり

いかがでしたでしょうか。
ソーシャルリスニングにおいてデータクリーニングは地味な作業ですが、非常に重要で、ここの精度しだいで、その後の分析精度にも関わってくる重要なステップです。

お伝えしたように、①何がノイズかを明確にする、②4つの方向からデータを整える、ことを実践していただくと、その後に分析しやすいきれいなデータになるんじゃないかと思います。

これ以外にも、こんなデータクリーリング方法が有効だ、などのご経験があれば、ぜひコメントいただけると嬉しいです。

この記事が気に入ったらサポートをしてみませんか?