どん底から這い上がるまでの記録

どん底から這い上がりたいけど這い上がれない人がいろいろ書くブログ(主にプログラミング)

mecab-ipadic-NEologdをWindowsで使ってみる。

 

Web上の言語資源から得た新語を追加することでカスタマイズした MeCab 用のシステム辞書のmecab-ipadic-NEologdWindowsで使えるようにしたので、その過程を書いていきます。

ちなみにUbuntuから利用するのではなくWindowsから直接使えるようにしました。

Ubuntu側でインストールした辞書をWindow側に移動させることによりWindow側のMeCabから利用することができるようになります。

環境

私の実行環境です。

mecab-ipadic-NEologdをインストールするにはMeCabが必要になります。

インストール方法は

・ https://www.pytry3g.com/entry/2018/04/24/143934#Windows

WSLのインストール

まずWSL(Windows Subsystem for Linux)をインストールします。

デスクトップ左下にあるWindowsのマークから

f:id:pytry3g:20180827175555p:plain

スタートメニューを開いて, powerで検索するとWindows PowerShellが出てくると思います。管理者権限PowerShellを開いて下のコマンドを実行します。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Ubuntuのインストール

次にUbuntuをインストールします。

WindowsからUbuntuを利用するには2通りの方法があるようです。

  1. Bash on Windowsから使う
  2. Microsoft StoreからUbuntuをインストール。

私は2の方法でやってみました。

デスクトップ左下にあるWindowsのマークから

f:id:pytry3g:20180827175555p:plain

スタートメニューを開いて

Microsoft Storeを開きます。

f:id:pytry3g:20180827175257p:plain

右上にある検索からUbuntuで検索すると画面中央下にいくつかのUbuntuが出てきます。 私はUbuntu18.04をインストールしました。

f:id:pytry3g:20180827175851p:plain

インストールが完了すると青色の起動ボタンが表示されるので、クリックして起動します。 すると、Windowsコマンドプロンプトに似たやつが起動されるのでそこでユーザ名やパスワードの設定をします。設定などに少々時間がかかるかもしれません。

MeCabUbuntuにインストール

UbuntuコマンドプロンプトからMeCabをインストールします。

起動中の画面↓↓↓

f:id:pytry3g:20180827181535p:plain

以下のコマンドを実行します。

$ sudo apt-get update
$ sudo apt install mecab
$ sudo apt install libmecab-dev
$ sudo apt install mecab-ipadic-utf8

これでMeCabのインストールは完了です。

mecab-ipadic-NEologdをUbuntuにインストール

次にmecab-ipadic-NEologdをインストールします。

Ubuntuコマンドプロンプトから以下のコマンドを実行します。

$ sudo apt install make
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git $ cd mecab-ipadic-neologd $ sudo bin/install-mecab-ipadic-neologd -n -a

これでmecab-ipadic-NEologdをUbuntuにインストールすることができました。(※少々時間がかかります。)

辞書をWindowsにコピペする

mecab-ipadic-NEologdをWindowから利用できるようにするために、Window側にコピペします。私の環境の場合、インストールされた辞書は/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/にあるのでここにあるファイルをWindow側の任意のディレクトリにコピペします。

私はCドライブ直下にneologdというディレクトリを作成してすべてのファイルをそこにコピペしました。

$ sudo cp /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/* /mnt/c/neologd/

ちなみに、このやり方はPermission deniedが出て失敗します。そこで私がとったやり方は、いったんファイルをデスクトップの任意のディレクトリにコピペします。そのあと直接そのディレクトリからC:\neologdに移動させました。

Windows側に移動させることができたのでわざわざC:\neologdに移動させる必要はありませんが、C:\neologdに移動させたほうがmecab-ipadic-NEologdを利用するときにパスを短くできるので移動させました。

テスト

mecab-ipadic-NEologd

Window側で使えるかどうか確認してみます。

import MeCab

tagger = MeCab.Tagger(r'-Owakati -d C:\neologd')
sample = "8月3日に放送された「中居正広の金曜日のスマイルたちへ」"
tagger.parse(sample)
# '8月3日 に 放送 さ れ た 「 中居正広の金曜日のスマイルたちへ 」 \n'

成功です(^^

-d で辞書のパスを指定している。

Tagger()の引数の先頭にをつけなければRuntimeErrorがでる。

(rはraw文字列のこと、文字列の先頭にrをつけることによりエスケープシーケンスを無効にします。)

通常版

通常のシステム辞書を使った場合。

import MeCab

tagger = MeCab.Tagger('-Owakati')
sample = "8月3日に放送された「中居正広の金曜日のスマイルたちへ」"
tagger.parse(sample)
# '8 月 3 日 に 放送 さ れ た 「 中居 正広 の 金曜日 の スマイル たち へ 」 \n'