【Python】Mecabのラッパーであるfugashiのインストール

【Python】Mecabのラッパーであるfugashiのインストール プログラミング

「手っ取り早く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の動作確認の説明でした。

タイトルとURLをコピーしました