2019년 하반기 [머신러닝 통합반] 코세라 & 퀵랩

 

클라우드 자연어 API : Qwik Start

Google Cloud Natural Language API를 사용하면 텍스트 문서, 뉴스 기사 또는 블로그 게시물에 언급 된 사람, 장소, 이벤트 등에 대한 정보를 추출 할 수 있습니다. 이 도구를 사용하여 소셜 미디어에서 제품에 대한 감정을 이해하거나 콜 센터 또는 메시징 앱에서 발생하는 고객 대화의 의도를 분석 할 수 있습니다. 분석을 위해 텍스트 문서를 업로드 할 수도 있습니다.

Cloud Natural Language API 기능

구문 분석 : 토큰과 문장을 추출하고 품사 (PoS)를 식별하며 각 문장에 대한 종속성 구문 분석 트리를 만듭니다.

엔티티 인식 : 개인, 조직, 위치, 이벤트, 제품 및 미디어와 같은 유형별로 엔티티를 식별하고 레이블을 지정하십시오.

감정 분석 : 텍스트 블록으로 표현 된 전체 감정을 이해합니다.

컨텐츠 분류 : 사전 정의 된 700 개 이상의 카테고리로 문서를 분류하십시오.

다국어 : 영어, 스페인어, 일본어, 중국어 (간체 및 번체), 프랑스어, 독일어, 이탈리아어, 한국어 및 포르투갈어를 포함한 여러 언어로 텍스트를 쉽게 분석 할 수 있습니다.

통합 REST API : REST API 를 통한 액세스 요청에 텍스트를 업로드하거나 Google Cloud Storage 와 통합 할 수 있습니다 .

이 실습에서는이 analyze-entities방법을 사용하여 Cloud Natural Language API에 텍스트 스 니펫에서 "엔터티"(예 : 사람, 장소 및 이벤트)를 추출하도록 요청합니다.

 

Google Cloud Platform 콘솔

실습을 시작하고 콘솔에 로그인하는 방법

  1. 실습 시작 버튼을 클릭하십시오 . 실습 비용을 지불해야하는 경우 결제 방법을 선택할 수있는 팝업이 열립니다. 왼쪽에는이 실습에 사용해야하는 임시 자격 증명이 채워진 패널이 있습니다.

  2. 사용자 이름을 복사 한 다음 Google 콘솔 열기 를 클릭하십시오 . 실습이 시작된 다음 계정 선택 페이지 가 표시된 다른 탭이 열립니다 .

    팁 : 나란히 별도의 창에서 탭을여십시오.

  3. 계정 선택 페이지에서 다른 계정 사용을 클릭 하십시오 .

  4. 로그인 페이지가 열립니다. 연결 세부 사항 패널에서 복사 한 사용자 이름을 붙여 넣으십시오. 그런 다음 비밀번호를 복사하여 붙여 넣습니다.

    중요 사항 : 연결 세부 사항 패널에서 신임 정보를 사용해야합니다. Qwiklabs 자격 증명을 사용하지 마십시오. 자신의 GCP 계정이있는 경우이 실습에 사용하지 마십시오 (요금이 부과되지 않음).

  5. 다음 페이지를 클릭하십시오.

    • 이용 약관에 동의합니다.
    • 임시 계정이므로 복구 옵션이나 이중 인증을 추가하지 마십시오.
    • 무료 평가판에 가입하지 마십시오.

클라우드 쉘

Google Cloud Shell 활성화

Google Cloud Shell은 개발 도구가로드 된 가상 머신입니다. 영구적 인 5GB 홈 디렉토리를 제공하며 Google 클라우드에서 실행됩니다. Google Cloud Shell은 GCP 리소스에 대한 명령 줄 액세스를 제공합니다.

  1. GCP 콘솔의 오른쪽 상단 툴바에서 Open Cloud Shell 버튼을 클릭합니다.

  2. 계속을 클릭하십시오 . 

환경을 프로비저닝하고 연결하는 데 약간의 시간이 걸립니다. 연결되면 이미 인증되었으며 프로젝트는 PROJECT_ID 로 설정됩니다 . 예를 들면 다음과 같습니다.

gcloud 는 Google Cloud Platform 용 명령 줄 도구입니다. Cloud Shell에 사전 설치되어 제공되며 탭 완성을 지원합니다.

이 명령으로 활성 계정 이름을 나열 할 수 있습니다.

gcloud auth list

산출:

Credentialed accounts: - <myaccount>@<mydomain>.com (active)

출력 예 :

Credentialed accounts: - google1623327_student@qwiklabs.net

이 명령으로 프로젝트 ID를 나열 할 수 있습니다.

gcloud config list project

산출:

[core] project = <project_ID>

출력 예 :

[core] project = qwiklabs-gcp-44776a13dea667a6

gcloud에 대한 전체 설명서는 Google Cloud gcloud 개요 에서 볼 수 있습니다 .

API 키 생성

먼저,이 코드 랩 전체에서 사용할 PROJECT_ID로 환경 변수를 설정합니다.

export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)

그런 다음 Natural Language API에 액세스 할 새 서비스 계정을 작성하십시오.

gcloud iam service-accounts create my-natlang-sa \ --display-name "my natural language service account"

그런 다음 자격 증명을 만들어 새 서비스 계정으로 로그인하십시오. 이 신임 정보를 작성하고 다음 명령을 사용하여 JSON 파일 "~ / key.json"으로 저장하십시오.

gcloud iam service-accounts keys create ~/key.json \ --iam-account my-natlang-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com

마지막으로 GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정하십시오. 환경 변수는 사용자가 작성한 신임 정보 JSON 파일의 전체 경로로 설정해야하며, 이전 명령의 출력에서 ​​볼 수 있습니다.

export GOOGLE_APPLICATION_CREDENTIALS="/home/USER/key.json"

엔터티 분석 요청

다음 단계를 수행하려면 ssh를 통해 프로비저닝 된 인스턴스에 연결하십시오. 탐색 메뉴를 열고 Compute Engine을 선택하십시오 . 다음과 같은 프로비저닝 된 Linux 인스턴스가 표시되어야합니다.

SSH 버튼을 클릭하십시오. 대화식 쉘로 이동합니다. 나머지 실습을 위해이 SSH 세션을 유지하십시오.

이제 다음 문장으로 Natural Language API의 엔티티 분석을 시도해 보겠습니다.

이탈리아 화가 미켈란젤로 카라바지오는 '성 마태의 소명'으로 유명합니다

다음 gcloud명령을 실행하십시오

gcloud ml language analyze-entities --content="Michelangelo Caravaggio, Italian painter, is known for 'The Calling of Saint Matthew'." > result.json

result.json 파일의 출력을 미리 보려면 아래 명령을 실행하십시오.

cat result.json

result.json 파일에 다음과 유사한 응답이 표시되어야합니다.

{
  "entities": [
    {
      "name": "Michelangelo Caravaggio",
      "type": "PERSON",
      "metadata": {
        "wikipedia_url": "http://en.wikipedia.org/wiki/Caravaggio",
        "mid": "/m/020bg"
      },
      "salience": 0.83047235,
      "mentions": [
        {
          "text": {
            "content": "Michelangelo Caravaggio",
            "beginOffset": 0
          },
          "type": "PROPER"
        },
        {
          "text": {
            "content": "painter",
            "beginOffset": 33
          },
          "type": "COMMON"
        }
      ]
    },
    {
      "name": "Italian",
      "type": "LOCATION",
      "metadata": {
        "mid": "/m/03rjj",
        "wikipedia_url": "http://en.wikipedia.org/wiki/Italy"
      },
      "salience": 0.13870546,
      "mentions": [
        {
          "text": {
            "content": "Italian",
            "beginOffset": 25
          },
          "type": "PROPER"
        }
      ]
    },
    {
      "name": "The Calling of Saint Matthew",
      "type": "EVENT",
      "metadata": {
        "mid": "/m/085_p7",
        "wikipedia_url": "http://en.wikipedia.org/wiki/The_Calling_of_St_Matthew_(Caravaggio)"
      },
      "salience": 0.030822212,
      "mentions": [
        {
          "text": {
            "content": "The Calling of Saint Matthew",
            "beginOffset": 69
          },
          "type": "PROPER"
        }
      ]
    }
  ],
  "language": "en"
}

과를 읽어보십시오. 응답의 각 "엔티티"에 대해 다음을 볼 수 있습니다.

  • 엔터티 name와 type사람, 위치, 이벤트 등
  • metadata관련 위키 백과 URL (있는 경우)
  • salience및이 엔티티가 텍스트에서 나타난 위치의 인덱스입니다. Salience는 [0,1] 범위의 숫자로, 텍스트 전체에 대한 개체의 중심성을 나타냅니다.
  • mentions다른 방식으로 언급 된 동일한 엔티티입니다.

Cloud Natural Language API에 첫 번째 요청을 보냈습니다.

+ Recent posts