NLPに使うデータの前処理に形態素解析を使うことがあるのでまとめる。
MeCabとは?
オープンソースの日本語の形態素解析エンジンです。
現GoogleソフトウェアエンジニアでGoogle 日本語入力開発者の一人である工藤拓によって開発されている。名称は開発者の好物「和布蕪」から取られた。
環境
- macOS Catalina
- Python 3.7.2
- pip 19.1.1
- Homebrewをインストール済み
インストール
MeCab本体をインストールする。
$ brew install mecab
MeCabの辞書をインストールする。
$ brew install mecab-ipadic
MeCabがインストールされたか確認する。
$ mecab --version
mecab of 0.996
試しに形態素解析をしてみる。
$ mecab
試しに形態素解析をしてみる。
試し 名詞,一般,*,*,*,*,試し,タメシ,タメシ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ
解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
みる 動詞,非自立,*,*,一段,基本形,みる,ミル,ミル
。 記号,句点,*,*,*,*,。,。,。
EOS
形態素解析という単語が形態素と解析に分解されてしまっている。
これを解決するために、最新の辞書であるmecab-ipadic-NEologdをインストールする。
まずは辞書データをGitHubからCloneする。
$ git clone --depth 1 git@github.com:neologd/mecab-ipadic-neologd.git
Cloneしたリポジトリに移動してinstallを実行し、確認画面でyesを選択する。
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n
yes
-dオプションで辞書を指定して再び、試しに形態素解析をしてみる。
$ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/
試しに形態素解析をしてみる。
試しに 副詞,一般,*,*,*,*,試しに,タメシニ,タメシニ
形態素解析 名詞,固有名詞,一般,*,*,*,形態素解析,ケイタイソカイセキ,ケイタイソカイセキ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
みる 動詞,非自立,*,*,一段,基本形,みる,ミル,ミル
。 記号,句点,*,*,*,*,。,。,。
EOS
無事、形態素解析という1単語になりました。
Pythonで使う
python用のライブラリをインストールする。
pip3 install mecab-python3
あとはコードを書いて動かしてみる。
import MeCab
mecab = MeCab.Tagger ('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
print(mecab.parse('試しに形態素解析をしてみる。'))
試しに 副詞,一般,*,*,*,*,試しに,タメシニ,タメシニ
形態素解析 名詞,固有名詞,一般,*,*,*,形態素解析,ケイタイソカイセキ,ケイタイソカイセキ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
みる 動詞,非自立,*,*,一段,基本形,みる,ミル,ミル
。 記号,句点,*,*,*,*,。,。,。
EOS