仮想計算機構

IT業界と無縁な派遣社員のブログ

【Python】【Windows】mecab をインストールした

はじめに

python から mecab を使いたかったので pip でインストールします。

環境

OS : Windows 10
Python version 3.7.6

インストール

$ pip install mecab-python3
(省略)
Installing collected packages: mecab-python3
Successfully installed mecab-python3-1.0.5

unidic辞書もインストールしておきます。

$ pip install unidic
(省略)
Successfully built unidic
Installing collected packages: wasabi, plac, unidic
Successfully installed plac-1.3.5 unidic-1.1.0 wasabi-0.10.1

同時にインストールされた plac はオプション解析モジュール、wasabi は coloring や formatting を行うユーティリティのようです。

実行結果

python を対話モードで起動します。

>>> import MeCab
>>> import unidic
>>> tagger = MeCab.Tagger()
Traceback (most recent call last):
    super(Tagger, self).__init__(args)
RuntimeError

The above exception was the direct cause of the following exception:
  File "<stdin>", line 1, in <module>
  File "C:\Users\user\anaconda3\envs\py376\lib\site-packages\MeCab\__init__.py", line 135, in __init__
    raise RuntimeError(error_info(rawargs)) from ee
RuntimeError:

RuntimeErrorをくらいました。どうも辞書データがダウンロードされていないようです。下記でダウンロードを行います。

$ python -m unidic download

参考:https://atmarkit.itmedia.co.jp/ait/articles/2102/05/news027.html

改めて tagger を宣言します。例文として「すもももももももものうち」を使います。

>>> tagger = MeCab.Tagger()
>>> print(tagger.parse('すもももももももものうち'))
すもも  名詞,普通名詞,一般,,,,スモモ,李,すもも,スモモ,すもも,スモモ,和,"","","","","","",体,スモモ,スモモ,スモモ,スモモ,"0","C2","",15660352771596800,56972
も      助詞,係助詞,,,,,モ,も,も,モ,も,モ,和,"","","","","","",係助,モ,モ,モ,モ,"","動詞%F2@-1,形容詞%F4@-2,名詞%F1","",10324972564259328,37562
もも    名詞,普通名詞,一般,,,,モモ,桃,もも,モモ,もも,モモ,和,"","","","","","",体,モモ,モモ,モモ,モモ,"0","C3","",10425303000293888,37927
も      助詞,係助詞,,,,,モ,も,も,モ,も,モ,和,"","","","","","",係助,モ,モ,モ,モ,"","動詞%F2@-1,形容詞%F4@-2,名詞%F1","",10324972564259328,37562
もも    名詞,普通名詞,一般,,,,モモ,桃,もも,モモ,もも,モモ,和,"","","","","","",体,モモ,モモ,モモ,モモ,"0","C3","",10425303000293888,37927
の      助詞,格助詞,,,,,ノ,の,の,ノ,の,ノ,和,"","","","","","",格助,ノ,ノ,ノ,ノ,"","名詞%F1","",7968444268028416,28989
うち    名詞,普通名詞,副詞可能,,,,ウチ,内,うち,ウチ,うち,ウチ,和,"","","","","","",体,ウチ,ウチ,ウチ,ウチ,"0","C3","",881267193291264,3206
EOS

うまくいきました。