MeCabをインストールすると、同時にIPADICという形態素解析用の辞書がインストールされます。
形態素解析をお試しで使う分には十分なのですが、国立国語研究所が更に充実したMeCab解析用辞書「UniDic」を公開していますので、今回はこの入手方法とWindowsのPython+MeCabから使う方法について紹介したいと思います。
UniDicとは
UniDicについては公式ページに下記の通り紹介がされています。
UniDicとは、国立国語研究所の規定した斉一(せいいつ)な言語単位(短単位)と、 階層的見出し構造に基づく電子化辞書の
① 設計方針
および、その実装としてのリレーショナルデータベース
と、そのデータベースからエクスポートされた短単位をエントリ(見出し語)とする、形態素解析器MeCab用の解析用辞書
③ 解析用UniDic
の総称です。
簡単に言うと、単語を電子辞書化する上での①設計方針と、それに従って構築された②データベース、及びそこから抽出された③MeCab用の解析辞書をトータルでUniDicと称しているようです。
そして、公式ページでは、③MeCab用の解析辞書が公開されています。
また、辞書と言っても現代の言葉から古文に至るまで様々な種類が用意されています。
UniDicのインストール方法
インストールの方法は2通りあります。
1つはPythonを使ってインストールとダウンロードを行う方法、もう1つは公式サイトからダウンロードし、任意のフォルダに解凍する方法です。
pythonを使ってインストールするには
Pythonによるインストールは通常版(unidic)と軽量版(unidic-lite)の2通りがあり、通常版だと1GB、軽量版だと250GBの辞書がインストールされます。
種類 | 辞書容量 | インストール方法 | 補足 |
---|---|---|---|
通常版 | 1GB | pip install unidic python -m unidic download |
unidic のインストールと辞書のダウンロード の2ステップが必要 |
軽量版 | 250MB | pip install unidic-lite | 辞書も同時にインストールされる |
ちなにみ、pip install mecab-python3 で Python用MeCabのライブラリをインストールした場合、unidic は自動でインストールされます。
従って、python -m unidic download で辞書をダウンロードするだけでOKです。
公式サイトからインストールするには
最初に、下記の公式サイトから必要な辞書をダウンロードします。
公式サイトから各辞書へのダウンロードページに移動することが出来ますが、現代書き言葉と現代話し言葉の辞書については、このページから直接ダウンロードも可能です。
それぞれ通常版と full 版が用意されていますが、full版は matrix.def という巨大なファイルが同梱されているのに対し、通常版はそれが含まれない分ダウンロードサイズが小さくなっています。
どちらも辞書としては同じものなので、通常版をダウンロードすれば問題ありません。
次に、ダウンロードしたファイルを解凍するのですが、例えば現代書き言葉UniDic のダウンロードファイル(unidic-cwj-3.1.0.zip)を解凍すると、下記の様なフォルダ構成が出来上がります。
このフォルダ構成はMeCab標準のシステム辞書であるPADICと互換性があるので、システム辞書のパスを置き換えるだけで使えるようになります。
例えば、Dドライブ直下に “unidic-cwj-3.1.0” というフォルダで解凍した場合、Pythonで次の様に記述すれば利用できるようになります。
tagger = MeCab.Tagger('-d d:/unidic-cwj-3.1.0')
パスの区切り文字バックスラッシュ(¥)ではんくスラッシュ(/)にしないとエラーになりますのでご注意ください。
ちなみに、下記4つのフォルダは辞書とは直接関係ない為、削除しても問題はありません。
- ChaMame 1.0.4 for Windows
- eval
- liceses
- sql
まとめ
今回は MeCab 標準の IPADICの代わりに、より充実した形態素解析用辞書 unidic について、インストール方法とPythonからの使い方を解説しました。
自然言語処理を行う場合、標準のIPADICではなくunidic をシステム辞書として使い、更に こちらの記事で紹介した NEologd をユーザー辞書として追加することが多いようです。
より正確な形態素解析を行いたい場合は、是非これらの辞書を利用してみて下さい。
この記事が皆様のお役に立てれば幸いです。