新し目の辞書を使ってMeCabをPythonから利用する

  • 33
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

以下のシステム構成を前提に書かれています。
- OS: Mac OSX
- パッケージ管理システム: Homebrew
- インストールするもの: mecab、mecab-ipadic、mecab-ipadic-NEologd

インストールは Homebrewというパッケージシステムを使う方法と、個別に手動でインストールする方法とありますが、後者はいくつかハマるポイントがあり超絶面倒くさいのと、Homebrewを使った方が超絶楽なので前者をオススメします。

Homebrewの用意

Homebrewのインストールがまだであれば、Terminal.appを立ち上げて、以下のコマンドをコピペして実行することでインストールされます。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

MeCab本体のインストール

brew install mecab

辞書ファイル(ここではIPA辞書を選択)のインストール

brew install mecab-ipadic

これで一旦インストールは済んだので、Terminal.appを開き

mecab

とコマンドを入力すると、MeCabが起動し、文字入力待ちモードになります。
何か言葉を入力し、returnキーを押してみましょう。

追加の辞書ファイルのインストール

IPA辞書と一緒に、mecab-ipadic-NEologdという新語辞書を使うことにします。
http://diary.overlasting.net/2015-03-13-1.html
IPA辞書(IPADIC)だけを使うと何が問題かというと、

IPADICはとてもよく出来ていますが、更新されないまま年月が過ぎているので、例えば2015年3月上旬に急に流行ったような言葉は収録していません。そのため、今日生まれたような新しい文書(例、Apple Watch発売)を解析する時に困ります。困らない人もいますけど、僕は困ります。

その課題に対処するために、日本全国津々浦々、自然言語処理に関わる全ての人は独自にMeCabの新語辞書を作って対応しているわけです。その際に元データとして使われることが多いのは Wikipedia 日本語版やはてなキーワードなどです。

困ったことに、新語辞書を生成するには上述の元データを使うとても面倒な処理(本文抽出とか、コスト付けとか)を確実に行う必要があります。これがうまくいかないことが多いのです。また、インターネット上に公開されている新語辞書作成の手法は提案者によってまちまちです。どのような結果を狙っているのか不明確な手法も多々見かけます。

さらに言うと、上述の元データだけでは新しい地名、人名、製品名、施設名、イベント名、キャラクター名、動詞・形容詞、数値・数量表現などへの対処はしきれません。このような問題を少しでも軽減することはできないのでしょうか。

「もう2015年だし、新語への対応どうしよう・・・、とかそろそろ考えたくないよね?」

ということで粛々と作業をして作りました。

という感じで、年々生まれる新しい言葉や固有名詞に対応して、IPA辞書からの差分のみを提供しているのが、このmecab-ipadic-NEologdということになります。

IPA辞書だけインストールし、mecab-ipadic-NEologdをインストールしていない状態で、

特急はくたか

をmecabにかけるとこんな感じになります。

特急  名詞,一般,*,*,*,*,特急,トッキュウ,トッキュー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
く 動詞,自立,*,*,カ変・クル,体言接続特殊2,くる,ク,ク
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
か 助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ

「はくたか」という固有名詞が辞書に登録されていないので、別々な言葉として認識されていることがわかります。

mecab-ipadic-NEologdのインストール

これはHomebrewではインストールできません。公式サイトにも記述があります( https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md )が、こんな手順でインストールします。今回はダウンロードフォルダを使いました。

$ cd ~/Downloads
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n

ぼくの場合、ここまでやった時点で、

[install-mecab-ipadic-NEologd] :     unxz is not found.

と表示されたので、xzをインストールします。

$ brew install xz

もう一度、以下を実行します。

$ ./bin/install-mecab-ipadic-neologd -n

文字がいっぱい流れてきて、途中で止まります。

[install-mecab-ipadic-NEologd] : Do you want to install mecab-ipadic-NEologd? Type yes or no.

こんな表示が出たので、yesとタイプし、システムのパスワードを入力しました。

[install-mecab-ipadic-NEologd] : Install completed.

と出てインストールが無事終了。

mecab-ipadic-NEologdを使いたいときは、実行時、-dオプションにカスタムシステム辞書のパスを指定すればいいです。

$ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/

起動して、さきほどと同様に

特急はくたか

と入力してみましょう。

特急  名詞,一般,*,*,*,*,特急,トッキュウ,トッキュー
はくたか    名詞,固有名詞,一般,*,*,*,はくたか,ハクタカ,ハクタカ

はくたかが固有名詞として認識されていますね。

設定ファイル

MeCab設定ファイル

/usr/local/etc/mecabrc

この設定ファイルの中で辞書の置き場が定義されています。Homebrewでインストールするとこのように設定されていました。

dicdir =  /usr/local/lib/mecab/dic/ipadic

MeCabとPythonを連携

公式サイトからリンクを辿って、Google Driveに各種ファイルがガッサリ置いてあります。

https://drive.google.com/a/n1n9.jp/folderview?id=0B4y35FiV1wh7fjQ5SkJETEJEYzlqcUY4WUlpZmR4dDlJMWI5ZUlXN2xZN2s2b0pqT3hMbTQ&usp=drive_web#list

今回はmecab-python-0.996.tar.gzを見繕いました。

$ curl -O https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz
$ sudo python setup.py build
$ sudo python setup.py install

これでPythonからMeCabが利用できるようになります。

参考リンク