Memo

メモ > 技術 > プログラミング言語: Python > MeCab(形態素解析)

■MeCab(形態素解析)
形態素解析とは、文章を意味を持つ最小単位(形態素)に分割し、各形態素に品詞情報などを付加する 英単語は単語の区切りが明確だが、日本語の形態素解析は容易ではない 代表的な形態素解析ライブラリとしてMeCabがある ■MeCabをインストール Raspberry Piでpythonからmecabを使う初期設定 - Qiita https://qiita.com/fujit33/items/fd1d09f3332c626c9379
$ sudo apt-get install mecab libmecab-dev mecab-ipadic-utf8 python-mecab $ sudo apt-get install swig $ sudo pip3 install mecab-python3 $ python3 Python 3.8.7 (default, Feb 7 2021, 00:21:33) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import MeCab >>> mecab = MeCab.Tagger() >>> print(mecab.parse("すもももももももものうち")) すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS >>> exit()
■mecab-ipadic-NEologd を導入 MeCabは形態素解析を行うに当たり単語辞書を用いており、IPADICという単語辞書がよく用いられる mecab-ipadic-NEologd は、新しい語や固有表現を追加することで IPADICを拡張したMeCab用のシステム辞書 GitHub - neologd/mecab-ipadic-neologd: Neologism dictionary based on the language resources on the Web for mecab-ipadic https://github.com/neologd/mecab-ipadic-neologd
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git $ cd mecab-ipadic-neologd $ ./bin/install-mecab-ipadic-neologd -n -p /var/lib/mecab/dic/mecab-ipadic-neologd
Raspberry Pi 4 4B-32GB の環境ではインストールできた インストールに成功したら、以下のようにして辞書を指定できる
$ python3 Python 3.8.7 (default, Feb 7 2021, 00:21:33) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import MeCab >>> mecab = MeCab.Tagger("-d /var/lib/mecab/dic/mecab-ipadic-neologd") >>> print(mecab.parse("メイが恋ダンスを踊っている。")) メイ 名詞,固有名詞,人名,一般,*,*,M.A.Y,メイ,メイ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 恋ダンス 名詞,固有名詞,一般,*,*,*,恋ダンス,コイダンス,コイダンス を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 踊っ 動詞,自立,*,*,五段・ラ行,連用タ接続,踊る,オドッ,オドッ て 助詞,接続助詞,*,*,*,*,て,テ,テ いる 動詞,非自立,*,*,一段,基本形,いる,イル,イル 。 記号,句点,*,*,*,*,。,。,。 EOS >>> exit()
Raspberry Pi 3 Model b+ の環境では以下のエラーになった メモリ不足のためインストールできないみたい 公式の解説によると4GBほどのメモリ空き容量が必要らしいが、今回の環境は1GB程度しかない
terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc /home/pi/mecab-ipadic-neologd/bin/../libexec/make-mecab-ipadic-neologd.sh: 525 行: 23592 中止 ${MECAB_LIBEXEC_DIR}/mecab-dict-index -f UTF8 -t UTF8
mecab-ipadic-neologd/README.ja.md at master - neologd/mecab-ipadic-neologd - GitHub https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md Vagrant上のVMへのmecab-ipadic-neologdのインストールが失敗する時 - Qiita https://qiita.com/comocc/items/bfa5c4fe3c84d31e8ae7 以下のようにすると、300MBほどサイズを削減できるとのこと 今回の環境ではこれでもインストールできなかった
$ ./bin/install-mecab-ipadic-neologd -n -y --ignore_adverb --ignore_interject --ignore_noun_ortho --ignore_noun_sahen_conn_ortho --ignore_adjective_std --ignore_adjective_verb --ignore_ill_formed_words -p /var/lib/mecab/dic/mecab-ipadic-neologd
以下のようにすると512MBほどのメモリ空き容量があればインストールできるとのこと ただしオススメしないとされている 今回の環境ではこれでもインストールできなかった
$ ./bin/install-mecab-ipadic-neologd -n -y --eliminate-redundant-entry -p /var/lib/mecab/dic/mecab-ipadic-neologd
今回はメモリ不足のため mecab-ipadic-NEologd を使えないようなので、標準の辞書を使う

Advertisement