LoginSignup
15
17

More than 5 years have passed since last update.

Pythonでテキストマイニング ①形態素解析

Last updated at Posted at 2017-03-01

Pythonでテキストマイニングに挑戦。(Python3系対象)
以下のステップで取り組む。

①形態素解析(本記事)
②Word Cloudで可視化(次回)


この記事は最終的に目的を達成できていません。続報を参照してください。


形態素解析のライブラリ

日本語の文章を単語に分割するのに必要な形態素解析。
よく示される分かりやすい例として
「すもももももももものうち」

「すもも も もも も もも の うち」
に分割するもの。

日本語は英語のように単語の区切りが明確ではなく文章を単語に分割することが非常に難しいので、自前のコードで処理するのは現実的ではない。

そこで、オープンソースで公開されている「MeCab」というライブラリを使う。(恐らく日本語形態素解析では最もメジャーなもの。「めかぶ」と読むらしい)

MeCabのインストール

MeCabをPythonで使えるようにするためには、
・MeCab本体のインストール
・辞書のインストール
・Pythonバインディングのインストール
が必要。

ただし、Windows用のバイナリパッケージには辞書が含まれるため、辞書のインストールは不要。
ここではWindowsにインストールする想定で手順を記載。

まず、公式サイトに記載されているダウンロードサイトから、
・mecab-0.996.exe
・mecab-python-0.996.tar.gz
をダウンロード。

次に、mecab-0.996.exeを起動して本体をインストール。
途中で辞書の文字コードを選択するが、デフォルトのShift-JISを選択。(UTF-8にしなくてよいのか若干不安ではあるが…)

この時点でmecabコマンドが使えるはずだが、PATHが通っていないようで使えない。手動でインストールディレクトリのbinをPATHに追加する。

試しにコマンドラインのmecabを使ってみる。
例によって「すもももももももものうち」を。

>mecab↓
すもももももももものうち↓
すもも  名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
も      助詞,係助詞,*,*,*,*,も,モ,モ
もも    名詞,一般,*,*,*,*,もも,モモ,モモ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
うち    名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

MeCab Pythonバインディングのインストール

次に、mecab-python-0.996.tar.gzを適当なディレクトリに解凍。
解凍したディレクトリに移動し、READMEに従ってbuildとinstallを実行。
以下、実行した結果。

>python setup.py build
'mecab-config' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
Traceback (most recent call last):
  File "setup.py", line 13, in <module>
    version = cmd1("mecab-config --version"),
  File "setup.py", line 7, in cmd1
    return os.popen(str).readlines()[0][:-1]
IndexError: list index out of range

いきなりbuildでつまづく。
setup.pyの中で呼んでいるmecab-configというコマンドがないらしい。
PATHは通っているが、binの下を見てもそれっぽい実行ファイルが見当たらない。

ググってみると、どうやらWindowsでPythonバインディングを入れるのはかなり面倒そう。頑張ってもいいけど、テキストマイニングすることが目的でWindowsでMeCabを動かすことが目的ではないので中断。
別のLinux環境に入れることにする。

<参考サイト>
RとPythonでMeCabを使う環境構築(Windows, Mac)

15
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
17