WindowsでMecabを使うことが多い人は、必見の内容です。
Windowsでは、mecab-ipadic-NEologdを動かすことができません。
このことにより、mecab-ipadic-NEologd辞書の更新が滞りがちです。
この記事では、上記問題を解決する方法を解説しています。
本記事の内容
- Windowsでmecab-ipadic-NEologdを利用する方法
- Linuxの準備
- Sambaによる共有フォルダの設定
- mecab-ipadic-NEologdのインストール
- 動作確認
それでは、上記に沿って解説していきます。
Windowsでmecab-ipadic-NEologdを利用する方法
最初に、全体像を説明しておきます。
前提として、mecab-ipadic-NEologdはWindowsにインストールできません。
LinuxやmacOSならインストール可能です。
そのため、Windowsでmecab-ipadic-NEologdを利用するには一工夫が必要となります。
工夫と言っても結論は同じです。
Linuxにmecab-ipadic-NEologdをインストール
↓
mecab-ipadic-NEologdで作成した辞書をWindowsに提供
結局は、この方法になります。
Windows単体で可能だとしても、環境的にかなり汚れそうです。
そこでLinuxを用意することになります。
Linuxの用意方法
用意の仕方は、以下の3パターンが考えられます。
- WSL 2(Windows Subsystem for Linux 2)をインストールする
- Linuxを別マシンで構築する
- Linuxを仮想環境で動かす
1のWSLは、問題が多いように感じます。
やはり、Windows上でソフトウェアのようにUbuntuを動かすのは無理があり過ぎます。
2は、大げさすぎます。
mecab-ipadic-NEologdのためだけには無駄があり過ぎです。
そうなると、3の仮想環境の利用が最適と言えます。
ただし、Windowsが動くマシンにそこそこのスペックが必要となります。
次に考えるべきポイントは、Windowsへの辞書の提供方法ですね。
Windowsへの辞書の提供方法
あえて提供と表現しています。
提供には、以下の二つが考えられます。
- コピー
- 共有
共有よりは、コピーの方が簡単そうです。
Linux上で作成した辞書をWindowsへコピーするだけに思えます。
コピーのやり方は、いろいろとあるでしょう。
でも、コピーする方法には致命的な欠陥があるのです。
ディスク容量を無駄に食うという点が、致命的と言えます。
あとは、辞書を更新した場合の処理も考えないといけません。
そうやって考えると、実はコピーの方が面倒で複雑です。
よって、共有する方法でWindowsへ辞書を提供します。
まとめ
全体的な考え方は、上記で説明しました。
具体的には、以下の作業を行っていきます。
- Linuxの準備
- Sambaによる共有フォルダの設定
- mecab-ipadic-NEologdのインストール
では、Linuxの準備から行っていきましょう。
Linuxの準備
Windows上に、仮想環境でLinuxを用意します。
詳細は、次の記事で解説しています。
簡単に説明すると、VirtualBoxで仮想環境を作ります。
でも、VirtualBoxは設定が面倒です。
そこで、その面倒な設定を自動でやってくれるVagrantを利用します。
Vagrantを利用すれば、簡単にLinuxをWindows上に用意できます。
次は、このLinux上に共有フォルダを用意しましょう。
そうすれば、Windowsに辞書を提供できるようになります。
Sambaによる共有フォルダの設定
Sambaのインストールは、次の記事が参考になります。
そして、Sambaを使って共有フォルダを設定します。
その設定については、次の記事でまとめています。
今回のような使い方であれば、公開共有フォルダで問題ないでしょう。
つまり、セキュリティを意識する必要はありません。
ここまで作業が進めば、あとはmecab-ipadic-NEologdのインストールです。
mecab-ipadic-NEologdのインストール
基本的には、次の記事通りにして問題ありません。
しかし、1点だけ追加の作業があります。
それは、辞書の作成先を変更するということです。
辞書の作成先を共有フォルダ以下に設定する必要があります。
そうじゃないと、辞書をコピーする必要が出てきます。
なお、lnコマンドでシンボリックリンクを張ることは意味がありません。
どうやら、Mecabがシンボリックリンクを読み込めないようです。
当初は、シンボリックリンクで対応できることを期待していました。
しかし、実際に検証すると動きません。
では、肝心の辞書の作成先の変更方法を説明します。
辞書の作成先の変更方法
以下のコマンドで現状の辞書の作成先を確認できます。
$ mecab-config --dicdir /usr/lib/x86_64-linux-gnu/mecab/dic
この設定を共有フォルダ以下に変更します。
/usr/bin/mecab-config
--dicdir) #echo ${prefix}/lib/x86_64-linux-gnu/mecab/dic echo /mnt/pubic/dic ;;
「/mnt/pubic/dic」は、共有フォルダ(/mnt/pubic)以下のパスとなります。
上記変更後にコマンドで確認します。
$ mecab-config --dicdir /mnt/pubic/dic
これで辞書の作成先の変更が完了です。
あとは、mecab-ipadic-NEologdをインストールするだけとなります。
まとめ
辞書作成が成功すると、以下のように辞書が作成されます。
$ ls /mnt/pubic/dic/mecab-ipadic-neologd char.bin dicrc left-id.def matrix.bin pos-id.def rewrite.def right-id.def sys.dic unk.dic
これをWindows側から確認してみます。
Windowsからも問題なくLinux上の辞書が見えています。
最後は、この辞書をWindows上のMecabから参照してみましょう。
動作確認
Python上のMecabから、作成した辞書を参照します。
Windows上のPythonでMecabを利用するには、以下の記事が参考となります。
なお、上記の記事ではWSLを利用して辞書を作成しています。
(この経験から、WSLが嫌いになりました。。。)
さて、動作確認に話を戻しましょう。
動作確認用のコードは、以下。
import MeCab mecab = MeCab.Tagger(r'-d \\192.168.33.80\test_pubic\dic\mecab-ipadic-neologd') target_str = "DOS窓では、基本的には日本語がアウトです" print(mecab.parse(target_str))
上記を実行すると、以下の結果が表示されます。
DOS窓 名詞,固有名詞,一般,*,*,*,DOS窓,ドスマド,ドスマド で 助詞,格助詞,一般,*,*,*,で,デ,デ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 、 記号,読点,*,*,*,*,、,、,、 基本的 名詞,固有名詞,一般,*,*,*,基本的,キホンテキ,キホンテキ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 日本語 名詞,一般,*,*,*,*,日本語,ニホンゴ,ニホンゴ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ アウト 名詞,一般,*,*,*,*,アウト,アウト,アウト です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス EOS
適切にmecab-ipadic-NEologdで作成した辞書を読み込めていますね。