【Python】テキストマイニングとは〜分析の重要性〜

今回は、テキストマイニングでの分析の重要性について解説したいなと思います。
また、どんな分析手法があるかなど、分析が大好きな人用の記事になります笑

1. テキストマイニングとは

テキストマイニングという言葉をよく理解するためにも、まずはこの言葉を分割して考えましょうか。
テキストは、当然テキストデータと呼ばれるものからきています。マイニングは、マイン(鉱山発掘)から由来します。
つまり、ビッグデータのテキストデータの中に埋もれている「重要で意味のある情報」を発掘するということです。

 

 

それらのたくさんのテキストデータから、言語を解析する技術と数学的・統計的なツールを使用して、より質が高く意味のある情報を抽出します。
また、ここでは「テキストデータ」と「情報」という二つのキーワードとして分けています。
ここでのテキストデータとは、ネット上やローカル上といった様々な文書であったり、SNSでの投稿であったり、はたまた製品・商品といったもののアンケートに関するデータを指しています。
つまり、物事に対して何かしらの「目的」を持ったテキストであり、入力された「データ」ということになります。

 

そしてテキストマイニングは、これらの「データ」群から、SNSにおける最近のトレンドを抽出したり、アンケートからある商品のポジティブ・ネガティブといった評価を抽出したりします。
このように、ある「データ」群からまさにターゲットとした内容を的確に抜き取ります。
この圧縮され、選別された「データ」を私自身は「情報」と考えています。

 

分かりやすく整理しておきましょう。
テキストマイニングは、大量のテキストデータから圧縮された情報を抽出するためのプロセスということになります。

  1-1. テキストマイニングが利用される理由

私自身、テキストマイニングによる分析を始めるようになってから、他ブログや書籍も確実に増えてきました。
なぜここまで言えるかというと、ブログにはピンバックといった機能があります。
このピンバックとは、参考にした記事をサイト管理者に「リンク貼りましたよ〜」って通知してくれます。
つまり、私の情報発信は報われ、様々な人の目に触れている証拠であり、テキストマイニングの利用価値が増加してきているようです。
事実、私のブログもテキストマイニングに関する記事がトップクラスでアクセスが多いです。

 

この場を借りて、あなたに見て頂けるような記事でよかったと思ってます。
いつも一読して頂いている方、ありがとうございます。

 

さて、本題に戻ります。
他にもテキストマイニングが盛んに行われている理由はいくつか挙げられます。

 

まず、機械に可読可能なテキストデータが容易に入手できるようになった点です。
例えば、SNSの代表格であるTwitterがありますが、短文によるツイートといった機能で、様々なテキストや画像を発信しています。
また、最近APIによってデータを簡単に取り出せれるようになりました。
もちろん、APIの制限も年々厳しくなっていますが、まだまだ利用用途はあると考えています。

 

次に、私が今まさに記載しているブログやサイトといったネット上にあるデータが増加している点です。
例えば、pythonでのWebスクレイピング技術によって、Web上のデータを抜き取るなど、プログラミング技術が多少あれば、簡単にできるようになりました。

 

さらに、テキストデータにおける解析のためのプログラムであったり、仕組みが世の中に広く公開されており、容易に入手できる点です。
国土交通省や郵便局など、公にしているデータや個人情報を含まない有益なデータというのは意外と転がっています。

 

さらにさらに、情報社会になってデジタルコンテンツが様々な形で提供されるようになった点です。
無料で配布されていたり、GitHubなどでソースコードを公開していたりします。
また、様々な人に活用されることで、利用されているコンテンツが加速度的に成長することで、改善を繰り返されていくわけです。
そういう積み重ねが今後も著しく見られ、ネット社会における分析という分野は発展していくと考えています。

 

もうないかと思いきや、まだあります。特に目覚ましい変化として、解析の仕組みに学習という考え方を組み合わせる手法が挙げられます。
簡単にいうと、機械学習です。
つまり、解析手法とプログラミングが行えれば、個人で様々なテキストや画像といった分析が可能というわけです。

  1-2. データクレンジング

できるだけ簡潔に述べると、必要のないデータを取り除き、利用できる情報へと整形することを指します。
Twitterのツイート情報などを抽出すると、文章だけでなく、無駄なURLなども抽出してしまい、分析の妨げになることがあります。

 

そのため、必要に応じたデータの整形を行い、本当に意味のある情報へとクレンジングをかける必要があります。
これをデータクレンジングと言います。

  1-3. 非構造化データ分析の課題

ここまで記述してきた内容だけでなく、プログラミングにてデータを抽出する際の流れを考えていかなければなりません。
その前に、非構造化データと呼ばれる日頃目にするテキストデータは、課題をいくつか残しています。

 

一つ目に、データが持つ意味を理解しなければならない点です。
扱うこととなるデータの頻度・相関関係はもちろん、そのデータに含まれるキーワードのトレンドなど、把握しなければならないポイントがあり、分析スキルが必要となります。
要するに、分析をするにあたっての考え方を養う必要があり、日頃から自分にWhy?を投げかけられるようになるといいかもしれません。
自分はなぜこのデータを分析するのかといった目的であったり、データを分析した結果から何が得られるんであろうとかですね。

 

二つ目は、様々なデータにおけるフォーマットの多種類化です。
単純なテキストファイルから、csvファイル、JSONファイルなど、データのフォーマットが異なるケースが非常に多く、それらを結合する整形方法が重要になります。
また、情報は常に更新されていくものなので、定期的な情報の更新を考えておかなければなりません。

 

三つ目が、上記のように加工処理に手間がかかる点です。
やはり必要な情報を抽出するためには、誰かがクレンジングであったり、フォーマットの統一を行わなければなりません。
そのため、手間暇かけてあげる気持ちが大切です。データとにらめっこしてあーだこーだ悩める人は向いていると思います。

  2. どんな分析ができるのか

ここまでで、どんなことを意識してテキストマイニングしなければならないかざっくりとですが、書き記してきました。
あなたの周りにも分析対象となるデータは必ず落ちていると思うので、探してみるのも楽しいと思います。
探した結果、見つかったとしたら、ぜひどんな方法でもいいんで分析してみてほしいなと。「発見」ってそういうところからだと考えます。
あなたもデータサイエンティストになれちゃうわけですね。

 

ここからは、様々な分析対象となるものを紹介していきます。
参考にしていただければと思います。

  2-1. アンケート・FAQの分析

現在、本当にいろんなところで、製品やサービスが提供されています。紙媒体のものからネットワークを介したデジタルコンテンツまで。
そんな様々なものの印象や評価を行うため、そしてさらなる改善を行うためにアンケートや一問一答といったFAQと呼ばれるものがあります。

 

つまり、利用者の方や不特定多数の方にどう感じているか、どう利用しているかなどを調査するわけです。
その調査結果を元に分析し、新たな発展に分析は利用されています。

  2-2. SNS分析

もう言うまでもなく、スマートフォンの普及により、SNSが爆発的に利用されています。
そのSNSを利用している方の情報を分析することで、様々な物事に応用が効いてくるわけですね。

 

私は、Twitterの感情分析や単語の頻度数や言葉の相関関係などを調べることが多いです。

  2-3. トレンド分析

ファッションと同じで、データの中に潜む意味のある情報にもトレンドが存在します。
このトレンドを掴むことで、商品の売れ行きや今後の施策、はたまた関連商品のレコメンドなどを行う際に活用できます。
時系列分析といったものを利用すれば、トレンドがより浮き彫りになり、いつ頃この商品は有名になったとか、年齢層で測ればどの層に人気があるのかなど、様々なトレンド情報を取得することができます。

 

特に、マーケティングに関しての知見を持つ方は、そういったデータを扱うのに長けていると思うので、分析を応用すれば多角的な発見をすることができるのではないかなと思います。

  2-4. ネットワーク分析

ネットワーク分析と聞いて、あまりピンとこない方もいるかもしれません。
この分析手法は、コネクション分析であったり、コロケーション(共起)分析とも呼ばれています。
簡単に言うと、関連している単語や画像を紐づけて可視化している状態を作り出す分析のことです。

 

大量のデータを扱う際に、データが膨大なだけに気づきにくい関連したキーワードが可視化することによって、相関の高いものと判断することができ、より情報の深堀りを行う際に利用されることが多いです。

 

あとは単純にみてて楽しいです笑

  2-5. 言語的分析

これは、純粋に言語といった日本語や英語だけの話ではなく、人物を捉える内容も含まれています。
例えば、怒りやすい人、幼稚な人、悲しそうな人、嬉しそうな人など、言葉には名詞の他に動詞や形容詞といった様々な品詞があります。
そういった品詞をうまく利用することで、例に出した人たちの言動に関する特徴を浮き彫りにすることも可能です。

3. テキストマイニング用pythonのソースコード

私自身、自分のツイートを検証で分析することがありますが、明らかにプログラミング関係と分析に関するキーワードが特出しています。
ブログ内の別ページに分析用のコードは転がっているので、試しに私のツイッターアカウントを分析してみてほしいです笑
だいぶ偏った人だな〜って分かるかと思います笑

 

あ、@sugi_rxで見つけてみてください。

 

勝手に分析してくれて構いませんので、どんどん分析してみてください。
そして、分析した結果、報告してくれれば泣いて喜びます笑

 

ここまで読んでくださった方、ありがとうございます。
今後も不定期ではありますが、記事更新していきたいと思います。

 

以下に、関連URLを貼っておきます。

【Python】テキストマイニングしてみた〜形態素解析〜

【Python】テキストマイニングしてみた〜モデル作成〜

 

それでは!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です