Windowsにおけるmecab-ipadic-NEologdの利用

データ分析

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パターンが考えられます。

  1. WSL 2(Windows Subsystem for Linux 2)をインストールする
  2. Linuxを別マシンで構築する
  3. 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で作成した辞書を読み込めていますね。

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