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から呼び出す に整理しました。 Macでつかう †HomeBrew?が入っていれば、すぐ。 $ brew install mecab $ brew install mecab-ipadic $ brew install swig <- pythonからつかおう(mecab-python3 のインストール時)としたときエラーになったので、、。 2018/11/18追記。 たまたまMacでMecabを再構築していたら、二つの障害が同時に。。。 1.Pyenvとなどを入れててAnacondaが入ってると mecab-ipadic-NEologd のインストールに失敗します。 $ pyenv versions system * 3.7.1 (set by /Users/masatomix/.pyenv/version) anaconda3-5.3.0 とかになっててもダメっぽく The `iconv' command exists in these Python versions: とかでてる。ググるとどうもAnacondaがpyenvで入っているからっぽく、インストールするディレクトリ上で、 $ pyenv local system などしておかないと、ダメなようです。 2.mecab-python3 が、2018/11/13にバージョンアップしています。 https://pypi.org/project/mecab-python3/#history このバージョンからswigというモジュールが必要になったようで、 brew install swig しましょうってのは既に書いてますが、どうもparseToNode?の node.surfaceの戻り値がバグってるように見えます。printしてみると、 $ python sample2.py Pythonから形態素解析エンジンMecabを呼び出してみました。 Pythonから形態素解析エンジンMecabを呼び出してみました。 から形態素解析エンジンMecabを呼び出してみました。 形態素解析エンジンMecabを呼び出してみました。 エンジンMecabを呼び出してみました。 Mecabを呼び出してみました。 を呼び出してみました。 呼び出してみました。 てみました。 みました。 ました。 た。 。 とかになっちゃう。。素性の方はあってるっぽいんですけどね。 とりあえず pip install mecab-python3==0.7 で前バージョンにもどしました :-) 関連リンク †
この記事は 現在のアクセス:1682 |