キーワード検索機能をRubyで簡単に使える、KaeruKeywordを公開しました
ここで紹介しているライブラリの最新版はWordScoopという名前に変更されています。詳細はこちら( WordScoop ver2.0.0をリリースしました。)。
このブログ、kaeruspoonには、はてなダイアリーキーワードと同じような機能( かえるキーワード)があります。昨日、その内容を社内勉強会(スライドは slideshareに)で発表したのですが、そのコアとなるクラスKaeruKeywordをRubyForgeで公開しました。クラス自体の大きさ40行くらいの小さなものです。
これを使うと、ある文章の中にどんなキーワードが含まれているかを検出することができるようになります。6000字程度の文章の中から登録しておいた20万のキーワードを探し出すのにかかる時間はだいたい0.01秒くらいです。個人で使うには十分な性能だと思います。
- KaeruKeywordのインストール
sudo gem install kaerukeyword
- require
日本語を使うときは$KCODE等で環境を整えておいてください。
$KCODE="u"
require 'rubygems'
require 'kaerukeyword'
- キーワードの登録
キーワードはインスタンス作成時に配列で渡してあげます。
keywords = KaeruKeyword.new(["Ruby", "Rails"])
あとからキーワードを追加することもできます。
keywords << "おおいし"
4.キーワードの検出
文章を渡してあげると、文章に存在していたキーワードを配列として返します。同じキーワードが2回登場したときは、返る配列にもそのキーワードが2つ含まれます。出現頻度もこれで計算できると思います。
keywords.search("ぼくはRubyがすき。I Love Ruby and Rails!")
#=> ["Ruby", "Ruby", "Rails"]
どうでもいいことだけど、RugyForgeを使ったのは初めてでした。gemが使えるようになるので便利ですね。登録は secondlifeさんの記事を参考にしました。