はじめに
FNLP (FudanNLP)は、Javaで書かれた中国語形態素解析器です。これを使ってRuby (JRuby)で中国語形態素解析をやってみます。
準備
次のソフトウエアのインストールが必要です。JRubyは、私はrbenv経由で使いました。
- FNLP (「FNLPで中国語形態素解析」を参照)
- JRuby
- fnlp-jruby Gem
fnlp-jrubyのインストール
fnlpをJRubyから使うGemを、bundlerを使ってインストールします。
Gemfile
gem "fnlp", github: "xiaotuanzi/fnlp-jruby"
Gemのインストール
$ jruby -S bundle install
形態素解析の実行
前もって、FNLPがインストールされているディレクトリを環境変数に設定しておきます。
$ export FNLP_HOME=~/fnlp
Rubyプログラム
sample.rb
require 'bundler/setup'
require 'fnlp'
# サンプルテキスト
text = <<EOF
妈妈亲了我, 爸爸也亲了我。
我去过好几次北京。
这本书是我借给他的。
你想去哪儿我就去哪儿。
党叫干啥就干啥。
EOF
# 形態素解析器を準備する
fnlp = FNLP::Tokenizer.new
# サンプルテキストを1行毎に形態素解析して結果を表示する
text.each_line do |t|
puts fnlp.tokenize(t.chomp)
puts ""
end
jrubyで実行します。次のような出力が得られます。単語のうしろに品詞も表示されます。
$ jruby sample.rb
妈妈/名词
亲/动词
了/时态词
我/人称代词
,/标点
爸爸/名词
也/副词
亲/动词
了/时态词
我/人称代词
。/标点
我/人称代词
去/动词
过/时态词
好几/数词
次/量词
北京/地名
。/标点
这/限定词
本/量词
书/名词
是/动词
我/人称代词
借给/动词
他/人称代词
的/语气词
。/标点
你/人称代词
想/情态词
去/动词
哪儿/疑问代词
我/人称代词
就/副词
去/动词
哪儿/疑问代词
。/标点
党叫干/名词
啥/副词
就/副词
干啥/动词
。/标点
最後の、「党叫干啥就干啥」以外は、概ね正しいように見えます。