Mushikago SDK for Ruby.

  • Homepage: http://www.mushikago.org/
  • Author: MiningBrownie
  • Copyright: 2011
  • License: Apache License, Version 2.0
  • Latest Version: 2.4.2
  • Release Date: Sep 14th 2012

概要

株式会社マイニングブラウニーが提供するmushikago web serviceを、Rubyから扱うためのライブラリです。

機能一覧

1.mitsubachiを利用する: mitsubachiはウェブサイトをクローリングするためのクラウドプラットフォームサービスです。 環境構築などの準備を一切必要とせず、ユーザーは簡易なスクリプトをmitsubachiサーバにアップロード するだけで、ウェブ上の欲しい情報を高速に収集し保存します。ユーザーは、少しの技術力とアイデアを持っていれば、新たなクローラビジネスを始める事ができます。

2.hotaruを利用する: hotaruとは、自然言語処理を行うSaaS型のサービスです。 hotaruは日本語や英語など、多言語の解析に対応でき、それらの機能を初期費用が掛からず安価なコストから利用できます。また、同じmushikagoのサービスであるmitsubachiを使って、ウェブ上のレビューやブログなどの文章を取得してhotaruで解析するといった様に、 mushikago内のサービスと連携しやすいことも大きな利点です。

3.hanamgriを利用する: hanamgriとは、さまざまなレイアウトのウェブページから特定のデータを抽出するサービスです。 webサイトの構成やレイアウトを意識することなく「欲しい項目」「欲しい項目の周辺にありそうなキーワード」「欲しい情報がありそうなURL」をhanamgriに渡すだけで利用できます。

インストール方法

Mushikago SDK for Rubyはgemを使ってインストールします。

$ gem install mushikago-sdk

(root権限が必要な場合はsudoを使ってください。)

使い方

mitsubachiを利用する

以下のコードでmitsubachiを利用することができます。 スクリプトファイルの記述方法はドキュメントを参照して下さい。

require 'rubygems' # ruby 1.9系では不要
require 'mushikago'

client = Mushikago::Mitsubachi::Client.new(:api_key => '<APIキー>', :secret_key => '<シークレットキー>')

project_name = 'sample_project'

# プロジェクト作成
client.project_create(project_name)

# スクリプトファイルデプロイ
client.script_deploy(project_name, 'sample.rb')

# クロール開始
client.http_fetch(project_name, 'http://www.mushikago.org/', 'sample.rb')

# クロール終了まで待機
sleep 1 until client.project_queues(project_name)['count'] == 0

# クロールログ確認
log_files = client.resource_list(project_name, :filter => 'log/stdout')

# ログファイルURL取得
log_files['files'].each do |file|
  ret = client.resource_get(project_name, file['name'])
  puts ret['url']
end

hotaruを利用する

以下のコードでhotaruを利用することができます。

require 'rubygems' # ruby 1.9系では不要
require 'mushikago'

client = Mushikago::Hotaru::Client.new(:api_key => '<APIキー>', :secret_key => '<シークレットキー>')

domain_name = 'sample_domain'

# ドメイン作成
client.domain_create(domain_name, 'english', :tags => ['negative', 'positive'])

# テキスト登録
client.text_put(domain_name, 'This is too bad.', ['negative'])
client.text_put(domain_name, 'This is very good.', ['positive'])

# 登録されたテキストの学習が完了するまでsleep
sleep 1 until client.text_list(domain_name)['texts'].all?{|text| text['status'] == 'complete'}

# クラス判定
result = client.classifier_judge(domain_name, 'good bye!')
puts result['tag']
# => positive

# 共起グラフ作成
result = client.collocation_create(domain_name, ['negative', 'positive'])
collocation_id = result['collocation_id']

# 共起グラフの作成が完了するまでsleep
sleep 1 until client.collocation_list(domain_name)['collocations'].all?{|col| col['status'] == 'error' || col['status'] == 'complete'}

# 共起語取得
result = client.collocation_get(domain_name, collocation_id, 'This')
puts result['words']
# => [{"word"=>"bad", "score"=>4.4986811569504646},
#     {"word"=>"good", "score"=>4.4986811569504646},
#     {"word"=>"too", "score"=>4.4986811569504646},
#     {"word"=>"very", "score"=>4.4986811569504646},
#     {"word"=>"is", "score"=>3.3137419313374643}]

APIキーとシークレットキーの設定方法

APIキーとシークレットキーは以下の方法でも設定することができます。

YAMLファイルを利用する場合

以下のYAMLファイルを用意します。


api_key:<APIキー>
secret_key:<シークレットキー>

以下のコードでYAMLファイルを読み込んで使用してください。

require 'rubygems' # ruby 1.9系では不要
require 'mushikago'

Mushikago.config.load(YAML.load(File.read('config.yml')))

client = Mushikago::Tombo::Client.new

環境変数を利用する場合

環境変数MUSHIKAGO_API_KEYとMUSHIKAGO_SECRET_KEYにそれぞれAPIキーとシークレットキーの設定を行います。


$ export MUSHIKAGO_API_KEY=<APIキー>
$ export MUSHIKAGO_SECRET_KEY=<シークレットキー>
require 'rubygems' # ruby 1.9系では不要
require 'mushikago'

client = Mushikago::Tombo::Client.new

変更履歴

  • Aug.27.12: 2.4.1 release
    • tomboのcapturesにstateがない件を修正
  • Aug.20.12: 2.4 release
    • tomboのdisplay_width対応
  • Aug.3.12: 2.2 release
    • mitsubachiのcookiejar対応
  • Jul.31.12: 2.1.1 release
    • tomboのuser_agent修正
  • May.30.12: 2.1.0 release
    • hanamgri(β)サポート
  • May.23.12: 2.0.0 release
    • hanamgriのベータサポート
  • Feb.20.12: 0.4.2 release
    • tomboのcaptureオプション「delay_time」に対応
  • Feb.20.12: 0.4.0 release
    • 新サービス「hotaru」対応
  • Feb.14.12: 0.3.7 release
    • Multipartでアップロードするファイルの最後に改行が付与される件修正
  • Jan.27.12: 0.3.6 release
    • resource_get,script_getに:with_bodyオプション追加
  • Jan.27.12: 0.3.4 release
    • 数字を含むリクエストの不具合に対応
  • Jan.26.12: 0.3.2 release
    • mitsubachiに対応
  • Sep.13.11: 0.2.3 release
    • captureメソッドのuseragentに対応
  • Sep.8.11: 0.2.1 release
    • ライセンスをApache License, Version 2.0に変更
  • Sep.6.11: 0.1.8 release
    • Mushikago SDK for Ruby新規作成
    • Tombo サポート