Class: Mushikago::Hanamgri::Client

Inherits:
Mushikago::Http::Client show all
Defined in:
lib/mushikago/hanamgri/client.rb

Overview

Hanamgriサービスを利用する

Examples:

client = Mushikago::Hanamgri::Client.new(:api_key => '<api_key>', :secret_key => '<secret_key>')

APIキーをファイルから読み込む場合

Mushikago.config.load(YAML.load(File.read('config.yml')))
client = Mushikago::Hanamgri::Client.new

Instance Attribute Summary

Attributes inherited from Mushikago::Http::Client

#api_key, #signer, #use_ssl

Instance Method Summary collapse

Methods inherited from Mushikago::Http::Client

#initialize, #send_request

Constructor Details

This class inherits a constructor from Mushikago::Http::Client

Instance Method Details

#create_domain(domain_name, seeds, schema, options = {}) ⇒ Object

ドメインを新規作成する

Examples:

schema = Mushikago::Hanamgri::Schema.new do
  add Mushikago::Hanamgri::Field.new('name', true, :string)
  add Mushikago::Hanamgri::Field.new('price', true, :number)
  add {:name => 'shipping', :required => true, :type => :number, :knowledge_name => 'mushikago/ec/shipping'} # <= Hashでも追加できます
end
client.create_domain('ec', '税込', schema)

Parameters:

  • domain_name (String)

    ドメイン名

  • seeds (String)

    初期キーワード

  • schema (String)

    スキーマ

  • options (Hash) (defaults to: {})

    オプション

Options Hash (options):

  • :description (String)

    ドメインの説明

  • :dictionary_name (String)

    初期辞書



29
30
31
32
# File 'lib/mushikago/hanamgri/client.rb', line 29

def create_domain domain_name, seeds, schema, options={}
  request = Hanamgri::CreateDomainRequest.new(domain_name, seeds, schema, options)
  send_request(request)
end

#delete_dictionary(dictionary_name, options = {}) ⇒ Object

辞書の情報を削除する

Examples:

client.delete_dictionary('ec-UUID')

Parameters:

  • dictionary_name (String)

    辞書名



219
220
221
222
# File 'lib/mushikago/hanamgri/client.rb', line 219

def delete_dictionary dictionary_name, options={}
  request = Hanamgri::DeleteDictionaryRequest.new(dictionary_name,options)
  send_request(request)
end

#delete_domain(domain_name, options = {}) ⇒ Object

ドメインを削除する

Examples:

client.delete_domain('ec')

Parameters:

  • domain_name (String)

    ドメイン名

  • options (Hash) (defaults to: {})

    オプション

Options Hash (options):

  • :description (String)

    ドメインの説明



42
43
44
45
# File 'lib/mushikago/hanamgri/client.rb', line 42

def delete_domain domain_name, options={}
  request = Hanamgri::DeleteDomainRequest.new(domain_name, options)
  send_request(request)
end

#delete_knowledge(knowledge_name, options = {}) ⇒ Object

学習データの情報を削除する

Examples:

client.delete_knowledge('ec/price-UUID')

Parameters:

  • knowledge_name (String)

    学習データ名



259
260
261
262
# File 'lib/mushikago/hanamgri/client.rb', line 259

def delete_knowledge knowledge_name, options={}
  request = Hanamgri::DeleteKnowledgeRequest.new(knowledge_name,options)
  send_request(request)
end

#get_analysis(domain_name, request_id, options = {}) ⇒ Mushikago::Http::Response

解析結果を取得する

Examples:

client.get_analysis('ec', 'xxxxxx-xxxxxx-xxxxxx')

Parameters:

  • domain_name (String)

    ドメイン名

  • request_id (String)

    解析リクエストID

  • options (Hash) (defaults to: {})

    リクエストのオプション

Returns:



72
73
74
75
# File 'lib/mushikago/hanamgri/client.rb', line 72

def get_analysis domain_name, request_id, options={}
  request = Hanamgri::GetAnalysisRequest.new(domain_name, request_id, options)
  send_request(request)
end

#get_information(domain_name, options = {}) ⇒ Mushikago::Http::Response

ドメインの情報を取得する

Examples:

client.get_information('ec')

Parameters:

  • domain_name (String)

    ドメイン名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Returns:



99
100
101
102
# File 'lib/mushikago/hanamgri/client.rb', line 99

def get_information domain_name, options={}
  request = Hanamgri::GetInformationRequest.new(domain_name, options)
  send_request(request)
end

#get_queue_size(domain_name, options = {}) ⇒ Mushikago::Http::Response

ドメイン内の残タスク数を取得する

Examples:

ret = client.get_queue_size('ec')
puts ret['queue_size']

Parameters:

  • domain_name (String)

    ドメイン名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Returns:



86
87
88
89
# File 'lib/mushikago/hanamgri/client.rb', line 86

def get_queue_size domain_name, options={}
  request = Hanamgri::GetQueueSizeRequest.new(domain_name, options)
  send_request(request)
end

#list_analyses(domain_name, options = {}) ⇒ Mushikago::Http::Response

解析結果の一覧を取得する

Examples:

client.list_analyses('ec', {:limit => '20', :offset => '5', :status => 'complete'})

Parameters:

  • domain_name (String)

    ドメイン名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • : (Integer)

    limit 最大取得件数

  • : (Integer)

    offset 開始位置

  • : (String)

    filter 検索文字

  • : (String)

    status 解析の状態

Returns:



145
146
147
148
# File 'lib/mushikago/hanamgri/client.rb', line 145

def list_analyses domain_name, options={}
  request = Hanamgri::GetListAnalysesRequest.new(domain_name, options)
  send_request(request)
end

#list_dictionaries(options = {}) ⇒ Mushikago::Http::Response

辞書の一覧を取得する

Examples:

client.list_dictionaries(20, 10)

Parameters:

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • : (Integer)

    limit 最大取得件数

  • : (Integer)

    offset 開始位置

Returns:



208
209
210
211
# File 'lib/mushikago/hanamgri/client.rb', line 208

def list_dictionaries options={}
  request = Hanamgri::ListDictionariesRequest.new(options)
  send_request(request)
end

#list_domains(options = {}) ⇒ Mushikago::Http::Response

ドメインの一覧を取得する

Examples:

client.list_domains(20, 10, 'ec')

Parameters:

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • : (Integer)

    limit 最大取得件数

  • : (Integer)

    offset 開始位置

  • : (String)

    filter 検索文字(先頭一致)

Returns:



114
115
116
117
# File 'lib/mushikago/hanamgri/client.rb', line 114

def list_domains options={}
  request = Hanamgri::GetListDomainsRequest.new(options)
  send_request(request)
end

#list_knowledges(options = {}) ⇒ Mushikago::Http::Response

学習データの一覧を取得する

Examples:

client.list_knowledges(20, 10, 'complete')

Parameters:

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • : (Integer)

    limit 最大取得件数

  • : (Integer)

    offset 開始位置

  • : (String)

    status 学習データ保存の進捗状況

Returns:



248
249
250
251
# File 'lib/mushikago/hanamgri/client.rb', line 248

def list_knowledges options={}
  request = Hanamgri::ListKnowledgesRequest.new(options)
  send_request(request)
end

#request_analysis(domain_name, url, options = {}) ⇒ Object

解析リクエストを送信する

Examples:

client.request_analysis('ec', 'http://shop.example.com/')

Parameters:

  • domain_name (String)

    ドメイン名

  • url (String)

    解析対象URL

  • options (Hash) (defaults to: {})

    オプション

Options Hash (options):

  • :charset (String)

    解析対象ページ文字コード

  • :tag (String)

    解析結果識別用タグ

  • :auto_feedback (String)

    解析のみ。もしくは解析と学習を行う



58
59
60
61
# File 'lib/mushikago/hanamgri/client.rb', line 58

def request_analysis domain_name, url, options={}
  request = Hanamgri::RequestAnalysisRequest.new(domain_name, url, options)
  send_request(request)
end

#save_dictionary(domain_name, options = {}) ⇒ Object

辞書を保存する

Examples:

client.save_dictionary('ec', {:description => '辞書の説明'})

Parameters:

  • domain_name (String)

    ドメイン名

  • options (Hash) (defaults to: {})

    オプション

Options Hash (options):

  • :description (String)

    辞書の説明



194
195
196
197
# File 'lib/mushikago/hanamgri/client.rb', line 194

def save_dictionary domain_name, options={}
  request = Hanamgri::SaveDictionaryRequest.new(domain_name, options)
  send_request(request)
end

#save_knowledge(domain_name, field_name, options = {}) ⇒ Object

学習データを保存する

Examples:

client.save_knowledge('ec', {:description => '学習データの説明'})

Parameters:

  • domain_name (String)

    ドメイン名

  • field_name (String)

    フィールド名

  • options (Hash) (defaults to: {})

    オプション

Options Hash (options):

  • :description (String)

    学習データの説明



233
234
235
236
# File 'lib/mushikago/hanamgri/client.rb', line 233

def save_knowledge domain_name, field_name, options={}
  request = Hanamgri::SaveKnowledgeRequest.new(domain_name, field_name, options)
  send_request(request)
end

#search_schema(domain_name, query_key, query_value, options = {}) ⇒ Mushikagp::Http::Response

解析結果を検索する

Examples:

client.search_schema('ec', 'name', 'something', {:limit => '20', :offset => '5'})

Parameters:

  • domain_name (String)

    ドメイン名

  • query_key (String)

    検索対象のフィールド名

  • query_value (String)

    検索対象のフィールド値

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • : (Integer)

    limit 最大取得件数

  • : (Integer)

    offset 開始位置

Returns:

  • (Mushikagp::Http::Response)

    リクエストの結果



161
162
163
164
# File 'lib/mushikago/hanamgri/client.rb', line 161

def search_schema domain_name, query_key, query_value, options={}
  request = Hanamgri::SearchSchemaRequest.new(domain_name, query_key, query_value, options)
  send_request(request)
end

#train(domain_name, url_or_html, training_data, options = {}) ⇒ Mushikagp::Http::Response

解析結果を検索する

Examples:

training_data = Mushikago::Hanamgri::TrainingData.new do
  put('name', 'mushikago')
end
client.train('ec', 'http://www.mushikago.org/', training_data)   # URLを指定する例
client.train('ec', '<div>hello mushikago</div>', training_data)  # HTML文字列を指定する例
client.train('ec', File.read('./mushikago.html'), training_data) # HTMLをファイルから読み込んで指定する例

Parameters:

  • domain_name (String)

    ドメイン名

  • url_or_html (String)

    学習対象のURLもしくはHTML文字列

  • training_data (Mushikago::Hanamgri::TrainingData)

    学習データ

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • : (String)

    :charset 学習対象URLもしくはHTML文字列の文字コード

Returns:

  • (Mushikagp::Http::Response)

    リクエストの結果



181
182
183
184
# File 'lib/mushikago/hanamgri/client.rb', line 181

def train domain_name, url_or_html, training_data, options={}
  request = Hanamgri::TrainRequest.new(domain_name, url_or_html, training_data, options)
  send_request(request)
end

#update_domain(domain_name, description, options = {}) ⇒ Mushikago::Http::Response

ドメインの情報を更新する

Examples:

client.update_domain('ec', 'updateDescription')

Parameters:

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • : (String)

    domain_name ドメイン名

  • : (String)

    description ドメインの説明文

Returns:



128
129
130
131
# File 'lib/mushikago/hanamgri/client.rb', line 128

def update_domain domain_name, description, options={}
  request = Hanamgri::UpdateDomainRequest.new(domain_name, description, options)
  send_request(request)
end