読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

特徴語抽出を行うサンプル

Ruby Yahoo! Developer API

Yahoo! Developer APIのキーフレーズ抽出サービスを利用して、テキストから特徴語を抽出するサンプルです。といってもhttpclientでサービスにアクセスして結果を解析し返すだけですが・・・。

  • 依存モジュールとして「httpclient」が必要です。
  • また、実行時には、Yahoo! Developer APIのアプリケーションIDも必要になります。
require 'rubygems'
require 'httpclient'
require 'rexml/document'

module YahooDeveloperAPI
  
  class Client
    def initialize( appid, proxy=ENV["http_proxy"] )
      @appid = appid
      @client = HTTPClient.new( proxy, "client")
    end
    
    #テキストから特徴語を抽出する。
    #q:: テキスト
    #戻り値::  YahooDeveloperAPI::Keyphrase の配列
    def extract_keyphrase( q )
      result = @client.get( "http://jlp.yahooapis.jp/KeyphraseService/V1/extract?sentence=#{URI.encode(q)}&appid=#{@appid}" )
      phrases = []
      doc = REXML::Document.new(result.content)
      doc.elements.each("/ResultSet/Result") {|e|
        phrases << Keyphrase.new( e.text("Keyphrase"), e.text("Score").to_i )
      }
      return phrases
    end
  end
  # 特徴語
  Keyphrase = Struct.new( :keyphrase, :score  )
end

# サンプル
# 
client = YahooDeveloperAPI::Client.new( "<Yahoo! Developer APIのアプリケーションID>" )
query =  "東京ミッドタウンから国立新美術館まで歩いて5分で着きます。" 
client.extract_keyphrase(query).each{|phrase|
  puts "#{phrase.keyphrase} : #{phrase.score}"
}

実行結果です。

国立新美術館 : 100
東京ミッドタウン : 65
5分 : 9