Windows上で形態素解析エンジンMeCabを使うにはWindows版のMeCabをインストールする方法と、DocekerやWSLなどの仮想環境のLinux上でmecabをインストールする方法があります。今回は、WSLでソースコードからMeCabをインストールする方法をまとめみます。
形態素解析エンジンmecabについて
「MeCab」は『京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジン』です。(公式ページ)
私の過去のブログでDockerを使ってmecabの環境構築方法をまとめています。ubuntuでaptコマンドで簡単にインストール可能ですので、Dockerが使える環境であればそちらが簡単です。今回はDockerの環境構築が面倒な場合でも場合でもできるWSL環境でのインストールを試してみます。下にWSL2の導入方法とDockerでのmecabの導入方法の記事のリンクを貼っておきます。Dockerを使うためには多分WSL環境を設定する必要があるので、WSLの設定はする必要はあるかと思います。。。
参考:Windows11へのLinux環境の構築(WSL2の設定)
参考:Dockerで日本語形態素解析エンジンMeCabのPython開発環境を構築
MeCabをソースコードからインストールする手順
以下の手順でインストールしていきます。
- MeCabのソースコードと辞書ファイルをダウンロード
- ダウンロードしたファイルを解凍
- MakeFileの生成
- MeCabのコンパイル
- MeCabのインストール
今回は、上記に加えて、辞書ファイルの文字コードをWindowsと相性の良いUTF-8に変換します。
MeCabのソースコードと辞書ファイルのダウンロード
MeCabの公式サイトから、ソースコードとIPA辞書ファイルをダウンロードします。
ソースコード:mecab-0.996.tar.gz
IPA辞書:mecab-ipadic-2.7.0-20070801.tar.gz
ダウンロードしたファイルはエクスプローラーなどで、WSL環境のhomeディレクトリなど、分かりやすいところにコピーします。下の例では、WSLで作成した「Ubuntu2」という環境のディレクトリを開いたところです。
MeCabのインストール
では、WSLのターミナルからMeCabのインストールをしてきます。まず、前準備として、makeコマンドなどを実施するためのビルドツールと、辞書をUTF-8に変換するための文字コード変換ツールnkfをインストールします。まず、「apt-get update」でパッケージリストとそれらのインストールをaptコマンドで実施します。「Permission denied」のエラーが起こる場合は、先頭に「sudo」を付けます。(以下も同様)
$ sudo apt-get update
$ sudo apt install build-essential
$ sudo apt-get install nkf
続いて、ダウンロードしたMeCabのtarファイルの保存しているディレクトにいって、tarファイルを解凍します。今回はhomeの下にmecabというディレクトリを作成し、その中に入れています。
解凍すると「mecab-0.996」というディレクトリの中に解凍されるので、cdコマンドで移動して中を確認してみます。
(base) home@DESKTOP-0BCJOPC:~/mecab$ ls
mecab-0.996.tar.gz mecab-ipadic-2.7.0-20070801.tar.gz
(base) home@DESKTOP-0BCJOPC:~/mecab$ sudo tar zxfv mecab-0.996.tar.gz
(base) home@DESKTOP-0BCJOPC:~/mecab$ ls
mecab-0.996 mecab-0.996.tar.gz mecab-ipadic-2.7.0-20070801.tar.gz
(base) home@DESKTOP-0BCJOPC:~/mecab$ cd mecab-0.996
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-0.996$ ls
AUTHORS GPL Makefile.in aclocal.m4 config.sub example mecab-config.in mkinstalldirs
BSD INSTALL Makefile.train config.guess configure install-sh mecab.iss.in src
COPYING LGPL NEWS config.h.in configure.in ltmain.sh mecabrc.in swig
ChangeLog Makefile.am README config.rpath doc man missing tests
引き続いて、公式ホームページの説明に従って「./configure」で、Makefileを生成します。
また、つづいて、コンパイルを実施し、インストールします。mecabを確認したときに、下記のように辞書(libmecab)がないと怒られたら、インストールが成功です。
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-0.996$ sudo ./configure
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-0.996$ sudo make
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-0.996$ sudo make check
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-0.996$ sudo make install
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-0.996$ mecab -v
mecab: error while loading shared libraries: libmecab.so.2: cannot open shared object file: No such
file or directory
辞書ファイルのインストール
再びダウンロードしたtarファイルのある場所に戻り、今度は辞書を解凍します。
解凍後、nkfでutf-8に文字コードを上書きします。次いで、辞書ファイルのディレクトリに入ります。
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-0.996$ cd ..
(base) home@DESKTOP-0BCJOPC:~/mecab$ ls
mecab-0.996 mecab-0.996.tar.gz mecab-ipadic-2.7.0-20070801.tar.gz
(base) home@DESKTOP-0BCJOPC:~/mecab$ sudo tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
(base) home@DESKTOP-0BCJOPC:~/mecab$ nkf --overwrite -w mecab-ipadic-2.7.0-20070801/*
(base) home@DESKTOP-0BCJOPC:~/mecab$ cd mecab-ipadic-2.7.0-20070801/
その中の「dicrc」をメモ帳などでひらいて、config-charsetをEUC-JPからUTF-8に書き換えます。
;
; Configuration file of IPADIC
;
; $Id: dicrc,v 1.4 2006/04/08 06:41:36 taku-ku Exp $;
;
cost-factor = 800
bos-feature = BOS/EOS,*,*,*,*,*,*,*,*
eval-size = 8
unk-eval-size = 4
config-charset = UTF-8
(以下、略)
configureを実行して「Makefile」を作成します。
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-ipadic-2.7.0-20070801$ sudo ./configure
作成した「Makefile」の252行目付近にある文字コード設定部分のEUC-JPとeuc-jpをそれぞれ、UFT-8とutf-8に書き換えます
(252行目付近) matrix.bin char.bin sys.dic unk.dic: $(mecab_dict_index) -d . -o . -f UTF-8 -t utf-8
引き続き、「ldconfig」により共有ファイルを認識させた後、「make」と「make install」でコンパイルとインストールをします。「mecab -v」でMeCab0.906がインストールされていることを確認します。
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-ipadic-2.7.0-20070801$ sudo ldconfig
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-ipadic-2.7.0-20070801$ sudo make
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-ipadic-2.7.0-20070801$ sudo make install
(base) home@DESKTOP-0BCJOPC:~/mecab/mecab-ipadic-2.7.0-20070801$ mecab -v
mecab of 0.996
MeCabのテストとPython下での使用
では、MeCabを使ってみます。直接、「mecab」と入力するとMeCabが起動し、そこに日本語を入力すると、形態素解析をしてくれます。
(base) home@DESKTOP-0BCJOPC:~/test$ mecab
私は学校まで歩いていきます。
私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
学校 名詞,一般,*,*,*,*,学校,ガッコウ,ガッコー
まで 助詞,副助詞,*,*,*,*,まで,マデ,マデ
歩い 動詞,自立,*,*,五段・カ行イ音便,連用タ接続,歩く,アルイ,アルイ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
いき 動詞,非自立,*,*,五段・カ行促音便,連用形,いく,イキ,イキ
ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。 記号,句点,*,*,*,*,。,。,。
EOS
また、Pythonで使うためにはMeCabのPythonのラッパーである「mecab-python3」をインストールする必要があります。pipコマンドなどでライブラリをインストールします。
(base) home@DESKTOP-0BCJOPC:~$ pip install mecab-python3
使用方法はMeCab.Tagger()で作ったオブジェクトにparseでテキストを与えると形態素解析をしてくれます。
import MeCab
tagger = MeCab.Tagger()
text = "MeCabは有用な形態素解析のツールです。"
print(tagger.parse(text))
MeCab 名詞,固有名詞,組織,*,*,*,* は 助詞,係助詞,*,*,*,*,は,ハ,ワ 有用 名詞,形容動詞語幹,*,*,*,*,有用,ユウヨウ,ユーヨー な 助動詞,*,*,*,特殊・ダ,体言接続,だ,ナ,ナ 形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ 解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ の 助詞,連体化,*,*,*,*,の,ノ,ノ ツール 名詞,一般,*,*,*,*,ツール,ツール,ツール です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス 。 記号,句点,*,*,*,*,。,。,。 EOS
コメント