Ruby/DL で Mecab を使う

mecab のサンプルにあった一番簡単そうなものを Ruby/DL で書いてみた。
お試し程度で使うなら Ruby/DL はいい方法かもね。

ソースコード

#!/usr/bin/ruby

require 'dl/import'

module Mecab
  extend DL::Importable
  
  dlload 'C:\Program Files\MeCab\bin\libmecab.dll'

  extern "mecab *mecab_new2(const char *)"
  extern "const char *mecab_sparse_tostr(mecab_t *, const char *)"
end

s = "太郎は次郎が持っている本を花子に渡した。"

mecab = Mecab.mecab_new2("")

result = Mecab.mecab_sparse_tostr(mecab, s)
puts "INPUT : [#{s}]"
puts "RESULT: [#{result}]"

出力結果

INPUT : [太郎は次郎が持っている本を花子に渡した。]
RESULT: [太郎   名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
次郎    名詞,固有名詞,人名,名,*,*,次郎,ジロウ,ジロー
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ
持っ    動詞,自立,*,*,五段・タ行,連用タ接続,持つ,モッ,モッ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
いる    動詞,非自立,*,*,一段,基本形,いる,イル,イル
本      名詞,一般,*,*,*,*,本,ホン,ホン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
花子    名詞,固有名詞,人名,名,*,*,花子,ハナコ,ハナコ
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ
渡し    動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。      記号,句点,*,*,*,*,。,。,。
EOS
]