動かざることバグの如し

近づきたいよ 君の理想に

Rubyを使ってCabochaで文節区切りを行う

環境

CRF++のインストール

CRF++: Yet Another CRF toolkitからソースをダウンロードしてコンパイル&インストール

tar xzvf CRF++-0.58.tar.gz
cd CRF++-0.58/
./configure 
make
sudo make install
sudo ldconfig

Cabochaのインストール

CaoboCha: Yet Another Japanese Dependency Structure Analyzerからソースをダウンロード

tar xzvf cabocha-0.69.tar.gz
cd cabocha-0.69/
./configure --with-charset=utf8
make
make check
sudo make install

確認しておく

user@ubuntu:~$ echo "一郎は二郎を描いた絵を三郎に贈った。" | cabocha
  一郎は---------D
    二郎を-D     |
      描いた-D   |
          絵を---D
          三郎に-D
          贈った。
EOS

Rubyで使えるように

cabocha-rubyを使うと楽(でもない)

require 'cabocha'
cabocha = CaboCha::Parser.new
sentence = "この記事は最終更新日から1年以上が経過しています。"
p cabocha.parseToString(sentence).force_encoding("utf-8").gsub(/[ -|D]/,'').split("\n")

結果

["この", "記事は", "最終更新日から", "1年以上が", "経過しています。", "EOS"]