キーワード検索機能をRubyで簡単に使える、KaeruKeywordを公開しました

Tsukasa OISHI

ここで紹介しているライブラリの最新版はWordScoopという名前に変更されています。詳細はこちら( WordScoop ver2.0.0をリリースしました。)。

 このブログ、kaeruspoonには、はてなダイアリーキーワードと同じような機能( かえるキーワード)があります。昨日、その内容を社内勉強会(スライドは slideshareに)で発表したのですが、そのコアとなるクラスKaeruKeywordをRubyForgeで公開しました。クラス自体の大きさ40行くらいの小さなものです。
 これを使うと、ある文章の中にどんなキーワードが含まれているかを検出することができるようになります。6000字程度の文章の中から登録しておいた20万のキーワードを探し出すのにかかる時間はだいたい0.01秒くらいです。個人で使うには十分な性能だと思います。

  1. KaeruKeywordのインストール
sudo gem install kaerukeyword
  1. require 日本語を使うときは$KCODE等で環境を整えておいてください。
$KCODE="u"
require 'rubygems'
require 'kaerukeyword'
  1. キーワードの登録 キーワードはインスタンス作成時に配列で渡してあげます。
keywords = KaeruKeyword.new(["Ruby", "Rails"])

あとからキーワードを追加することもできます。

keywords << "おおいし"

4.キーワードの検出
文章を渡してあげると、文章に存在していたキーワードを配列として返します。同じキーワードが2回登場したときは、返る配列にもそのキーワードが2つ含まれます。出現頻度もこれで計算できると思います。

keywords.search("ぼくはRubyがすき。I Love Ruby and  Rails!")
  #=> ["Ruby", "Ruby", "Rails"]

どうでもいいことだけど、RugyForgeを使ったのは初めてでした。gemが使えるようになるので便利ですね。登録は secondlifeさんの記事を参考にしました。