2023年3月26日日曜日

PythonでMecabを使う (Unidic辞書編)

日本語の自然言語処理には形態素解析が欠かせない。そこでよく使われるのがMecab。辞書として標準のipadicではなくUnidicを使おうとするといくつか落とし穴がある。
今回はそんな落とし穴に落ちずにインストールからmecabで品詞解析をするまでの手順を書いておく。
  • 落とし穴①:Unidicを指定してmecabを動かそうとすると、`no such file or directory: /usr/local/lib/python3.9/site-packages/unidic/dicdir/mecabrc`のエラーが発生。
  • 落とし穴②:`Mecab.Tagger("-Ochasen")`とするとエラーが発生。
まずpython3-mecabのインストールする。
# pip install mecab-python3
# pip install unidic
ただしUnidicはpipだけでは辞書本体がダウンロードされないため下記コマンドで辞書本体をダウンロードする。
# python -m unidic download

Mecab本家とは違いpython3-mecabはchasen出力のフォーマットがデフォルトでは用意されていないため、そのまま`Mecab.Tagger("-Ochasen")` を実行すると「chasenというようなフォーマットは無い」という趣旨のエラーが発生する。そこで、`/usr/local/lib/python3.9/site-packages/unidic/dicdir/dicrc`のファイル末尾にviなどで以下の`; ChaSen`以下の内容を追記する(参考)。

以上。

参考文献:https://www.teamxeppet.com/python-mecab-unidic-lite_mac/