Ruby Natural Language Client Library v0.28.0으로 이전

Ruby Natural Language Client Library v0.28.0은 이전 클라이언트 라이브러리와 설계 면에서 중요한 차이점이 있습니다.

Natural Language 라이브러리에 다음과 같은 변경사항이 적용되었습니다.

  • 클라이언트 라이브러리와 RPC API와의 일관성이 향상되었습니다.

  • 이제 각 분석 요청은 Google::Cloud::Language::Document 클래스를 사용하는 대신 Google::Cloud::Language 클래스에 연결된 별도의 메소드 호출로 표시됩니다.

  • 콘텐츠 메소드 매개변수는 이제 문자열 리터럴의 콘텐츠와 Google Cloud Storage의 콘텐츠를 구별합니다.

이 주제에서는 Cloud Natural Language API 클라이언트 라이브러리에서 Ruby 코드를 변경하여 v0.28.0 Ruby 클라이언트 라이브러리를 사용하는 방법을 자세하게 다룹니다.

이전 버전의 클라이언트 라이브러리 실행

Ruby 클라이언트 라이브러리를 v0.28.0으로 업그레이드할 필요는 없습니다. 이전 버전의 Ruby 클라이언트 라이브러리를 계속 사용하고 코드를 이전하지 않으려면 앱에서 사용하는 Ruby 클라이언트 라이브러리의 버전을 정확히 지정해야 합니다. 특정 라이브러리 버전을 지정하려면 Gemfile 파일을 다음과 같이 편집하세요.

gem "google-cloud-language", "0.27.1"

삭제된 클래스

다음 클래스는 Ruby Language Client Library v0.28.0 gem에서 삭제되었습니다.

  • Google::Cloud::Language::Project

  • Google::Cloud::Language::Document

  • Google::Cloud::Language::Annotation

필수 코드 변경사항

Gem 종속성

Ruby Language Client Library v0.28.0 gem에 대한 클라이언트 라이브러리 경로는 변경되지 않았습니다.

require "google/cloud/language"

클라이언트 만들기

Ruby Language Client Library v0.28.0을 사용하여 Natural Language API 클라이언트를 만들려면 다음 사항을 변경해야 합니다.

  • project 매개변수를 삭제합니다. Natural Language API가 요청에 프로젝트 이름을 포함하지 않기 때문에 project 매개변수가 삭제되었습니다.
language = Google::Cloud::Language.new

요청 구성하기

다음 섹션에서는 Ruby Language Client Library v0.28.0을 사용하여 요청을 구성하는 방법을 설명합니다. 예에서는 텍스트 문자열 및 Google Cloud Storage의 파일 URI를 모두 사용하여 요청을 만듭니다.

텍스트 문자열에서 콘텐츠 분석

다음은 콘텐츠를 텍스트 문자열에서 Natural Language API로 보내는 예시를 보여줍니다.

이전 버전의 클라이언트 라이브러리:

# project_id   = "Your Google Cloud project ID"
# text_content = "text content for NLP api"

require "google/cloud/language"

language = Google::Cloud::Language.new project project_id
document = language.document text_content

sentiment = document.sentiment

Ruby Client Library v0.28.0:

# text_content = "Text to run sentiment analysis on"

require "google/cloud/language"

language = Google::Cloud::Language.new

response = language.analyze_sentiment content: text_content, type: :PLAIN_TEXT

sentiment = response.document_sentiment

content 매개변수는 모든 분석 메소드에서 사용할 수 있습니다. type 매개변수 language.analyze_sentiment content: text_content, type: :HTML을 설정하여 HTML을 분석할 수도 있습니다.

파일에서 콘텐츠 분석

다음 예는 새로운 gcs_content_uri 매개변수를 사용하여 감정 분석을 수행할 때 Google Cloud Storage URI 또는 웹 URI에서 텍스트 콘텐츠를 나타내는 새로운 방법을 보여줍니다.

이전 버전의 클라이언트 라이브러리:

# project_id   = "Your Google Cloud project ID"
# storage_path = "gs://path/to/file"

require "google/cloud/language"

language = Google::Cloud::Language.new project project_id
document = language.document storage_path

sentiment = document.sentiment

Ruby Client Library v0.28.0:

# storage_path = "Path to file in Google Cloud Storage, eg. gs://bucket/file"

require "google/cloud/language"

language = Google::Cloud::Language.new

response = language.analyze_sentiment gcs_content_uri: storage_path, type: :PLAIN_TEXT

sentiment = response.document_sentiment

gcs_content_uri 매개변수는 모든 분석 메소드에서 사용할 수 있습니다. type 매개변수 language.analyze_sentiment content: text_content, type: :HTML을 설정하여 HTML을 분석할 수도 있습니다.

업데이트된 요청 및 응답

감정 분석

AnalyzeSentiment 메소드에 대한 요청은 이제 아래와 같이 Google::Cloud::Language#analyze_sentiment를 사용하여 생성됩니다.

이전 버전의 클라이언트 라이브러리:

# project_id   = "Your Google Cloud project ID"
# text_content = "text content for NLP api"

require "google/cloud/language"

language  = Google::Cloud::Language.new project: project_id
document  = language.document text_content
sentiment = document.sentiment

puts "Overall document sentiment: (#{sentiment.score})"
puts "Sentence level sentiment:"

sentiment.sentences.each do |sentence|
  sentiment = sentence.sentiment
  puts "#{sentence.text}: (#{sentiment.score})"
end

Ruby Client Library v0.28.0:

# text_content = "Text to run sentiment analysis on"

require "google/cloud/language"

language = Google::Cloud::Language.new

response = language.analyze_sentiment content: text_content, type: :PLAIN_TEXT

sentiment = response.document_sentiment

puts "Overall document sentiment: (#{sentiment.score})"
puts "Sentence level sentiment:"

sentences = response.sentences

sentences.each do |sentence|
  sentiment = sentence.sentiment
  puts "#{sentence.text.content}: (#{sentiment.score})"
end

항목 분석

AnalyzeEntities 메소드에 대한 요청은 이제 아래와 같이 Google::Cloud::Language#analyze_entities를 사용하여 생성됩니다.

이전 버전의 클라이언트 라이브러리:

# project_id   = "Your Google Cloud project ID"
# text_content = "text content for NLP api"

require "google/cloud/language"

language = Google::Cloud::Language.new project: project_id
document = language.document text_content
entities = document.entities

entities.each do |entity|
  puts "Entity #{entity.name} #{entity.type}"

  if entity.metadata["wikipedia_url"]
    puts "URL: #{entity.metadata['wikipedia_url']}"
  end
end

Ruby Client Library v0.28.0:

# text_content = "Text to extract entities from"

require "google/cloud/language"

language = Google::Cloud::Language.new

response = language.analyze_entities content: text_content, type: :PLAIN_TEXT

entities = response.entities

entities.each do |entity|
  puts "Entity #{entity.name} #{entity.type}"

  if entity.metadata["wikipedia_url"]
    puts "URL: #{entity.metadata['wikipedia_url']}"
  end
end

구문 분석

AnalyzeSyntax 메소드에 대한 요청은 이제 아래와 같이 Google::Cloud::Language#analyze_syntax를 사용하여 생성됩니다.

Google::Cloud::Language::Annotation::Syntax에서 사용할 수 있는 문장 및 품사 태그는 아래에 표시된 Google::Cloud::Language#analyze_syntax 요청에 대한 응답으로 액세스할 수 있습니다.

이전 버전의 클라이언트 라이브러리:

# project_id   = "Your Google Cloud project ID"
# text_content = "text content for NLP api"

require "google/cloud/language"

language = Google::Cloud::Language.new project: project_id
document = language.document text_content
syntax   = document.syntax

puts "Sentences: #{syntax.sentences.count}"
puts "Tokens: #{syntax.tokens.count}"

syntax.tokens.each do |token|
  puts "#{token.part_of_speech.tag} #{token.text_span.text}"
end

Ruby Client Library v0.28.0:

# text_content = "Text to analyze syntax of"

require "google/cloud/language"

language = Google::Cloud::Language.new
response = language.analyze_syntax content: text_content, type: :PLAIN_TEXT

sentences = response.sentences
tokens    = response.tokens

puts "Sentences: #{sentences.count}"
puts "Tokens: #{tokens.count}"

tokens.each do |token|
  puts "#{token.part_of_speech.tag} #{token.text.content}"
end
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Cloud Natural Language API
도움이 필요하시나요? 지원 페이지를 방문하세요.