文章の単語分割を行うためにMeCabをインストールする
日本語の自然言語処理をやっていく上で、よく使われているであろうMeCabのインストールを行う。
そもそも前処理はなんぞやというと、いい例があったので引用させていただく。
初心者の自分にとってはこんなに前処理あったのか・・・と思いつつ、MeCabは「文章の単語分割」でよく使われている。
例えば以下のように、ある文章の内容を名詞/助詞/動詞などに分割してくれる。このようなことを「形態素解析」とも呼ぶ。
[~] mecab 私は神になったかもしれない。 私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 神 名詞,一般,*,*,*,*,神,カミ,カミ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ なっ 動詞,自立,*,*,五段・ラ行,連用タ接続,なる,ナッ,ナッ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ かも 助詞,副助詞,*,*,*,*,かも,カモ,カモ しれ 動詞,自立,*,*,一段,未然形,しれる,シレ,シレ ない 助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ 。 記号,句点,*,*,*,*,。,。,。 EOS
MeCabと辞書のインストール
以下のURLからソースのダウンロードをする。
MeCab: Yet Another Part-of-Speech and Morphological Analyzer
次に、ディレクトリの生成。
sudo mkdir /usr/local/mecab
MeCabのインストール。
cd $HOME/Downloads tar xvfz mecab-0.996.tar.gz cd mecab-0.996 ./configure --enable-utf8-only --prefix=/usr/local/mecab make sudo make install
このままだと、名詞/助動詞などを判定するための「辞書」がないためそれもインストール。
MeCabと同じところにあるが、以下のURLから「IPA 辞書」をダウンロード。
MeCab: Yet Another Part-of-Speech and Morphological Analyzer
次にインストール。
cd $HOME/Downloads tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz cd mecab-ipadic-2.7.0-20070801 ./configure --prefix=/usr/local/mecab --with-mecab-config=/usr/local/mecab/bin/mecab-config --with-charset=utf8 make sudo make install
パスを通す
export PATH=/usr/local/mecab/bin:$PATH
これでMeCabが使えるようになるのだが、シェルを再起動しなくてはいけない。毎回コマンド叩くのは面倒かと思うので、以下のようにエイリアスを貼っておくとパスを通すたびにすぐに行えるのでおすすめ。
alias relogin='exec $SHELL -l'
MeCabの実行と最新の辞書のインストール
インストールも終わったので、実際に実行してみる。
[~] relogin #もしまだやってなかったら [~] mecab 生まれ変わったらメロンパンになりたい。 生まれ変わっ 動詞,自立,*,*,五段・ラ行,連用タ接続,生まれ変わる,ウマレカワッ,ウマレカワッ たら 助動詞,*,*,*,特殊・タ,仮定形,た,タラ,タラ メロン 名詞,一般,*,*,*,*,メロン,メロン,メロン パン 名詞,一般,*,*,*,*,パン,パン,パン に 助詞,格助詞,一般,*,*,*,に,ニ,ニ なり 動詞,自立,*,*,五段・ラ行,連用形,なる,ナリ,ナリ たい 助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ 。 記号,句点,*,*,*,*,。,。,。 EOS
無事にできた・・・と思いたいが、よみると「メロンパン」が「メロン」と「パン」に分割されてしまっている。これは、「IPA辞書」は詳しくはわからないが昔からある辞書で、最新の言葉に対応していないっぽい。
なので、最新の言葉に対応した辞書をインストールする。
mecab-ipadic-NEologdのインストール。
git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git ./bin/install-mecab-ipadic-neologd -n
MeCabでに利用。
[~] mecab -d /usr/local/mecab/lib/mecab/dic/mecab-ipadic-neologd/ 生まれ変わったらメロンパンになりたい。 生まれ変わっ 動詞,自立,*,*,五段・ラ行,連用タ接続,生まれ変わる,ウマレカワッ,ウマレカワッ たら 助動詞,*,*,*,特殊・タ,仮定形,た,タラ,タラ メロンパン 名詞,固有名詞,一般,*,*,*,メロンパン,メロンパン,メロンパン に 助詞,格助詞,一般,*,*,*,に,ニ,ニ なり 動詞,自立,*,*,五段・ラ行,連用形,なる,ナリ,ナリ たい 助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ 。 記号,句点,*,*,*,*,。,。,。 EOS
無事「メロンパン」を正しく分割できたが、嬉しいことに更新頻度が半端ないので、ローカルと本番環境で扱う場合はバージョンの違いに気をつけないといけない。
終わり
自然言語処理をするための一歩目として単語分割を行うためのMeCabをインスールした。次は元となるデータも手元においておいたほうがいいと思うので、Wikipediaの全文データを扱う方法について書こうと思う。