Ubuntu18.04のAnaconda3環境にMeCabをインストールしてみた。
MeCabとは、所謂分かち書き用のソフトで、案山子や茶筅と同種のもの。
インストールは、「ubuntu 18.10 に mecab をインストール」を参考にした。
UbuntuへのMeCabインストール
|
sudo apt-get install mecab sudo apt-get install libmecab-dev sudo apt-get install mecab-ipadic-utf8 |
動作確認
|
$ mecab すももももも すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ EOS 特急はくたか 特急 名詞,一般,*,*,*,*,特急,トッキュウ,トッキュー は 助詞,係助詞,*,*,*,*,は,ハ,ワ く 動詞,自立,*,*,カ変・クル,体言接続特殊2,くる,ク,ク た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ か 助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ EOS |
前者は問題ないが、後者は「はくたか」と言う固有名詞が認識できていない。
そこで、次のインストールを行う。
mecab-ipadic-NEologdのインストール
NEologd(Neologism dictionary for MeCab)とは、MeCabのシステム辞書のこと。
詳細はGitHubを参照。
|
git clone https://github.com/neologd/mecab-ipadic-neologd.git cd mecab-ipadic-neologd sudo bin/install-mecab-ipadic-neologd |
私の環境では、この最後の行で「curl not found」のようなエラーが発生した。
“which curl”とすると、”curl” 自体は存在しているが Anaconda の中。
原因がこれと思われるので、curl をシステムにインストールする。
|
sudo apt-get install curl |
その後、再度
|
sudo bin/install-mecab-ipadic-neologd |
これで、無事インストール完了。
辞書の変更
/etc/mecabrcの「dicdir」を次のように変更する。
|
dicdir = /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd |
動作確認
|
$ mecab すももももも すももももも 名詞,固有名詞,一般,*,*,*,すももももも,スモモモモモ,スモモモモモ EOS 特急はくたか 特急 名詞,一般,*,*,*,*,特急,トッキュウ,トッキュー はくたか 名詞,固有名詞,一般,*,*,*,はくたか,ハクタカ,ハクタカ EOS |
今度は、後者は問題ないが、前者の方は「すももももも」が固有名詞になっちゃいました。
NEologdのGitHubページに
「Web上の文書の解析をする際には、この辞書と標準のシステム辞書(ipadic)を併用することをオススメします。」
と書いてあるのは、こういうことなのかもしれない。
でも、どうすれば併用できるの?
これは、これからの課題としてとっておく!!
追記
この「併用」を、ipadic と Neologd を組み合わせて解析するものと解釈したのが大間違いでした。
「場合場合で辞書を使い分けなさい」というのが、この「併用」の意味するところのようで、つまり、
「前者なら iapdic を、後者なら Neologd を使いなさい。私達は、双方を満足するするような解析はできませんよ」
と言うことのようです。
Python3へMeCabインストール
いよいよ佳境に入ってきた。
まずは必要なパッケージをインストール
(注:ここでは、swig インストール以外の操作は不要かもしれない。)
|
sudo apt-get install swig sudo apt-get install python3-pip # 不要か? |
続いてPythonのMeCabパッケージをインストール。
|
pip3 install mecab-python3 # 不要か? |
「conda」ではなく「pip3」であることに注意!
import確認
簡単にターミナルから確認する。
|
>>> python >>> import MeCab Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'MeCab' |
pip3 によるインストール自体は正常終了したものの、Anacondaにはそれ相応の閉じた世界があるので、”pip3″ を使用してしまうと Anaconda Python の監視下にはインストールされないようだ。
いろいろググった挙句、行き着いたのはこのブログ。
jupyter notebook から pip インストールせよとのこと。
早速 jupyter notebook を立ち上げ、次を実行
|
!pip install mecab-python3 # "!" をお忘れなく |
(!pip であることに注意)
これにより、Python にMeCab が import
可能になった。感謝!
サンプルプログラム
Qiita の例に倣って、次のサンプルプログラムを作成して確認する。
|
import sys import MeCab # mt = MeCab.Tagger("mecabrc") str_in="すももももも。特急はくたか" res = mt.parseToNode(str_in) while res: # print (res.surface) arr = res.feature.split(",") print(res.feature) print(arr[6]) res = res.next |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
名詞,一般,*,*,*,*,すもも,スモモ,スモモ すもも 助詞,係助詞,*,*,*,*,も,モ,モ も 名詞,一般,*,*,*,*,もも,モモ,モモ もも 記号,句点,*,*,*,*,。,。,。 。 名詞,一般,*,*,*,*,特急,トッキュウ,トッキュー 特急 助詞,係助詞,*,*,*,*,は,ハ,ワ は 動詞,自立,*,*,カ変・クル,体言接続特殊2,くる,ク,ク くる 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ た 助詞,副助詞/並立助詞/終助詞,*,*,*,*,か,カ,カ か |
ま、まずい!
辞書の変更が反映されていない。
でも、一応動作確認はできたので、今日はここまでにしておこう。
追記
気を取り直して続きを書く。
Ubuntu のターミナルからは、前述の通り /etc/mecabrc を変更すれば辞書が切り替わるのだが、
Python からは MeCab.Tagger に -d オプションを指定して辞書のディレクトリを指定する必要がある。
|
# 辞書を neologd に切り替える mt = MeCab.Tagger("-d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd") |
これで、動的に辞書を切り替えられるという訳ですね。
なお、windows 上でのディレクトリ指定は次のようにする。
(C ドライブの直下に mecab-ipadic-neologd を作成し、そこに辞書をコピーしたものとする)
|
# 辞書を neologd に切り替える mt = MeCab.Tagger("-d c:\mecab-ipadic-neologd") |
ディレクトリは windows の記法に則ることに注意願いたい。
おしまい!!
メモ