Top / 自然言語処理 / 形態素解析エンジンMecab

MeCab?はオープンソースの日本語の形態素解析ソフトウェア。ちょっと自然言語処理を勉強しようと思って、、そのときの作業メモ。 Ubuntu Server 16.04.2 LTS に構築していきます。

インストール

$ sudo apt install mecab
$ sudo apt install libmecab-dev
$ sudo apt install mecab-ipadic-utf8

 ...
done!
update-alternatives: /var/lib/mecab/dic/debian (mecab-dictionary) を提供するために自動モードで /var/lib/mecab/dic/ipadic-utf8 を使います

インストール完了です。インストール時、足りないライブラリがあったらエラーになるっぽいですが、適宜エラーを見ながらやっていけばOKかと。

稼働確認

定番の文章で分かち書きできるか確認。

$ mecab
すもももももももものうち    ← 入力してReturn
すもも	名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
うち	名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

分かち書きできましたねー。。

辞書をmecab-ipadic-NEologdを使うようにする

Mecabなどの形態素解析ソフトウェアは分かち書きに使うための辞書を切り替える事が出来ます。どうやら、 新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた : LINE Engineering Blog この辞書がよいっぽいので、その辞書を使用するように変更してみます。

$ git clone  https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd/
$ sudo ./bin/install-mecab-ipadic-neologd

...
[install-mecab-ipadic-NEologd] : Do you want to install mecab-ipadic-NEologd? Type yes or no.
yes   ← こたえる

...
[install-mecab-ipadic-NEologd] : Install completed.
[install-mecab-ipadic-NEologd] : When you use MeCab, you can set '/usr/lib/mecab/dic/mecab-ipadic-neologd' as a value of '-d' option of MeCab.
[install-mecab-ipadic-NEologd] : Usage of mecab-ipadic-NEologd is here.
Usage:
    $ mecab -d /usr/lib/mecab/dic/mecab-ipadic-neologd ...

$

インストールできました。

確認

辞書を切り替えた効果を試してみます。先のサイトの例で「恋ダンス」を入れてみます。

通常だと、

$ mecab
恋ダンス
恋	名詞,一般,*,*,*,*,恋,コイ,コイ
ダンス	名詞,サ変接続,*,*,*,*,ダンス,ダンス,ダンス

と別の単語扱いになってしまいますが、

$ mecab -d /usr/lib/mecab/dic/mecab-ipadic-neologd
恋ダンス
恋ダンス	名詞,固有名詞,一般,*,*,*,恋ダンス,コイダンス,コイダンス
EOS

固有名詞扱いしてくれました。使用する辞書を変えると結果が変わるという事ですね。

デフォルトの辞書を切り替え

というわけで、辞書をオプションで指定しなくてもよいように、デフォルトの辞書を切り替えます。下記の設定ファイルを修正します。

$ sudo cp -pfr /etc/mecabrc /etc/mecabrc20180617
$ sudo vi /etc/mecabrc
$ diff /etc/mecabrc /etc/mecabrc20180617
6,7c6
< ;dicdir = /var/lib/mecab/dic/debian
< dicdir = /usr/lib/mecab/dic/mecab-ipadic-neologd
---
> dicdir = /var/lib/mecab/dic/debian

修正しました。では試してみます。

$ mecab
恋ダンス
恋ダンス	名詞,固有名詞,一般,*,*,*,恋ダンス,コイダンス,コイダンス
EOS

切り替わってそうですね。

ちなみに

$ mecab-config --dicdir
/usr/lib/mecab/dic

などで、切り替えた辞書の場所などが確認出来ます。

Pythonから呼び出す

自然言語処理/形態素解析エンジンMecab/Pythonから呼び出す に整理しました。

関連リンク


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / 自然言語処理 / 形態素解析エンジンMecab

現在のアクセス:106


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-07-19 (木) 15:28:27 (63d)