RCaBoChaの64bit版が公開されたので試してみた

前回、CaBoChaのインストールまで完了して、いざRCaBoChaを入れようと思ったら、64bit版がない!という悲しい状態でしたが、開発者のishidaさんにお願いしたところ、2日ほどで対応してくれました。ありがとうございます。

さて、公開されたのは、最新版のRのものなので、まず、Rのバージョンアップ。

環境

$ uname -aLinux localhost.localdomain 2.6.29.4-167.fc11.x86_64 #1 SMP Wed May 27 17:27:08 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

$ rpm -qa | grep rpm
rpm-libs-4.7.1-3.fc11.x86_64
rpm-build-4.7.1-3.fc11.x86_64
rpm-python-4.7.1-3.fc11.x86_64
deltarpm-3.4-18.fc11.x86_64
rpm-devel-4.7.1-3.fc11.x86_64
rpm-4.7.1-3.fc11.x86_64

最新版のrpmファイルの作成

  • Rの最新版のソースとsrc.rpmファイルを取ってくる
$ wget 
$ wget http://download.fedora.redhat.com/pub/fedora/linux/updates/11/SRPMS/R-2.10.0-2.fc11.src.rpm
  • 展開
$ sudo rpm -i R-2.10.0-2.fc11.src.rpm

何故か/usr/src/redhatがなくて、~/rpmbuildってディレクトリが作成された。

$ sudo mkdir -p {BUILD,SRPMS,RPMS/{i386,i586,i686,noarch}}
  • SOURCESに、最新版を配置
$ sudo cp R-2.10.1.tar.gz ~/rpmbuild/SOURCES
  • SPECファイルの修正

ヘッダ部分のVersionを、2.10.1に変更する

Name: R
Version: 2.10.0
Release: 2%{?dist}

Name: R
Version: 2.10.1
Release: 2%{?dist}
  • rpmファイル作成

以下のパッケージが必要と言われたのでインストール。

$ sudo yum install texinfo-tex libjpeg-devel readline-devel blas lapack-devel libSM-devel libICE-devel libXt-devel libXmu-devel libtiff-devel gcc-objc pango-devel libicu-devel
$ sudo rpmbuild -ba --sign R.spec
  • yumでインストール
$ cd ../RPMS/x86_64/
$ ls 
R-2.10.1-2.fc11.x86_64.rpm        R-java-devel-2.10.1-2.fc11.x86_64.rpm
R-core-2.10.1-2.fc11.x86_64.rpm   libRmath-2.10.1-2.fc11.x86_64.rpm
R-devel-2.10.1-2.fc11.x86_64.rpm  libRmath-devel-2.10.1-2.fc11.x86_64.rpm
R-java-2.10.1-2.fc11.x86_64.rpm

$ sudo yum install `ls`

================================================================================
 Package      Arch   Version         Repository                            Size
================================================================================
インストールしています:
 R-java       x86_64 2.10.1-2.fc11   /R-java-2.10.1-2.fc11.x86_64          0.0 
 R-java-devel x86_64 2.10.1-2.fc11   /R-java-devel-2.10.1-2.fc11.x86_64    0.0 
更新:
 R            x86_64 2.10.1-2.fc11   /R-2.10.1-2.fc11.x86_64               0.0 
 R-core       x86_64 2.10.1-2.fc11   /R-core-2.10.1-2.fc11.x86_64          63 M
 R-devel      x86_64 2.10.1-2.fc11   /R-devel-2.10.1-2.fc11.x86_64        323 k
 libRmath     x86_64 2.10.1-2.fc11   /libRmath-2.10.1-2.fc11.x86_64       603 k
 libRmath-devel
              x86_64 2.10.1-2.fc11   /libRmath-devel-2.10.1-2.fc11.x86_64 543 k
依存性関連でのインストールをします:
ecj          x86_64 1:3.4.2-4.fc11  fedora                               3.1 M
gcc-java     x86_64 4.4.1-2.fc11    updates                              4.1 M
java-1.5.0-gcj-devel              x86_64 1.5.0.0-28.fc11 fedora                                48 k
libgcj-devel x86_64 4.4.1-2.fc11    updates                              1.6 M
libgcj-src   x86_64 4.4.1-2.fc11    updates                               12 M

RCaBoChaのインストール

  • パッケージのダウンロード
  • パッケージのインストール
> install.packages("~/package/R/RCaBoCha_0.23_R_x86_64-unknown-linux-gnu.tar.gz")
> library(RCaBoCha)

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
   共有ライブラリ '/usr/lib64/R/library/RCaBoCha/libs/RCaBoCha.so' を読み込めません 
  libcabocha.so.4: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません 
 エラー:  'RCaBoCha' に対するパッケージもしくは名前空間のロードが失敗しました

ライブラリのパスが違うらしい。期待しているところにシンボリックリンクを貼る。

$ sudo ln -s  /usr/local/lib/libcabocha.so.4 /usr/lib64/libcabocha.so.4
$ sudo ln -s  /usr/local/lib/libcrfpp.so.0 /usr/lib64/libcrfpp.so.0

再度読み込み

> library(RCaBoCha)
  • RCaBoCha関数 : CaBocha の単純な出力を返す.
> RCaBoCha("それは面白い本であった。")
FROMAT_TREE =
       それは---D
        面白い-D
    本であった。
EOS
   Term1  Term2    POS D1 D2
1   それ   それ   名詞  1  2
2     は     は   助詞  1  2
3 面白い 面白い 形容詞  2  2
4     本     本   名詞  3 -1
5     で     だ 助動詞  3 -1
6   あっ   ある 助動詞  3 -1
7     た     た 助動詞  3 -1
8     。     。   記号  3 -1
  • RCaBoChaFreq関数 : 否定の係りを判定して頻度を測る
> RCaBoChaFreq("それは面白い本であった。しかしこの本に比べると面白くはない。")
string 2 = "ない" setted: length = 0 
          Term           Pos Freq
1           。          記号    2
2         ある        助動詞    1
3         この        連体詞    1
4       しかし        接続詞    1
5         それ          名詞    1
6           た        助動詞    1
7           だ        助動詞    1
8           と          助詞    1
9           に          助詞    1
10          は          助詞    1
11+ない   助詞+形容詞    1
12          本          名詞    2
13      比べる          動詞    1
14      面白い        形容詞    1
15 面白い+ない 形容詞+形容詞    1