この記事では、Python初心者でもできるように、テキストマイニングをレクチャーしていきます!
テキストマイニングは、テキストに書かれた文章の特徴や傾向などを調べたいときにつかわれます!
この記事を読むことで、テキストマイニングとは何なのか知ることができるだけでなく、実際テキストマイニングを実装することができるようになります!
テキストマイニングができるようになると、例えばファイナンスでは決算短信や中長期経営計画などのテキストデータを分析するにも応用可能です!
記事にでてくるコードは配布しております。下記LINE@からダウンロードください。
メッセージにて、「テキスト」とお送りいただければダウンロードができます。

今回の記事はG検定の公式テキストを参考にしています!
また、一部バフェットコード様を引用させていただいます!
それでは一緒にまなんでいきましょう!
目次
テキストマイニングとはなにか理解しよう

Pythonでレクチャーしていく前に、そもそもテキストマイニングとはどういったものなのか解説していきます!
テキストマイニングを知ることで文章を分析する幅が格段に上がります!!!
文章を分析する幅がひろがると、例えばこんなことができます。
文章の中で”猛暑”と”冷房需要の増加”という言葉に関係がみられた場合、猛暑というワードから冷房需要を予期し、冷房にかかわる企業の業績の影響も結果として予想することもできます!
これはあくまでも一例ですが、そのほか様々なことができるのでぜひ覚えましょう!!
テキストマイニングとは
文字列を対象としたデータマイニングのこと。
ここで”データマイニング”という言葉が出てきましたが、こちらも認識にズレがないように説明します!
データを解析し有用な知識を取り出すこと。
つまり、テキストマイニングは、歌詞や口コミのレビューなどの文字列(文章)データに対して解析をおこない、分析者が求める答えを取り出すことです!
上記の説明ですとまだ抽象的ですので、具体的な例をもちいて説明します!
例えば、ある歌手の歌詞の言葉の傾向を調べたいとします。
このとき、季節をテーマにした曲ならその季節に沿った単語であったり、恋愛を題材にした曲なら恋愛に沿った単語が使われることが想定されます。
これを、実際に単語単位で集計し単語が多い順に並べたり、単語の傾向とプラス/マイナスの感情の単語が多いのかどうかなども判別したりもできます!
このようなデータの分析方法がテキストマイニングです!
テキストマイニングでできること
ここではテキストマイニングでできることについて解説していきます。
これを知ることで、実務でデータを扱う際にテキストマイニングが一手法として有効かどうかもわかるようになります!
テキストマイニングでできることは主に以下になります!
- 文字列の可視化(技術:ワードクラウド)
- 文字列の繋がりの把握(技術:word2vec)
- 文字列のデータ群を分解したときの傾向のグループ分け(技術:k-means法)
- 文字列の要素の抽象化(技術:主成分分析)
ひとつひとつみていきましょう!
1「文字列の可視化」とは、例えばcsvに格納されている文字列がどうなっているのか直感的に理解できる、ということができます!
具体的には下記のような画像のようなことができます!

引用:いまさら聞けない文字の見える化「ワードクラウド」 ~入門編~
2「文字列の繋がりの把握」とは、例えば連想ゲームのようにモノとモノの関連性を把握、することができます!
具体的には下記のような画像のようなことができます!

引用:G検定公式テキストp199 図7.13より
3「文字列のデータ群を分解したときを分解したときの傾向のグループ分け」とは、例えば口コミなどの言葉が大きくどのような分類なのか理解、することができます!
例えば、テキストマイニングマイニングではないですが過去に記事で掲載した「Pythonで機械学習入門③教師なし学習(後編)」の「主成分分析をもちいてデータを可視化させる」あたりがまさにデータのグループ分けをしています!
4「文字列の要素の抽象化(技術:主成分分析)」とは、口コミのレビューが大きくどういった要素で構成しているかを把握、することができます!
例えば、下記の画像のようなことができます!

様々なものを羅列しましたが、要するにテキストマイニングは、「文字列」に対して分析をするのにが用いられる、ということを知っていればとりあえずは大丈夫です!
Pythonでテキストマイニングを実装しよう!
テキストマイニングについて何となく知ったところで、実際にレクチャーしていきます!
今回は我々、WineyTradeのSEO1位の記事「Python財務分析①」の記事の文章がどういった単語で構成されているか可視化します!
これをおこなうことで、記事の内容が一目でなんとなく想定できると思います!
実は元々音楽サイトから歌詞を引っ張り分析しようと思いましたが、著作権的に記事化が難しかったため記事を分析しています!
もし、記事ではなく歌詞を分析されたい方はマナーの範囲内で利用しましょう!
それでは実際に学んでいきましょう!!
Jupyter Notebook(ジュピター・ノートブック)を使う
今回、Pythonでテキストマイニングをおこなうに当たって、Jupyter Notebook(ジュピター・ノートブック)を開発環境として分析を行います。
ブラウザ上で動作するプログラム実行ツールです。
教育機関や研究機関でも広く使われており、Pythonでデータ分析を行うには欠かせないツールとなっています。

テキストマイニングをおこなうデータを読みこむ
ジュピターノートブックが準備できたら、下記LINE@から「Pythonでテキストマイニングをしよう!.ipynb」と「データ」のフォルダをダウンロードします。
メッセージにて、「テキスト」とお送りいただければダウンロードができます。

その後ジュピターノートブックをもちいて「Pythonでテキストマイニングをしよう!」を開きます。

必要なライブラリをインポートする
ファイルを開いたところで実行させてみます!
そのとき、”moduleNotFound”などど言われた場合、”pip install ~”で必要なライブラリをインポートしていきます!

関数を設定する
その後、関数を設定(定義)していきます!
関数を設定することで、実行するさいにコード量を小さくしたり、どういった処理をしているかわかりやすくすることができます!






実行する準備としてデータをセットする
実際に関数を呼び出す前に、テキストマイニングをしたいデータをセットします!
まずは、データフォルダの中の「歌詞」のフォルダにいき分析した文字列が入ったtxtファイルをセットします!

ファイルの中身は下記です!

そして、「mask」のフォルダにいき、結果を出力したときにどういった形(ハートマークなど)で
型取るかといったシルエットの画像をセットします!

今回はこの形の画像をセットします!

関数を呼び出し実行する
それでは実際に実行してみましょう!
上の関数でフォルダを作成し、下の関数でテキストマイニングした結果を上で作成したフォルダに挿入します!

結果をみていきましょう、こちらのフォルダに移動し中のimgを表示させます!

まずは、mask(形)なしのバージョンです!

これをみるに、Python「財務・分析・データ」という文字が大きく、続いて「Python・バフェットコード」の文字列が目立ちます!
このようになんとなく記事で扱われていることが一目で把握できます!
続いて、mask(形)ありのバージョンです!

このように、デザイン性を上げて結果を出力することができます!!
まとめ
今回は、
- テキストマイニングとはなにか理解する
- Pythonをもちいてテキストマイニングを実装する
という流れをサンプルコードとともに解説をしました!
記事を読んでくださりありがとうございました!
この記事を通し、データ分析力に更なる飛躍していただければ大変うれしいです!
今後ともよろしくお願いいたします!!
記事にでてくるコードはLINE@にて配布をしております!
LINEのメッセージ欄に「テキスト」とお送りいただければ、ダウンロードリンクを送付いたします!
コード配布はLINE@にて!
