著者:小林 雄一郎
フリーのテキストマイニングツールであるKH coderを使っての著作です。非常に定評のあるツールですがなかなかグッとくる教科書がないので、期待して読んでみます。(Inobe.Shion) |
内容紹介 クチコミ分析とは、膨大な消費者の声を「見える化」し、商品やサービスの改善に役立つヒントや気づきを得るための技術です。「あの商品はなぜ売れているのか?」、あるいは「この商品はなぜ売れていないのか?」といった疑問に答えてくれます。本書では、クチコミ分析で役立つテキストマイニングと統計学の知識についてゼロから丁寧に説明します。プログラミング経験や数学に関する専門知識は一切必要ありません。内容(「BOOK」データベースより) インターネット上の「顧客の声」に耳を傾けて、商品開発や業務改善につながるヒントを発見する方法。 |
まずは基本から。
テキストマイニングで扱うテキストは、アンケートの自由回答記述、コールセンターに寄せられた要望や苦情、ブログやSNSにおけるクチコミなど、多種多様です。そして、次のような処理に活用されています。
テキストマイニングとデータマイニングは異なります。データマイニングが表形式で集計された数値(構造化データ)を主な分析対象とするのに対して、テキストマイニングは全く加工されていない生の文章(非構造化データ)を分析対象とします。そこで、コンピュータにとっては単なる文字の羅列でしかないテキストを単語や文節の単位で分割し、コンピュータで集計できるような数値に変換します。(pp.10-11) |
たとえば、「iPhone」という検索語(単純頻度30)と「便利」という共起語(単純頻度20)の共起頻度が10回で、データの総語数が500であった場合を考えてみましょう。
個々の単語の単純頻度を考慮しつつ、単語の結びつきの強さを測るには、凶器強度と呼ばれる統計指標を使います。さまざまな狂気きょどのしひょが提案されていますが、KH Coderのような分析ツールでは、ジャッカード係数が使われています。ジャッカード係数は、次のように計算できます。
ジャッカード係数=共起頻度÷(検索語の単純頻度+共起後の単純頻度ー共起頻度) ジャッカード係数=10 ÷(30+20-10)=0.25 また、相互情報量もよく使われる共起強度の指標です。次のように、相互情報量の計算には、検索語の単純頻度、共起語の単純頻度、検索語と共起語の共起頻度、データの総語数、という4つの値を使います。 相互情報量=log2 ×((共起語×データの総語数)÷(検索語の単純頻度×共起語の単純頻度)) 相互情報量=log2 ×((10 × 500)÷(30 × 20))≒ 3.06 一般的に、相互情報量は、低頻度であるにも関わらず、結びつきの強い共起語を高く評価する傾向があります。(pp.116-118) |
単語の結びつきの重要度を測るのに、仮設検定の考え方に基づく共起有意性の指標を用いることもあります。共起有意性の計算では、「2つの単語の共起が全くの偶然による差である」という仮説を立てて、「共起が全くの偶然による」場合の共起頻度(期待値)と実際の共起頻度(実測値)のずれを数値化します。
テキストマイニングで広く使われている共起有意性の指標としては、対数尤度比を挙げることができます。対数尤度比は、カイ二乗検定とよく似た対数尤度比検定という検定手法にもとづく指標です。対数尤度比を計算するためには、次のように、検索語の頻度、検索語以外の頻度、共起語の頻度、共起語以外の頻度を集計した表を用意する必要があります。(p.119) |
表1 対数尤度比を計算するための実測値
共起語 | 共起語以外 | (行合計) | |
検索語 | 10 | 20(=30-10) | 30 |
検索語以外 | 10(=20-10) | 460(=470-10) | 470(=500-30) |
(列合計) | 20 | 480(=500-20) | 500 |
上の表は、前項の相互情報量の計算と同様に、「iPhone」という検索語(単純頻度は20)の共起頻度が10回で、データの総語数が500であった場合の例です。
続いて、「共起が全くの偶然による」場合の期待値を計算します。カイ二乗検定の場合と同じく、対数尤度比の期待値も、列合計と行合計を掛けて、総合計(=総語数)で割ることで求められます。(p.119) |
対数尤度比の期待値=(行合計×列合計)÷総合計
表2 対数尤度比を計算するための期待値
共起語 | 共起語以外 | (行合計) | |
検索語 | 20 x 30÷500= 1.2 |
480 x 30 ÷ 500= 28.8 |
30 |
検索語以外 | 20 x 470 ÷ 500= 18.8 |
480 x 470 ÷ 500= 451.2 |
470 |
(列合計) | 20 | 480 | 500 |
実測値(表1)と期待値(表2)の計算が終わったら、次のように対数尤度比を求めます。(p.120)
対数尤度比=2 x (実測値×(log e 実測値 ー log e 期待値)の総和) 「iPhone」と「便利」の共起の対数尤度比は、次のように計算します。 対数尤度比 = 2 x (10 x (log e 10 – log e 1.2) + 20 x (log e 20 – log e 28.8) |
ジャッカード係数、相互情報量、対数尤度比という3つの指標を紹介しました。その中でどの指標を用いるかは、分析の目的によって異なります。一般的に、共起頻度の影響は、対数湯土肥、ジャッカード係数、相互情報量の順に大きいと言われています。つまり、対数尤度比では共起度の高い単語の結びつきが評価されやすい傾向があります。したがって、大まかに言えば、よくある要望や苦情を調査したい場合は対数尤度比、比較的珍しい意見を探す場合は相互情報量、そして、高頻度なクチコミと低頻度なクチコミをバランスよく把握したい場合はジャッカード係数ということになるでしょう。もちろん、複数の指標による計算結果を見比べて、総合的に判断することも有効です。なお、個々の指標がいくつ以上であったら検索語と共起語が「強い結びつき」を持っているとみなすか、についての絶対的な基準はありません。一般的には、個々の指標の大小に注目し、特定の検索語と結びつきの強い上位〇語に注目します。(p.121) |
テキストマイニングで用例を確認する場合は、KWICコンコーダンスという表示方法がよく用いられます。「KWIC」は「Key Word In Context」の略で、「コンコーダンス」は「用例索引」という意味の単語です。(p.130) |
うーん、全体的に目新しいことはなくて、すでにKH Coderを使っている人にとっては、非常に一般的な方法どまりでした。