データサイエンス

テキストマイニング入門:文書から特徴量を抽出しよう!

■テキストマイニングとは

 統計学の知識をベースにして、蓄積されたデータから有用な情報を発掘する研究分野をデータマイニングと言います。その中でも特にテキスト情報を扱う分野をテキストマイニングと呼びます。ビジネスへの応用例としては、Web上に書き込みされた口コミ情報などを分析することで、市場内でのイメージや競合との位置関係を把握することが可能になることなどが挙げられます。ビジネス課題の発見・解決につながる事例も多々報告されており、近年注目を集めている分野です。

■文書の特徴をつかむ

 統計解析するためには、文書情報も最終的には数値情報に変換する必要があります。数値変換の際には、文書が有する意味を上手に抽出する工夫が必要です。分析する対象によって手法は異なってきますが、本記事では各種ある手法の中でもオーソドックスな、TF-IDF特徴量を例に挙げて、その具体的な計算方法をご紹介します。

■計算例 TF-IDF特徴量

 TF-IDFとはTerm Frequency(単語頻度数)とInverse Document Frequency(文書頻度数の逆数)の頭文字をとったもので、検索システム等でよく利用される手法です。TF-IDFの計算式は以下のように表されます。

NewImage

上の計算式には、以下のような意味が込められています。

  1. 1つの文書内で多く使われる単語は、その文書の特徴的な単語になる傾向が高い
  2. 各文書で横断的に使用されている単語は、文書の特徴的な単語になる傾向が低い

このことを実感するために、以下の文書群を用いて実際に計算してみましょう。

文書A 「私はオレンジとリンゴではリンゴが好きだ。」
文書B 「私は以前は青森に住んでいたが、今は東京都に住んでいる。」
文書C 「私は青森産のリンゴが好きだ。」

TF-IDF特徴量を計算するためには、まずは文書を形態素(意味をもつ最少単位)に分解する必要があります。今回は名詞のみを抽出してみましょう。

文書A { 私,オレンジ,リンゴ,リンゴ,好き }
文書B { 私,以前,青森,今,東京都 }
文書C { 私,青森,産,リンゴ,好き }

この形式をBoW (Bag-of-Words)と言います。このBoWを用いて、いよいよTF-IDF特徴量を具体的に計算していきます。

【文書A】

まずは「私」のTFを算出してみましょう。文書Aの全単語の頻度数は5であり、「私」が出現する回数は1回なので、

NewImage

となります。

一方で、「私」が出現する文書数は3なので、

NewImage

となります。このような計算をまとめると、以下のようになります。

NewImage

したがって、文書AのTF-IDF特徴量は以下のようになります。

NewImage

この結果から、先に説明したように、「リンゴ」という他よりも多く出現した単語が特徴量として高く出ていることと、全文書で横断的に使用されている「私」は相対的に低く出ていることが分かります。

他にも文書から特徴量を抽出して数値化する手法はたくさんありますが、上記のような計算例を一つでも知っておくと、テキストマイニングの世界の見通しがかなり開けてくると思います。文書BとCに関してご自身で計算して特徴量を算出してみるのも良いかもしれません。

(答え)
TF-IDF(文書B)= { 私,以前,青森,今,東京都 } = { 0.200, 0.420, 0.281, 0.420, 0.420}
TF-IDF(文書C)= { 私,青森,産,リンゴ,好き } = { 0.200, 0.281, 0.420, 0.281, 0.281}