特許データで自然言語処理(2)

前回で必要環境が整いました。整わなかったとしても関知しません。Bash on Windowsにしても、Ubuntuへの必要な環境のセットアップにしても、次々と変わっていくものですし、それぞれのPC環境によっても何で躓くかはわかりません。上手くインストールできなかった場合は自分で解決するしかない世界です。(追記のようにDocker for Windowsでzuqqhi2/ml-python-sandboxを使うのが比較的楽だと思います)

必要環境が整ったところで、さっそく自然言語処理に・・・ではなく、一通りインストールしたものが何かの概要を押さえていきます。

1.Anaconda

Continuum Analytics 社によって提供されている、Python 本体やデータ分析等でよく利用される Python パッケージを一括でインストールしたりアップデートしたりできるパッケージソフトウェア。今回もこれをインストールするだけで、Python本体、Jupyter Notebook、matplotlib、scikit-learn(t-SNE)はあっさりとインストールされます。

2.Jupyter Notebook

Webブラウザ上で動く、Python実行環境。今後の処理でもこのJupyter Notebook上での処理について説明していきます。これがインストールできてしまえば、WindowsだろうがLinuxだろうがMacだろうが見た目は同じ。

3.matplotlib

ほかにも色々とあるが、Pythonで最もメジャーな可視化ライブラリ。データから各種グラフを作成することができます。

4.scikit-learn

Pythonでメジャーな機械学習ライブラリ、これで出来ることはここでは説明出来ないほど幅広い。scikit-learnの全体像はここを参照ください。件の勉強会ではこの中で非線形次元削減手法であるt-SNEを用いる。自然言語処理で分析した結果は非常に次元数の大きい多次元情報になるため、人が確認できる2次元や3次元の情報に次元削減してmatplotlibにより可視化させるために使うものと思われます。

5.Mecab

英語の文の場合、スペースで単語が区切られていますが、日本語の文の場合は適切な単語の区切り位置は明示されません。このような日本語の分を単語毎に区切るツールが日本語形態素解析システムであり、Mecabはメジャーなものです。

6.gensim

gensimは、大量の文章の中からトピックを分類することや、与えられた文章がどのトピックに属するかを分類したりするトピック分析を行うためのトピック分析ライブラリになります。件の勉強会ではこのgensimの中でword2vecの機能を使うようです。word2vecについてはこちらを参照ください(また手抜き)。

7.tensorflow

Googleの機械学習/ディープラーニング/多層ニューラルネットワークライブラリです。データフローグラフを使用したライブラリで、複雑なニューラルネットワークを簡単に短時間で作成できるようになっています(簡単と思うかどうかは人次第、少なくともPythonで1から作るよりは遥かに簡単)。

というわけで実際の自然言語処理は次回から。

※ bash on Windowsでの自然言語処理環境構築について書いてきましたが、色々と安定しないようです。

LinuxやMacではなく、Windows上で環境構築する場合に現状お手軽なのはDocker for Windowsを使うことです。

Dockerについては、こちらに解説記事があります。利用できるWindows環境の条件として、

  • 64bit版のWindows 10(バージョン1511、ビルド10586以降)、ProもしくはEnterprise/Educationエディション
    Hyper-Vが利用できること
  • コンテナ実行用の仮想マシンには、メモリ2GB、ディスク60GB(容量可変タイプの仮想ディスクで、初期サイズは4GB程度)のリソースが必要

というのがありますが、これに合致したWindows環境でDocker for Windowsが使えるのであれば比較的楽な自然言語処理環境構築になるかと思います。

Docker for Windowsがインストールできて、DockerのHello worldが正常に動いたら、zuqqhi2/ml-python-sandboxのリポジトリイメージを探して、docker pull zuqqhi2/ml-python-sandboxでダウンロードしてください。解説はこことかここ。ダウンロードが終われば、

docker run -it -p 8888:8888 -p 6006:6006 zuqqhi2/ml-python-sandbox

と入力し、ブラウザでhttp://localhost:8888を呼び、Passwordにmlと入力することで、自然言語処理環境構築済みのJupyter Notebookが立ち上がります。

特許データで自然言語処理(1)

ひさびさの更新。特許データを使って、自然言語処理を学ぼう!というデータ分析の勉強会を見かけました。大阪開催で既に定員も埋まっているようです。新ネタとして、この勉強会の概要から、同じような(と予想する)分析内容を書いていこうかと思います。

必要なのは、Jupyter Notebook、TensorFlow、matplotlib、scikit-learn(t-SNE)、mecab、gensimとなっています。

これらを揃えるためにはAnacondaからインストールしていくのが良いと思います。

Windows上でのセットアップは色々と面倒なので、最近Windows10に追加されたBash on Ubuntu on WindowsのUbuntu上にセットアップしていきます。

とりあえず、ここの記事に基づいて、Bash on Ubuntu on Windowsをインストールします。

インストールが完了したらさらにここの記事に基づいて、pyenv, Anaconda, … Tensorflowまでインストールしてしまいましょう。この手のコマンド操作に慣れていない方は厳しいかと思います。ちなみにWindows上でブラウザ内のテキストをコピーした後、Bash on Windowsの画面への貼り付けはマウスの右クリックです。viも使えた方がいいです。一通りインストールしたら、

conda update conda
conda update anaconda

で、アップデートしておきましょう。scikit-learn(t-SNE)も入るはずです。

conda install gensim

でgensimもインストールしたら、あとはmecab。

mecabのインストールはここを参考に。(手抜きだなw)

これで必要物は全部かな。これだけのもののインストールを参加条件にするのだから件の勉強会の参加の敷居は高いと思う。(参加30分前に行けばセットアップの相談にのってもらえるとのことだが)