この記事では、Windows上のPythonでMecabを利用する方法を説明しています。
普段利用しているWindowsで、気軽に形態素解析をしたい人向けの記事です。
本記事の内容
- MecabをインストールしてPythonで使うための環境
- MecabのWindowsへのインストール
- PythonからMecabを利用する
- Pythonで利用するMecabの辞書を変更する
- Pythonで辞書指定によりMecabを利用する
- MecabをインストールしてPythonで使う【Windows】のまとめ
それでは、まずは今回利用する環境についてから解説します。
MecabをインストールしてPythonで使うための環境
- Windows 10 Home (バージョン1909)※以下の説明は64bit前提
- Python 3.7.3
- Mecab 0.996.2
- mecab-0.996.2(Pyhtonライブラリ)
- Ubuntu 20.04 LTS
pipコマンドが使えることは前提です。
MecabのWindowsへのインストール
ダウンロード
下記URLへアクセスします。
https://github.com/ikegami-yukino/mecab/releases
mecab-64-0.996.2.exeをクリックして、ダウンロードを開始します。
ファイルは、適当な場所に保存してください。
インストール
ダウンロードしたexeを起動します。
「OK」をクリック。
「UTF-8」を選択して、「次へ」をクリック。
「同意する」にチェックを入れて、「次へ」をクリックします。
初期では「C:\Program Files\MeCab」が設定されています。
変更する場合は、存在するディレクトリに変更します。
そして、「次へ」をクリック。
「プログラムグループを作成しない」にチェックいれます。
Pythonから利用する上では、グループは必要ありません。
「次へ」をクリック。
インストール先を確認します。
問題なければ、「インストール」をクリック。
インストールが開始。
その途中で次のダイアログが出る場合があります。
「はい」をクリックします。
常に管理者権限ありのユーザがMecabを動かすとも限りませんので。
例えば、バッチ専用のユーザで動かす場合など。
「OK」をクリックすると、コマンドプロンプトが起動します。
そして、ガーッと処理をして、コマンドプロンプトが自動的に閉じられます。
最後に次が表示。
「完了」をクリックすれば、Mecabのインストールが完了です。
しかし、まだンストールだけが完了しただけです。
Pythonから利用できるようにパスの設定が必要となります。
次でパスの設定を行います。
パスの設定
環境変数にMeCabをインストールしたフォルダのパスを設定します。
今回は、「C:\soft\MeCab」にインストールしました。
そのため、設定するパスは「C:\soft\MeCab\bin¥」となります。
ここでちょっとした便利なノウハウを説明します。
環境変数の設定が少しだけ楽になります。
以下に「sysdm.cpl」と入力して、Enterを押してください。
以下の画面が立ち上がります。
「詳細設定」のタブを開きます。
ここまでかなり早く到達できました。
そこそこ使えるノウハウだと個人的には重宝しています。
あとは、もう説明は省きます。
システム環境変数の「Path」にMecabをインストールしたフォルダにある「bin」を指定します。
動作確認
パスの設定が終わったら、動作確認です。
コマンドプロンプトを起動します。
次のように「mecab -v」を入力します。
コマンドを発行する場所は、どこでもいいです。
C:\>mecab -v mecab of 0.996
インストールしたバージョンが表示されれば、OKです。
一応、Mecabの形態素解析の機能も確認しておきましょう。
コマンドプロンプトで以下のようにコマンド実行します。
C:\>echo 'DOS窓では、基本的には日本語がアウトです' | mecab ' 蜷崎ゥ・繧オ螟画磁邯・*,*,*,*,* DOS 蜷崎ゥ・荳闊ャ,*,*,*,*,* 窓 險伜捷,荳闊ャ,*,*,*,*,* ナ 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* ヘ 險伜捷,荳闊ャ,*,*,*,*,* A 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* 基本 險伜捷,荳闊ャ,*,*,*,*,* I 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* には日本語が 險伜捷,荳闊ャ,*,*,*,*,* A 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* 險伜捷,荳闊ャ,*,*,*,*,* E 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* 險伜捷,荳闊ャ,*,*,*,*,* g 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* 險伜捷,荳闊ャ,*,*,*,*,* ナ 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* キ 險伜捷,荳闊ャ,*,*,*,*,* ' 蜷崎ゥ・繧オ螟画磁邯・*,*,*,*,* 險伜捷,荳闊ャ,*,*,*,*,* @ 蜷崎ゥ・繧オ螟画磁邯・*,*,*,*,* EOS
文字化けは、コマンドプロンプトがUTF-8に対応していないからです。
Mecab自体は、UTF-8で動くように選択してインストールしました。
とにかく、機能的には問題ないようです。
PythonからMecabを利用する
PythonとMecabを連携させる
PythonとMecabを連携させる仲介役が必要です。
その仲介役を以下のコマンドでインストールします。
pip install mecab
次のように表示されれば、インストール成功です。
Installing collected packages: mecab Successfully installed mecab-0.996.2
PythonでMecabを動かす
以下のコードで動きを確認します。
import MeCab mecab = MeCab.Tagger() target_str = "DOS窓では、基本的には日本語がアウトです" print(mecab.parse(target_str))
実行結果に、以下のようなモノが表示されれば連携は成功です。
つまり、PythonからMecabを利用できているということです。
DOS 名詞,固有名詞,組織,*,*,*,* 窓 名詞,一般,*,*,*,*,窓,マド,マド で 助詞,格助詞,一般,*,*,*,で,デ,デ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 、 記号,読点,*,*,*,*,、,、,、 基本 名詞,一般,*,*,*,*,基本,キホン,キホン 的 名詞,接尾,形容動詞語幹,*,*,*,的,テキ,テキ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 日本語 名詞,一般,*,*,*,*,日本語,ニホンゴ,ニホンゴ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ アウト 名詞,一般,*,*,*,*,アウト,アウト,アウト です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス EOS
これでPythonからMecabを利用することができました。
ここで終了と言ってもよいのですが、次で辞書の変更について説明します。
Pythonで利用するMecabの辞書を変更する
Mecabは、辞書をもとに形態素解析を行っています。
そして、その精度は辞書に依存すると行っても過言ではありません。
現状では、デフォルトの辞書を用いています。
このデフォルトの辞書をもっと良い辞書に変更します。
良い辞書とは、形態素解析の精度が上がる辞書と言えますね。
ただ、Windowsでは少々手間のかかる作業となります。
そもそも、Mecab自体がWindowsでの利用を想定していません。
だから、手間がかかるということですね。
必要な作業は以下。
- Ubuntuのインストール
- mecab-ipadic-NEologd辞書のダウンロード
- mecab-ipadic-NEologd辞書ファイルのコンパイル
下記でそれぞれを説明してきます。
Ubuntuのインストール
WindowsにUbuntuをインストールします。
そのインストールしたUbuntu上で作業をしようということです。
以下のページ通りに行えば、インストール可能です。
https://qiita.com/whim0321/items/093fd3bb2dd287a72fba
追記 2021年1月11日
「Windows上に直接Ubuntuをインストールするのは嫌だな~」と思う方は、以下のやり方もあります。
mecab-ipadic-NEologd辞書のダウンロード
ダウンロードする場所は、Ubunts側で適当に決めてください。
今回は、/opt/mecabとします。
以下のコマンドで移動可能です。
cd /opt/mecab
ここでダウンロードを開始します。
sudo git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
ダウンロードに少し時間がかかります。
ダウンロードが完了したら、/opt/mecabに「mecab-ipadic-neologd」ディレクトリが作成されています。
mecab-ipadic-NEologd辞書ファイルのコンパイル
Mecabで利用できるように辞書を作成します。
ダウンロードしたのは、辞書を作成するための情報です。
Ubuntuでの作業です。
先ほどダウンロードしたディレクトリに移動します。
cd mecab-ipadic-neologd
mecabのインストール
コンパイルを行う前にやることがあります。
mecabのインストールです。
あと、関連するモノもインストールします。
sudo aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file
「Mecabはインストール済みだよ!!」という声があるでしょう。
でも、それはWindows上の話です。
コンパイルで必要になるのは、Ubuntu上のMecabなのです。
ここは割り切ってインストールしましょう。
インストール後は、以下のコマンド確認です。
mecab -v
辞書ファイルのコンパイル
次のコマンドを実行。
sudo ./bin/install-mecab-ipadic-neologd -n
インストールが開始されて、ズラズラとテキストが流れます。
しばらくすると、以下のように確認をしてきます。
もちろん、「yes」を入力してEnter。
さらに、ズラズラとテキストが流れます。
上図のような表示になれば、コンパイル成功です。
辞書ファイルが作成されました。
辞書ファイルの作成場所は、「/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd」とわかります。
Pythonで辞書指定によりMecabを利用する
辞書を作成しましたが、それはあくまでUbuntu上での話です。
Ubuntuで作成された辞書ファイルをWindows側で参照できるようにします。
辞書ファイルをコピーする
WindowsでMecabをインストールしたフォルダに「dic」フォルダが存在しています。
今回の場合であれば、C:\soft\MeCab\dicですね。
ここに「ipadic-neologd」フォルダを作成します。
この新しく作成したフォルダに辞書ファイルをコピーします。
cp /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/* /mnt/c/soft/MeCab/dic/ipadic-neologd
コピーが成功すれば、以下のようになります。
これでPython(Windows上)から、新たに作成した辞書を参照できるようになりました。
PythonでNEologd辞書を指定してMecabを利用する
「PythonからMecabを利用する」で使ったコードを修正します。
MeCab.Taggerに辞書を利用する記述を加えただけです。
import MeCab mecab = MeCab.Tagger('-d C:\soft\MeCab\dic\ipadic-neologd') target_str = "DOS窓では、基本的には日本語がアウトです" print(mecab.parse(target_str))
結果は以下。
DOS窓 名詞,固有名詞,一般,*,*,*,DOS窓,ドスマド,ドスマド で 助詞,格助詞,一般,*,*,*,で,デ,デ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 、 記号,読点,*,*,*,*,、,、,、 基本的 名詞,固有名詞,一般,*,*,*,基本的,キホンテキ,キホンテキ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 日本語 名詞,一般,*,*,*,*,日本語,ニホンゴ,ニホンゴ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ アウト 名詞,一般,*,*,*,*,アウト,アウト,アウト です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス EOS
「DOS窓」・「基本的」を名詞として認識できていますね。
こんな短い文章ですが、 NEologd辞書の方が優秀だと感じます。
MecabをインストールしてPythonで使う【Windows】のまとめ
そもそも、MecabはLinux系で利用するモノです。
Linuxだと、とても簡単に利用できます。
しかし、本記事ではMecabをWindowsのPythonで動かそうとしています。
だから、ここまで大変な作業になります。
でも、検証作業は普段利用しているWindowsで行いたいですよね。
その意味でも、Windows上でPythonからMecabを利用することに意義はあります。
ただ、本記事ではかなり丁寧に説明をしています。
インストールから、辞書作成まで。
よって、記事に通りに作業を行えば、それほど苦労はしないでしょう。
ただし、途中でUbuntuが出てくる違和感には、ある程度の我慢が必要かもしれません。
特にLinux系のOSに慣れていない方には。