Python 클라이언트 라이브러리 v0.26.1로 이전

Python v0.26.1용 클라이언트 라이브러리에는 이전 클라이언트 라이브러리의 설계 방법에 대한 몇 가지 중요한 변경 사항이 포함되어 있습니다. 이러한 변경 사항은 다음과 같이 요약할 수 있습니다.

  • 더 적은 수의 유형으로 모듈 통합

  • 유형화되지 않은 매개변수를 강력한 유형의 클래스 및 열거로 교체

이 주제에서는 v0.26.1 Python 클라이언트 라이브러리를 사용하기 위해 Cloud Natural Language API 클라이언트 라이브러리에 대한 Python 코드의 변경 사항을 자세히 설명합니다.

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

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

google-cloud-language==0.25

삭제된 모듈

다음 모듈은 Python 클라이언트 라이브러리 v0.26.1 패키지에서 삭제되었습니다.

  • google.cloud.language.api_responses

  • google.cloud.language.client

  • google.cloud.language.document

  • google.cloud.language.entity

  • google.cloud.language.sentence

  • google.cloud.language.sentiment

  • google.cloud.language.syntax

필수 코드 변경

가져오기

Python 클라이언트 라이브러리 v0.26.1의 새로운 유형에 액세스하려면 새로운 google.cloud.language.types 모듈을 포함합니다.

types 모듈에는 요청 생성에 필요한 새로운 클래스(예: types.Document)가 포함되어 있습니다. enums 모듈에는 문서 유형을 지정하기 위한 열거형이 포함되어 있습니다. 'PLAIN_TEXT' 또는 'HTML'과 같은 문자열을 계속 사용하여 문서 유형을 지정할 수 있지만 enums 모듈의 열거형을 사용하는 것이 좋습니다.

from google.cloud import language
from google.cloud.language import enums
from google.cloud.language import types

또한 새로운 google.cloud.language.enums 모듈에는 API 응답을 파싱하고 이해하는 데 유용한 enums.Entity.Type.PERSONenums.PartOfSpeech.Tag.ADJ와 같은 열거형이 포함되어 있습니다.

클라이언트 만들기

Client 클래스가 LanguageServiceClient 클래스로 대체되었습니다. Client 클래스에 대한 참조를 LanguageServiceClient로 대체하세요.

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

old_client = language.Client()

Python 클라이언트 라이브러리 v0.26.1:

client = language.LanguageServiceClient()

텍스트 콘텐츠를 나타내는 객체 구성

텍스트 문자열 또는 Google Cloud Storage URI에서 텍스트 콘텐츠를 식별하려면 새 Document 클래스를 사용하세요.

텍스트 문자열의 텍스트 콘텐츠를 나타내는 객체 구성하기

다음 예는 텍스트 문자열에서 텍스트 콘텐츠를 나타내는 새로운 방법을 보여줍니다.

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

document = old_client.document_from_text(content=text)

Python 클라이언트 라이브러리 v0.26.1:

document = types.Document(
    content=text,
    type=enums.Document.Type.PLAIN_TEXT)

document.type = enums.Document.Type.HTML로 설정함으로써 웹페이지의 콘텐츠를 분류할 수도 있습니다.

Google Cloud Storage URI의 텍스트 콘텐츠를 나타내는 객체 구성하기

다음 예는 Google Cloud Storage URI 또는 웹 URI에서 텍스트 콘텐츠를 나타내는 새로운 방법을 보여줍니다. gcs_uri는 Google Cloud Storage의 텍스트 파일에 대한 URI입니다.

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

document = old_client.document_from_gcs_uri(gcs_uri=gcs_uri)

Python 클라이언트 라이브러리 v0.26.1:

document = types.Document(
    gcs_content_uri=gcs_uri,
    type=enums.Document.Type.PLAIN_TEXT)

document.type = enums.Document.Type.HTML로 설정함으로써 웹페이지의 콘텐츠를 분류할 수도 있습니다.

요청 생성 및 응답 처리

Python 클라이언트 라이브러리 및 analyze_sentiment와 같은 API 메소드는 Document 객체가 아니라 LanguageServiceClient 객체에 속합니다.

아래 설명처럼 analyze_entitiesanalyze_syntax에서 반환되는 값은 약간 다릅니다.

감정 분석 요청 생성 및 응답 처리

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

document = language_client.document_from_text(text)

sentiment = document.analyze_sentiment().sentiment

print('Score: {}'.format(sentiment.score))
print('Magnitude: {}'.format(sentiment.magnitude))

Python 클라이언트 라이브러리 v0.26.1:

document = types.Document(
    content=text,
    type=enums.Document.Type.PLAIN_TEXT)

# Detects sentiment in the document. You can also analyze HTML with:
#   document.type == enums.Document.Type.HTML
sentiment = client.analyze_sentiment(document).document_sentiment

print('Score: {}'.format(sentiment.score))
print('Magnitude: {}'.format(sentiment.magnitude))

항목 분석 요청 생성 및 응답 처리

이제 항목 유형은 entity.entity_type이 아닌 entity.type으로 저장됩니다.

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

document = language_client.document_from_text(text)

entities = document.analyze_entities().entities

for entity in entities:
    print('=' * 20)
    print(u'{:<16}: {}'.format('name', entity.name))
    print(u'{:<16}: {}'.format('type', entity.entity_type))
    print(u'{:<16}: {}'.format('metadata', entity.metadata))
    print(u'{:<16}: {}'.format('salience', entity.salience))
    print(u'{:<16}: {}'.format('wikipedia_url',
          entity.metadata.get('wikipedia_url', '-')))

Python 클라이언트 라이브러리 v0.26.1:

document = types.Document(
    content=text,
    type=enums.Document.Type.PLAIN_TEXT)

# Detects entities in the document. You can also analyze HTML with:
#   document.type == enums.Document.Type.HTML
entities = client.analyze_entities(document).entities

for entity in entities:
    entity_type = enums.Entity.Type(entity.type)
    print('=' * 20)
    print(u'{:<16}: {}'.format('name', entity.name))
    print(u'{:<16}: {}'.format('type', entity_type.name))
    print(u'{:<16}: {}'.format('salience', entity.salience))
    print(u'{:<16}: {}'.format('wikipedia_url',
          entity.metadata.get('wikipedia_url', '-')))
    print(u'{:<16}: {}'.format('mid', entity.metadata.get('mid', '-')))

구문 분석 요청 생성 및 응답 처리

토큰의 품사 태그인 token.part_of_speech.tag는 이제 열거로 반환되며, 이 열거의 이름은 google.cloud.language.enums.PartOfSpeech.Tag를 가져와서 복구할 수 있습니다.

이제 토큰의 텍스트 콘텐츠는 token.text_content가 아닌 token.text.content로 저장됩니다.

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

document = language_client.document_from_text(text)

tokens = document.analyze_syntax().tokens

for token in tokens:
    print(u'{}: {}'.format(token.part_of_speech.tag, token.text_content))

Python 클라이언트 라이브러리 v0.26.1:

document = types.Document(
    content=text,
    type=enums.Document.Type.PLAIN_TEXT)

# Detects syntax in the document. You can also analyze HTML with:
#   document.type == enums.Document.Type.HTML
tokens = client.analyze_syntax(document).tokens

for token in tokens:
    part_of_speech_tag = enums.PartOfSpeech.Tag(token.part_of_speech.tag)
    print(u'{}: {}'.format(part_of_speech_tag.name,
                           token.text.content))
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

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

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