「手っ取り早くMecabを利用したい」
「WindowsにMecabをインストールするのが面倒」
「Transformersで行う感情分析にfugashiが必要」
この記事は、上記の場合に役立つ内容となっています。
本記事の内容
- fugashiとは?
- fugashiのシステム要件
- fugashiのインストール
- fugashiで利用する辞書のインストール
- fugashiの動作確認
それでは、上記に沿って解説していきます。
fugashiとは?
fugashiは、MeCabのラッパーです。
形態素解析を簡単に動かしたい場合、fugashiが役に立ちます。
Linux・macOSなら、Mecabは簡単に動きます。
しかし、Windowsの場合はそうではありません。
その様子は、次の記事をご覧ください。
なんだかんだと手間はかかります。
パスの設定も必要となります。
fugashiを使えば、そんな問題もありません。
そのため、初心者でもWindowsでMecabを動かすことが可能になります。
あとは、環境が汚れないのがfugashiのメリットです。
閉じたプロジェクト内でMecabを動かすことができます。
でも、それはメリットであり、デメリットにもなります。
デメリットを簡単に言うと、次のコマンドが機能しないということです。
mecab
ライブラリによっては、上記コマンドが動く前提で機能するモノがあります。
それらのライブラリをfugashiでは動かすことができません。
逆に、fugashiに依存するライブラリも存在します。
そこは、状況に合わせて利用していくしかありません。
以上、fugashiについて説明しました。
次は、fugashiのシステム要件を確認します。
fugashiのシステム要件
現時点(2021年8月)でのfugashiの最新バージョンは、1.1.1となります。
この最新バージョンは、2021年7月24日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
また、サポート対象となるのはPython 3.5以降です。
古くない限りは問題なしということでしょう。
システム要件としては、これだけです。
つまり、fugashiはPythonのバージョン次第と言えます。
Mecabに関しては、自動的にインストールされます。
そのため、予めインストールしておく必要はありません。
もしPythonをアップグレードする必要があるなら、次の記事が参考になります。
以上、fugashiのシステム要件の説明でした。
次は、fugashiのインストールを行います。
fugashiのインストール
まずは、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.2.4 setuptools 57.4.0
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、fugashiのインストールです。
fugashiのインストールは、以下のコマンドとなります。
pip install fugashi
インストールは、一瞬で終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ---------- ------- fugashi 1.1.1 pip 21.2.4 setuptools 57.4.0
fugashiには、依存パッケージがないようです。
そうだとすると、比較的容易に既存環境にも導入できますね。
あと、Mecabについて確認しておきましょう。
Mecabのバイナリが、同時にインストールされています。
WindowsとLinux(Ubuntu)の場合を載せておきます。
Windows
libmecab.dllを確認できます。
Linux(Ubuntu)
~/lib/python3.9/site-packages/fugashi$ ls -og --time-style="+" 合計 560 -rw-rw-r-- 1 24 __init__.py drwxrwxr-x 2 4096 __pycache__ -rw-rw-r-- 1 1506 cli.py -rwxrwxr-x 1 560144 fugashi.cpython-39-x86_64-linux-gnu.so
fugashi.cpython-39-x86_64-linux-gnu.soを確認できます。
ファイル名の「cpython-39-x86_64-linux-gnu」は、環境によって変わってくるでしょう。
fugashiのインストールについて説明しました。
次は、辞書のインストールを行います。
fugashiで利用する辞書のインストール
形態素解析には、辞書が必要です。
もちろん、Mecabでも辞書が必要となります。
そして、fugashiではUniDicの利用が基本です。
「UniDic」国語研短単位自動解析用辞書
https://unidic.ninjal.ac.jp/
fugashiで利用可能なUniDicは、以下の2種類があります。
- unidic-lite
- unidic
それぞれを下記で説明します。
unidic-lite
2013年版Unidicです。
比較的軽量なモノとなっています。
unidic-liteは、fugashiの動作確認を行う場合に利用します。
あくまで、動作確認レベルということです。
インストールは、次のコマンドで行います。
pip install fugashi[unidic-lite]
インストールされるパッケージは、次のパッケージのみです。
辞書は、同時にダウンロードされています。
Package Version ------------------ --------- unidic-lite 1.0.8
unidic
UniDic 2.3.0(2018年4月10日公開)です。
容量は、1GB以上あります。
UniDicの最新バージョンは、UniDic 3.1.0(2021年4月10日公開)となります。
インストールされるのは、一つ前のバージョンということです。
本格的にfugashiを利用するなら、unidicをインストールすることになります。
インストールコマンドは、以下。
pip install fugashi[unidic] python -m unidic download
上記の二つを実行する必要があります。
「pip install fugashi[unidic]」を実行すると、次のパッケージがインストールされます。
Package Version ------------------ --------- certifi 2021.5.30 charset-normalizer 2.0.4 colorama 0.4.4 idna 3.2 plac 1.3.3 requests 2.26.0 tqdm 4.62.0 unidic 1.0.3 urllib3 1.26.6 wasabi 0.8.2
あくまで、UniDicを利用・ダウンロードするための準備に過ぎません。
「python -m unidic download」により、辞書がダウンロードされます。
>python -m unidic download download url: https://cotonoha-dic.s3-ap-northeast-1.amazonaws.com/unidic.zip Dictionary version: 2.3.0+2020-10-08 Downloading UniDic v2.3.0+2020-10-08... unidic.zip: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 608M/608M [01:03<00:00, 9.54MB/s] Finished download.
まとめ
上記では、fugashiが提案するUniDicのインストールを説明しました。
もちろん、他の任意の辞書を利用することも可能です。
以上、fugashiで利用する辞書のインストールについての説明でした。
最後は、fugashiの動作確認を行います。
fugashiの動作確認
動作確認用のコードは、以下となります。
from fugashi import Tagger tagger = Tagger('-Owakati') text = "麩菓子は、麩を主材料とした日本の菓子。" tagger.parse(text) # => '麩 菓子 は 、 麩 を 主材 料 と し た 日本 の 菓子 。' for word in tagger(text): print(word, word.feature.lemma, word.pos, sep='\t') # "feature" is the Unidic feature data as a named tuple
上記コードを実行します。
結果が次のように表示されれば、動作確認はOKです。
麩 麩 名詞,普通名詞,一般,* 菓子 菓子 名詞,普通名詞,一般,* は は 助詞,係助詞,*,* 、 、 補助記号,読点,*,* 麩 麩 名詞,普通名詞,一般,* を を 助詞,格助詞,*,* 主材 主材 名詞,普通名詞,一般,* 料 料 接尾辞,名詞的,一般,* と と 助詞,格助詞,*,* し 為る 動詞,非自立可能,*,* た た 助動詞,*,*,* 日本 日本 名詞,固有名詞,地名,国 の の 助詞,格助詞,*,* 菓子 菓子 名詞,普通名詞,一般,* 。 。 補助記号,句点,*,*
以上、fugashiの動作確認の説明でした。