MacにMeCabを使う環境を用意します。
必要なファイルをダウンロード
MeCabは、「コマンドのソースコード本体」と「辞書」が必要になります。
MeCab: Yet Another Part-of-Speech and Morphological Analyzerから下記のファイルをダウンロードします。
コマンドのソースコード本体のダウンロード
- MeCab: Yet Another Part-of-Speech and Morphological Analyzerのサイト内で「mecab-0.996.tar.gz」を検索する。
- ダウンロードをクリックする。
辞書のダウンロード
- MeCab: Yet Another Part-of-Speech and Morphological Analyzerのサイト内で「IPA 辞書」を検索する。
- ダウンロードをクリックする。
ダウンロードしたファイルを使ってインストールする。
- ターミナルを開く
-
コマンドのインストール
cd ~/Downloads tar zxfv mecab-0.996.tar.gz cd mecab-0.996 ./configure --with-charset=utf8 --enable-utf8-only make make check sudo make install
-
辞書のインストール
cd ~/Downloads tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz cd mecab-ipadic-2.7.0-20070801 ./configure --with-charset=utf8 --enable-utf8-only make sudo make install
-
パスの追加
echo 'export PATH=/opt/local/bin:$PATH' >> ~/.bash_profile source ~/.bash_profile
コマンドの確認する
正しくコマンドが実行できるか確認していきます。 まず、下記のように入力します。
mecab すもももももももものうち
出力として下記が出力されると、環境が整ったことになります!
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS
MeCabの結果が文字化けして困った
私はインストール時に、MeCabの出力が下記のように、?で化けてしまう現象が起きました。
mecab
MeCabが文字化けして困った
MeCab ̾??,??ͭ̾??,?ȿ?,*,*,*,*
が文 ????,????,*,*,*,*,*
? ̾??,????,*,*,*,*,?,?̥?,?̥?
?化けし? ????,????,*,*,*,*,*
?? ̾??,??????³,*,*,*,*,*
??? ????,????,*,*,*,*,*
?? ????,????ե??٥å?,*,*,*,*,??,????,????
?? ????,????,*,*,*,*,*
EOS
私の場合は、「コマンドのインストール」と「辞書のインストール」のconfigure段階で、下記のようにオプションのつけ忘れが原因のようです。
正: ./configure --with-charset=utf8 --enable-utf8-only
誤: ./configure
誤: ./configure --with-charset=utf8
一度、解凍したディレクトリ(mecab-0.996やmecab-ipadic-2.7.0-20070801)を削除し、解凍コマンド(「tar zxfv mecab-0.996.tar.gz」や「tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz」)からやり直すとできました。
NEologd辞書をインストール
NEologdとは、Web上から得た新語が反映された辞書です。
mecab-ipadic-NEologd は、多数のWeb上の言語資源から得た新語を追加することでカスタマイズした MeCab 用のシステム辞書です。 Web上の文書の解析をする際には、この辞書と標準のシステム辞書(ipadic)を併用することをオススメします。
利点
- MeCab の標準のシステム辞書では正しく分割できない固有表現などの語の表層(表記)とフリガナの組を約319万組(重複エントリを含む)採録しています
- この辞書の更新は開発サーバ上で自動的におこなわれます
- Web上の言語資源を活用しているので、更新時に新しい固有表現を採録できます。
欠点
- 固有表現の分類が不十分です
- 固有表現では無い語も固有表現として登録されています
- 固有表現の表記とフリガナの対応づけを間違っている場合があります
- 追加した副詞の品詞情報が全て'副詞,一般,,,,'になっている
- 対応している文字コードは UTF-8 のみです
インストール方法
-
任意のフォルダで下記のコマンドを入力しソースコード本体を取得する。
git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git cd mecab-ipadic-neologd
-
インストール作業
./bin/install-mecab-ipadic-neologd -n
-
インストール先の確認
echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
-
NEologd辞書を使ったMeCabの実行
echo "8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。" | mecab -d {3で調べたPath}
## デフォルトの辞書を変更する
mecabが使用する辞書は、-dオプションで指定することができますが、毎回するのは大変です。
そこで、デフォルトで使用される辞書を変更する方法を探しました。
デフォルトの辞書を調べるには下記のコマンドを使ってください。
mecab -D
1. コンフィグの書き換え
vi /usr/local/etc/mecabrc
下記のように辞書名を変更する。
この時、パスは辞書をインストールした時のオプションで異なるので、末尾のパスだけ変えましょう!
旧: dicdir = /usr/local/mecab/lib/mecab/dic/ipadic 新: dicdir = /usr/local/mecab/lib/mecab/dic/mecab-ipadic-neologd
## mecabコマンドのオプション
|オプション |説明 |
|---|---|
|-v, --version |バージョンを表示 |
|-h, --help |ヘルプを表示 |
|-P, --dump-config |設定されているMeCabのパラメータを表示 |
|-D, --dictionary-info |辞書情報を表示 |
|-d, --dicdir=DIR |使用するシステム辞書を設定 |
|-u, --userdic=FILE |使用するユーザ辞書を設定 |
|-r, --rcfile=FILE |使用する辞書内のリソースファイルを設定、-dと併用して使用する。 |
|-a, --all-morphs |該当する全ての形態素を表示 default: false |
|-O, --output-format-type=TYPE |出力形式を設定 (chasen: -Ochasen, chasen2: -Ochasen2, yomi: -Oyomi, wakati: -Owakati, dump: -Odump) |
|-p, --partial |文章の中で解析結果を指定できるようにします。(例: メロンパン 名詞 |
|-B, --bos-format=STR |解析結果に出力される、BOS文字列を上書きします。 |
|-E, --eos-format=STR |解析結果に出力される、EOS文字列を上書きします。 |
|-N, --nbest=INT |表示する解析結果を上位件数を設定します。 |
|-o, --output=FILE |解析結果を保存するファイルを指定します。解析結果は追記されていきます。 |
|-m, --marginal |output marginal probability (default false) |
|-M, --max-grouping-size=INT |maximum grouping size for unknown words (default 24) |
|-F, --node-format=STR |use STR as the user-defined node format |
|-S, --eon-format=STR |use STR as the user-defined end-of-NBest format |
|-U, --unk-format=STR |use STR as the user-defined unknown node format |
|-x, --unk-feature=STR |use STR as the feature for unknown word |
|-b, --input-buffer-size=INT |set input buffer size (default 8192) |
|-C, --allocate-sentence |allocate new memory for input sentence |
|-t, --theta=FLOAT |set temparature parameter theta (default 0.75) |
|-c, --cost-factor=INT |set cost factor (default 700) |
|-l, --lattice-level=INT |lattice information level (DEPRECATED) |
## 関連
- [MeCab](https://taku910.github.io/mecab/)
- [mecab-ipadic-neologd](https://github.com/neologd/mecab-ipadic-neologd)