形態素解析器IgoのRuby版を作った
解析結果がほぼMeCab互換のJavaおよびCommon Lispで実装された形態素解析器IgoのRuby版を作りました。
正確にはIgoのエンジン部分をRubyに移植しましたですけれども。
ソース
ソースはGitHubに公開。
また、RubyGems.orgにgemを公開してあるので、インターネットに接続している環境ならRubyGemsでインストールできます。
インストール
コマンドラインで下記を入力。
$ gem install igo-rubyigo-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('どこで生れたかとんと見当がつかぬ。')詳細はREADMEを参照のこと。
puts t.join(' ')
# 実行結果
どこ で 生れ た か とんと 見当 が つか ぬ 。
サンプルウェブアプリ
igo-rubyをライブラリとして利用したRailsのウェブアプリ(サンプル)も作りました。こちらで公開しております。
動作確認環境
下記環境で確認済みです。
- Windows(XP)
- Linux(CentOS)
- Mac OS X(10.6系)
謝辞
igo-rubyは本家Igoと、そのPython実装であるigo-pythonのソースをできるだけそのまま移植したものです。
先人達の知恵に超感謝いたします。
| 固定リンク
「Ruby」カテゴリの記事
- igo-ruby 0.1.3(2011.02.11)
- 複数バージョンのRubyをRVMで管理する(2011.02.09)
- igo-rubyの性能(2011.01.08)
- RubyGemsの命名規約(2010.12.17)
- igo-rubyを作った経緯(2010.12.16)
この記事へのコメントは終了しました。
コメント
使わせていただきました。ありがとうございます。
ところでこれって解析対象の文字列は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