IBM Watson NLU в рубине - PullRequest
       21

IBM Watson NLU в рубине

0 голосов
/ 02 июня 2018

Я пытаюсь использовать клиент watson api из https://github.com/suchowan/watson-api-client.

. Я написал это на основе документации https://watson-api-explorer.ng.bluemix.net/listings/natural-language-understanding-v1.json:

require 'watson-api-client'

service = WatsonAPIClient::NaturalLanguageUnderstanding.new(
  :user=>"xxxxxxxxxxxx",
  :password=>"yyyyyyyyy",
  :verify_ssl=>OpenSSL::SSL::VERIFY_NONE
)

result = service.analyze(
  'version'          => "2018-03-16",
  'parameters'       => "keywords.sentiment",
  'source'           => "The quick brown fox jumps over the lazy cat"
)
p JSON.parse(result.body)

я ничего не могу найти для отправки запроса через ruby, возможно, я использую неправильные параметры.Например, я получаю ArgumentError (Extra parameter(s) : 'source' с этим текущим кодом.Я пытался заменить исходный текст безрезультатно.Кто-нибудь успешно сделал такой запрос в Ruby или знает, какие параметры нужны?

Спасибо.

1 Ответ

0 голосов
/ 04 июня 2018

, глядя на API на https://www.ibm.com/watson/developercloud/natural-language-understanding/api/v1/#post-analyze, похоже, что параметры должны быть объектом JSON.Я также не вижу никакого источника (как говорится в комментарии Саймона, используйте текст) параметра в документации API.

Возможно, прежде чем переходить к гему watson-api-client, попытайтесь сделать вызов, используя Net :: HTTP (документация https://docs.ruby -lang.org / ru / 2.0.0 / Net / HTTP.html ) Таким образом, вы можете точно увидеть, что ожидается.Вы также можете создать более индивидуальное решение для подключения к Watson API.

, например,

    uri = URI('https://gateway.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2018-03-16')
  Net::HTTP.start(uri.host, uri.port) do |http|
    request = Net::HTTP::Post.new uri
    request['Content-Type'] = 'application/json'
    request.body = {text: 'your test', keywords: {sentiment: true}}.to_json    
    request.basic_auth 'username', 'password'


    response = http.request request # Net::HTTPResponse object
  end

Обратите внимание, что вышеописанное было только что создано, а не протестировано.Надеюсь, это поможет.

...