« 期せずして地デジ対応 | トップページ | igo-rubyを作った経緯 »

2010年12月15日 (水)

形態素解析器IgoのRuby版を作った

Ruby解析結果がほぼMeCab互換のJavaおよびCommon Lispで実装された形態素解析器IgoのRuby版を作りました。

正確にはIgoのエンジン部分をRubyに移植しましたですけれども。

ソース

ソースはGitHubに公開
また、RubyGems.orgにgemを公開してあるので、インターネットに接続している環境ならRubyGemsでインストールできます。

インストール


コマンドラインで下記を入力。
$ gem install igo-ruby
igo-rubyは、別途Igoと同じ解析用辞書ファイルが必要です。(igo-pythonと同じ方式。ただし、igo-pythonの方は辞書ファイルの生成機能も実装予定とのことです。)

解析用辞書ファイルの生成方法については、Igoのページを参照してください。

使い方

Igo::Taggerクラスのコンストラクタに辞書ファイルが入ったディレクトリを指定して、parseメソッドを呼び出します。

require 'rubygems'
require 'igo-ruby'
tagger = Igo::Tagger.new('../../ipadic') # 解析用辞書のディレクトリを指定
t = tagger.parse('吾輩は猫である。名前はまだ無い。')
t.each{|m|
puts "#{m.surface} #{m.feature} #{m.start}"
}
実行結果は以下のようになります。
吾輩 名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ 0
は 助詞,係助詞,*,*,*,*,は,ハ,ワ 2
猫 名詞,一般,*,*,*,*,猫,ネコ,ネコ 3
で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ 4
ある 助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル 5
。 記号,句点,*,*,*,*,。,。,。 7
名前 名詞,一般,*,*,*,*,名前,ナマエ,ナマエ 8
は 助詞,係助詞,*,*,*,*,は,ハ,ワ 10
まだ 副詞,助詞類接続,*,*,*,*,まだ,マダ,マダ 11
無い 形容詞,自立,*,*,形容詞・アウオ段,基本形,無い,ナイ,ナイ 13
。 記号,句点,*,*,*,*,。,。,。 15
分かち書きもできます。
t = tagger.wakati('どこで生れたかとんと見当がつかぬ。')
puts t.join(' ')

# 実行結果
どこ で 生れ た か とんと 見当 が つか ぬ 。
詳細はREADMEを参照のこと。

サンプルウェブアプリ

igo-rubyをライブラリとして利用したRailsのウェブアプリ(サンプル)も作りました。こちらで公開しております。

動作確認環境

下記環境で確認済みです。

  • Windows(XP)
  • Linux(CentOS)
  • Mac OS X(10.6系)

謝辞

igo-rubyは本家Igoと、そのPython実装であるigo-pythonのソースをできるだけそのまま移植したものです。
先人達の知恵に超感謝いたします。

|

« 期せずして地デジ対応 | トップページ | igo-rubyを作った経緯 »

Ruby」カテゴリの記事

コメント

使わせていただきました。ありがとうございます。
ところでこれって解析対象の文字列はUTF-8決め打ちですよね?

投稿: | 2011年1月31日 (月) 23:42

>使わせていただきました

あわわ。ありがとうございます。

UTF-8決め打ちです。
READMEかどこかに書いとかなきゃって思ってたんですがスッカリ失念してました。

Macや最近のLinuxなら、ターミナルの文字コードはデフォルトでUTF-8のはずなので、問題ないと思うんですけど、Windowsだと文字化けしちゃいますね…。

やっぱり、どこかに書いておかないとなぁ。

投稿: kyow | 2011年2月 2日 (水) 21:50

igo-rubyのインストールはとても簡単で、感動しました
が、igoの辞書インストールがわかりません
どこをどう探してもlinux用のコマンド例しか掲載されておらず、windowsでの方法がわかりません。

詳しく解説して頂けないでしょうか?

投稿: | 2011年3月 6日 (日) 14:56

javaの実行はlinuxもWindowsもそんなに変わらないので、同じように辞書を生成することができます。
下記を参照ください。
http://igo.sourceforge.jp/

自分はWindows環境で辞書を生成しましたので、ご安心ください。

投稿: kyow | 2011年3月 9日 (水) 19:55

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 形態素解析器IgoのRuby版を作った:

« 期せずして地デジ対応 | トップページ | igo-rubyを作った経緯 »