R でテキストマイニングをやってみた(10)まとめ

テキストマイニング

こんにちは。この1か月、Rを使ってテキストマイニングをしてみました。

それらを、まとめ、振り返るとともに、感想を書いてみることにします。

単語(形態素)の出現頻度に着目してみた

はじめに単語(形態素)の出現頻度に着目して、テキストマイニングを行いました。

単純に頻度に着目するだけでは、余計な単語が含まれてしまうので、品詞で絞ったり、ストップワードを設定したりして、必要な単語に絞り込んでみました。

ここでは、視覚化できるよう、棒グラフを描いたり、ワードクラウドを描いたりしていました。

さらに、どの文書でも頻出する単語の価値を低く見積もることができるよう、TF-IDFという指標でテキストマイニングをしてみました。

文章間で比較をすることにより、それぞれの文章に特徴のある語句を調べることができました。

つながりに着目してみた

はじめに、前後のつながりに着目してテキストマイニングを行うよう、N-gramの頻度を求めました。

さらに、N-gramを求める関数にはさまざまなものがあるので、試してみて結果の形式などを比較してみました。

N-gramをどのように活用するかによって、使い分けが必要そうな感じがします。さらに多くの場面でN-gramの結果を活用することを通して探っていきたいと思います。

ここまでは、連続してつながっている場合の頻度を求めていましたが、文章には途中で副詞がはさまったり、語順の入れ替わりがあったりします。

そのような場合にも対応できるよう、n 語以内に一緒に出現する単語である共起語についても調べてみました。

その共起語を視覚化してとらえられるよう、共起ネットワークを描いてみました。

ここで描いた共起ネットワークは、結局バイグラム(2-gram)なので、上で求めた共起語とは異なっていますが、ある程度傾向がつかめるようには思います。

クラスタリングをしてみた

文章が似ているか否かを、距離が近い順にまとめていく手法であるクラスタリングを用いて分類してみました。

教師なしの機械学習とも言われているようです。

はじめに、ユークリッド距離を用いたウォード法によるクラスタリングを行いました。

他の距離を用いたり、クラスタリングする際の手法が他にもあったりしたことから、さまざまな組み合わせについて試してみました。

予想外にも9本の小説を、作者ごとに分類できる場合がありました。

丁寧に手法を見ていくと、偶然なのか根拠となることが見つかるのかまでは残念ながら試すことはできていませんが、興味深く思っています。

タネ本の紹介

参考にさせていただいた書籍は2冊あります。

1冊目は、RMeCabの作者である石田基広先生の「Rによるテキストマイニング入門」です。

具体的な分析を例示があり、分析したい対象とその手法がわかりやすいと思い、参考にさせていただきました。

2冊目は、小林雄一郎先生の「Rによるやさしいテキストマイニング」です。

Rのプログラムについては、dplyrライブラリを使わないで、一つ一つの処理がわかりやすく感じました。

かなり、この本をなぞったところがありますが、そのまま写すだけで終わらないように心がけました。

書面ではページ数が限られているので、Rに慣れていない人(私を含めて)が同じ処理をするときに、実行しなければいけないコマンドをまとめて表示したり、途中で実行結果を確認するようなコマンドを外したりして、未来の自分がもう一度同じ処理を再現できるようにしておいたという感じになります。

また、本に書かれていることから派生して、私が気になったことも調べてみました。

観光地のガイド本を使うときに、紹介されたコースをなぞるのもよいですが、脇道にそれてみて自分なりの新しい発見をしてみるのも楽しいと感じ、そのような使い方をさせていただきました。

まだまだ、テキストマイニングの一部しか味わっていませんが、このシリーズもこのあたりで一区切りをつけたいと思います。それではまた。

Posted by 春日井 優