10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Cloud Natural Language APIをRubyで実行する

Last updated at Posted at 2017-12-25

はじめに

理科大のAdvent Calendar 2017の21日の記事です!(25日に執筆中)
stripeのことを書く予定でしたが卒論でstripeどころかqiita書く時間もなかったので、ちょうど卒論で使ったGoogle Cloud Natural Language API
について書きます。

Google Cloud Natural Language APIとは

CLOUD NATURAL LANGUAGE API

感情分析

ネガポジで-1.0〜1.0で返してくれる
ドキュメント

エンティティ分析

一般名詞を返してくれる
ドキュメント

構文解析

そのまんま。
ドキュメント

エンティティ感情分析

一般名詞に対する感情を返す
ドキュメント

こんかいは感情分析だけ使った。

感情分析のスコアの見方

感情分析の値の解釈

サンプルコード

ドキュメントにrubyのサンプルコードがあったけど実行すると認証エラーになった。(下記のコードでできたからまだ解決してない)
事前にapi_keyを取得する必要がある。

curl

request.jsonを作成して

{
  "document":{
    "type":"PLAIN_TEXT",
    "content":"これが感情分析したいテキストが入る場所"
  }
}
curl "https://language.googleapis.com/v1beta1/documents:analyzeSentiment?key=hogehogehogehogehoge" \
  -s -X POST -H "Content-Type: application/json" --data-binary @request.json

curlはここを参照

ruby

require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://language.googleapis.com/v1beta1/documents:analyzeSentiment?key=hogehogeohogehoge")
request = Net::HTTP::Post.new(uri)
request.content_type = "application/json"
request.body = ""
request.body = '{
                  "document":{
                    "type":"PLAIN_TEXT",
                    "content": "これが感情分析したいテキストが入る場所"
                  }
                }'

req_options = {
  use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
  http.request(request)
end

json = JSON.parse(response.body)
p score =  json['documentSentiment']['score']
p magnitude = json['documentSentiment']['magnitude']

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?