おおいしつかさ


旅行とバイクとドライブと料理と宇宙が好き。
Ubie Discoveryのプログラマ。
Share:  このエントリーをはてなブックマークに追加

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

ここで紹介しているライブラリの最新版は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さんの記事を参考にしました。