(2013年12月)VMware Player上のCentOSにChaSenとCabochaをインストールした

環境構築って意外と時間がかかるのよね。

大学の自然言語処理で、形態素解析ChaSen係り受け解析器CaboChaを使う課題が出たので、そのための環境構築をしました。

要件

  • VMware Player上でCentOSを動かす
  • 設定変更やインストールに失敗したりしておかしくなったときに無かったことにできるようにスナップショット機能を導入する
  • ホストマシン(Windows)とファイルを共有できるようにする
  • 文字コードUTF-8とする(本当はEUC-JPにしたかったんだけど、CentOSのデフォルト文字コードをそれにするとVMware Playerが強制終了するからやむを得ず…)
  • CentOSChaSenとCabochaを使えるようにする

バージョン

  • VMware Player : 6.0.1 build-1379776
  • CentOS : 6.4
  • ChaSen : 2.4.5
  • ipadic : 2.7.0
  • iconv : 2.12
  • Darts : 0.32
  • CaboCha : 0.66
  • CRF++ : 0.58
  • MeCab : 0.996
  • MeCab-ipadic : 2.7.0-20070801

CentOS 6.4を仮想マシンにインストール

VMware Player上へのCentOSのインストールを参考に。

仮想マシンとホストマシンのファイル共有設定

VM上のCentOSとホストOS(Windows7)とでファイル共有したメモ - MofuMofuFarmを参考に。 VMware Toolsのインストールは必要なし。

共有フォルダには次のコマンドで移動できる。

cd /mnt/hgfs/share

Virtual Machineフォルダをまるごとコピーしてバックアップしておく

NHM(次のステップで導入)も不安定で、何かおかしくなったときにOSのインストールからやり直すのは嫌だから。

VMware Playerにスナップショット機能を付ける

VMware Playerへの簡易的なスナップショット機能を追加する方法についてのまとめ 【NHMのインストール方法及び使い方について】 : ネットセキュリティブログを参考にNHMのダウンロードと設定を済ます。以下、各ステップ終了毎にスナップショットを保存しておく。

CentOSの日本語化(UTF-8)

Server World - ネットワークサーバー構築を参考に。

形態素解析ChaSenのインストール

ChaSenのインストールにはiconvとDartsが必要なので、まずはそれから。そしてChaSenと辞書ファイルをインストールする。

libiconvのインストール

下記コマンドでシステムに既にインストールされていることを確認。

$ which iconv
/usr/bin/iconv
$ iconv -V
iconv (GNU libc) 2.12
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
これはフリーソフトウェアです。利用許諾についてはソースをご覧ください。
商業性や特定の目的への適合性の如何に関わらず、無保証です。
作者: Ulrich Drepper.

Darts 0.32 のインストール

Acchannel あっチャンネル: 茶筌chasen-2.4.2, Darts 0.31, UniDic1.3.5のインストールを参考に。

$ cd /tmp
$ wget http://chasen.org/~taku/software/darts/src/darts-0.32.tar.gz
$ cd darts-0.32
$ ./configure

ここで次のエラーが出たので

checking how to run the C++ preprocessor... /lib/cpp
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.

gcc-c++をインストールする。

$ su
# yum install gcc-c++

Dartsのコンパイルとインストールを再開。

# ./configure
# make
# make install

ChaSen 2.4.5 のインストール

wgetだとダメだったので、Firefoxhttp://sourceforge.jp/projects/chasen-legacy/downloads/56305/chasen-2.4.5.tar.gz/を開いてchasen-2.4.5.tar.gzをダウンロードしておく。

$ cd 
$ cd Downloads/
$ cp chasen-2.4.5.tar.gz /tmp
$ cd /tmp
$ tar xvzf chasen-2.4.5.tar.gz 
$ cd chasen-2.4.5
$ ./configure 
$ make check
$ su
# make install

ChaSen用の辞書を作成

インストール/Chasenのインストール | GETAssocを参考に日本語辞書ipadic-2.7.0をインストールする。

ChaSenの動作確認

ChasenをUTF-8環境で使いたい。 - 日常のメモ帳CentOSにChaSenをインストール - Scrap tmpcによれば、UTF-8の場合は毎回-iwオプションをつけなきゃいけないらしい。

$ vi test.txt
今日は雨でしたね。
$ chasen -iw test.txt
今日 キョウ 今日 名詞-副詞可能
は ハ は 助詞-係助詞
雨 アメ 雨 名詞-一般
でし デシ です 助動詞 特殊・デス 連用形
た タ た 助動詞 特殊・タ 基本形
ね ネ ね 助詞-終助詞
。 。 。 記号-句点
EOS

日本語係り受け解析器CaboChaのインストール

cabocha - Yet Another Japanese Dependency Structure Analyzer - Google Project Hostingに従ってインストールする。まずCRF++、MeCabmecab-ipadicをインストールしてからCaboChaをインストールする。

CRF++のインストール

CRF++: Yet Another CRF toolkitの'Installation'を参考に。

$ cd /tmp
$ wget https://crfpp.googlecode.com/files/CRF%2B%2B-0.58.tar.gz
$ tar xzf CRF++-0.58.tar.gz 
$ cd CRF++-0.58
$ ./configure
$ make
$ su
# make install

MeCabのインストール

MeCab: Yet Another Part-of-Speech and Morphological Analyzerを参考に。

$ cd /tmp
$ wget http://mecab.googlecode.com/files/mecab-0.996.tar.gz
$ tar zxfv mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure --with-charset=utf8 --enable-utf8-only
$ make
$ make check
$ su
# make install

mecab-ipadicのインストール

$ cd /tmp
$ wget https://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
$ tar xzf mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure --with-charset=utf8
$ make
$ su
# make install

CaboChaのインストール

$ cd /tmp
$ wget https://cabocha.googlecode.com/files/cabocha-0.66.tar.bz2
$ bzip2 -dc cabocha-0.66.tar.bz2 | tar xvf -
$ cd cabocha-0.66
$ ./configure --with-charset=UTF-8
$ make
$ make check
$ su
# make install

でやったら次のエラーが出たので、

$ cabocha
morph.cpp(179) [charset() == decode_charset(dinfo->charset)] Incompatible charset: MeCab charset is utf8, Your charset is EUC-JP

いったん/tmp/cabocha-0.66フォルダを削除してから simplenlp/simplenlp/ja_cabocha/README.txt at master · commonsense/simplenlp · GitHubを参考に以下のようにインストールしたら成功した。

$ cd /tmp
$ bzip2 -dc cabocha-0.66.tar.bz2 | tar xvf -
$ cd cabocha-0.66
$ ./configure --with-mecab-config=`which mecab-config` --with-charset=UTF8
$ make
$ make check
$ su
# make install

使い方

$ chasen -iw -o outputfile inputfile
$ cabocha -n1 -o outputfile inputfile
$ cabocha -f1 -n1 -o outputfile inputfile