HYT MachineWorks

やったこととか思いついたことをメモしておくブログです。

Windows Subsystem for Linux上のUbuntuでmecabとcabochaを使う

Windows Subsystem for Linuxとは

Windows上に直接Linuxの実行環境を作るものです。CreaterUpdateでは、Bash on Ubuntu on Windowsとして搭載されましたが、この度Windows10で、アップストアからubuntuとして利用可能になりました。これを使って、これまで仮想マシンと行ったり来たりをしながらしていたLinuxのソフトを直接使うことが出来ます。

 Ubuntuをインストールする

以下のサイトを参考にインストールを実施。

qiita.com

事前準備に必要なのは

  1. Windows Subsystem for Linuxの有効化
  2. Insider Programへの参加とwindowsのビルドバージョンの更新(これは今は要らないかも?)

1は言わずもがなですが、2は結構面倒で、Microsoftアカウントが必要でログインした状態じゃないとInsider Programに参加出来ませんでした。あと、私は受け取る頻度はスローにしてます。

ここまでできれば後は、アプリストアでインストールできるはず。

リポジトリの変更

インストール出来たら、更新するためにaptを使うことに なるとおもいますが。海外のサーバに取得に行くので遅いのでリポジトリの変更を行います。

$ sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list

これで、日本のサイトを参照するようになります。

mecabmecab-ipadic-NEologdをインストール

基本的には、mecab-ipadic-NEologdのサイトのBoWでの導入方法に従えばいいんですが、aptitudeが入ってないので

$ sudo apt-get aptitude install

をやってから、mecab-ipadic-NEologdのサイトにある手順でやれば自動的にmecabmecab-ipadic-NEologdもインストールされます。

github.com

ちなみに辞書の保存先は、

/usr/share/mecab/dic/mecab-ipadic-neologd/

なので、Windows側のMecabの辞書のフォルダが

C:\MeCab\dic\

であれば、

$ cp -r /usr/share/mecab/dic/mecab-ipadic-neologd/ /mnt/c/MeCab/dic/

windows側に辞書を持ってくることが出来ます。

CRF++とCaboChaのインストール

 ここから、CaboChaのインストールですが、まず先にCRF++とCaboChaは共にソースからコンパイルしインストールになります。なのでビルド環境を作成する必要があります。

$ sudo apt-get install build-essential

これで、準備完了です。CRF++とCaboChaはそれぞれ公式サイトからのリンク(Googleドライブ)にあるソースをダウンロードしてLinux側の適当なディレクトリに移します。

CRF++: Yet Another CRF toolkit

CaoboCha: Yet Another Japanese Dependency Structure Analyzer

まず、CRF++からインストール

$ tar -zxvf CRF++-0.58.tar.gz
$ cd CRF++-0.58/
$ ./configure
$ make
$ sudo make install

$ sudo ldconfig

 一番最後の ldconfigは、CRF++をインストールされることで新しいライブラリが作られるのでそれを有効にするのに必要です。やらないとcabochaのインストールでライブラリがないと言われてコケます。

次に、CaboChaのインストール

$ tar -jxvf cabocha-0.69.tar.bz2
$ cd cabocha-0.69/
$ ./configure --with-charset=utf8 --enable-utf8-only
$ make
$ make check
$ sudo make install

$ sudo ldconfig

./configureのときにutf-8を指定してあげないと辞書の文字コードとアンマッチが起こってエラーになります。あと、今回も最後にsudo ldconfigをしないとcabochaのライブラリを読み込めなくてエラーになります。

最後に、動作確認。

$cabocha
隣の客は柿喰う客だ
隣の-D
    客は-----D
          柿-D |
          喰う-D
              客だ
EOS

 大丈夫そうですね。疲れたので今回はここまで