【R】Rでテキストマイニング(第1回 イントロダクション)


フリーの統計処理プログラミングツール「R」を使って、テキストマイニング(文字列の分析等)を行う一連の流れを記録しておきたいと思います。

急に、Rネタが出てきたのはなぜか?

やっぱRは最強ツールだから、周囲から需要が出てきた!

ま、多かれ少なかれ、そうゆう理由です。
やはり人間は、求められない限りあまり主体的に動けるような存在ではありません。
一方で、そのうち求められるだろうから、粛々と準備しておこうという姿勢は持つことはできます。
地道にこのブログ等で記録しておいてよかったな、と思う瞬間でもあります。

シリーズの構成

一応、タイトルではシリーズと銘打っていますので、今想定している内容を列挙しておきます。

 第1回 テキストマイニングとは?(今回)
 第2回 ワードクラウドを作ってみる
 第3回 共起ネットワークを作ってみる
 第4回 大量のテキストデータを丸ごと解析するプログラムの試行
 第5回 以降、未定

まぁ、この程度です。
とりあえず今回は、テキストマイニングについてまとめておきたいと思います。

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

 まずは、テキストマイニングというちょっとだけバズワードっぽい言葉を紐解いていきます。定番のウィキペディアより引用。

テキストマイニング(text mining)は、文字列を対象としたデータマイニングのことである。通常の文章からなるデータを単語や文節で区切り、それらの出現の頻度や共出現の相関、出現傾向、時系列などを解析することで有用な情報を取り出す、テキストデータの分析方法である。

テキストデータの多くは形式が定まっておらず、また日本語は英語などと比べて単語の境界判別の必要性(→わかち書き)や文法ゆらぎが大きい点において形態素解析が困難であったが、自然言語処理の発展により実用的な水準の分析が可能となった。テキストマイニングの対象としては、顧客からのアンケートの回答やコールセンターに寄せられる質問や意見、電子掲示板やメーリングリストに蓄積されたテキストデータなどがある。

テキストマイニング - Wikipedia

要は、文字列を対象としたデータの深堀り(マイニング)ということでしょうか。
かなりざっくりした解釈ではありますが、間違ってはいないような気がします。


それよりも、またわからない単語が出てきましたね。自然言語処理とはなんでしょうか?

自然言語処理(しぜんげんごしょり、英語: natural language processing、略称:NLP)は、人間が日常的に使っている自然言語をコンピュータに処理させる一連の技術であり、人工知能言語学の一分野である。「計算言語学」(computational linguistics)との類似もあるが、自然言語処理は工学的な視点からの言語処理をさすのに対して、計算言語学言語学的視点を重視する手法をさす事が多い[1]。データベース内の情報を自然言語に変換したり、自然言語の文章をより形式的な(コンピュータが理解しやすい)表現に変換するといった処理が含まれる。応用例としては予測変換、IMEなどの文字変換が挙げられる。

自然言語処理 - Wikipedia


いわゆる、「言葉」の分析のためのいろんな処理を指すようです。これはどちらかといえば、データマイニングする前の処理を指すようで、日本語独特の文節や単語の扱いを日本語的なルールで切り分けてくれるような処理を指すようです。こういった前処理がないと、データ分析には入れませんので重要な処理ではあります。


<参考資料>
  


テキストマイニングのビジュアリゼーション例

 文字データが分析できるようになって圧倒的に変わったのが、ビジュアリゼーション(可視化)手法でしょう。代表例を紹介


ワードクラウド

 テキストマイニングが流行りだしたのは、何と言ってもワードクラウドの登場が大きいでしょうね。
f:id:demacassette:20170912225405p:plain
こんな画像見たことありますよね?

facebook上で、自分がつぶやいている言葉を並べてくれるサービスとして一時期流行りました。のちに、登録することで個人情報も抜かれていることがリークされ、躊躇する人が増えたことが記憶にあります。

開発元は、以下のリンクより。
thebridge.jp


このようなデータの新たな表現方法は、人の目を引きます。はっきり言ってそれだけで勝ちなような気がします。中身はあまり問われないというか。

NHKなんかでも、「つぶやきビッグデータ」と称したコーナーがありました。ワードクラウド上にその日のニュース(ツィッターでつぶやかれた)のキーワードが羅列され、それについて詳しく説明するというコーナーでしたね。確かにわかりやすかったが、今はやっているのだろうか。


実際に、サンプルデータからRを使ってワードクラウドを作成する方法は第2回で紹介します。


<参考資料>
 


共起ネットワーク

 ネットワークと聞くと、いわゆる情報通信の話だと思われるでしょう。ネットワークとは、何かと何かをつなぐものと言う意味ですので、通信網もしかりです。ここでは、「共起ネットワーク」と称し、文章中によく出る単語の組み合わせをつなげたものを指します。

詳しくは、第3回で解説できればと思います。

共起ネットワークのイメージは、以下のブログ記事をご参照くだささい。
antibayesian.hateblo.jp


<参考資料>
  



さいごに

 今回、急にテキストマイニングについて記録しておこうという衝動に駆られていますが、実際この手の分析手法は結構昔からやられています。そのため、最近ではweb上でテキストマイニングができるようなツールも登場してきており、文章解析のハードルがぐっと下がっているように思います。
textmining.userlocal.jp


もちろん、Rやpythonなどのコードも、かなりの方が公開してくれているため、ほとんどのことが公開情報でできちゃう時代だと感じます。

その一方で、こういった手法に溺れると、本来の目的を見失いがちになるのが人間というものでしょうか。やはりテキストマイニングにしてもデータマイニングにしても、どういった目的に対し、データで何を示したいのか、が明確でなければ、やっても意味がないと言っても過言ではありません。

もちろん、練習としていろんなケースをやりながら、「あ、こうゆう目的でも使えるのではないか?」といった仮説をたてることは重要です。そのため私としては、いかにすばやく最新の手法をかじって、知らない人がなんとなく理解できるレベルにまで表現して、その後本格的に分析に入るという流れが重要だろうと考えています。

ちょっとネタとしては時代遅れですが、このシリーズは今月中に仕上げたいと思っています!(無駄な宣言!)



では、いつかぎゃふんと言わせるその日まで。。。