두 번째 Qwik은 자연어를 사람/ 장소등 중요한 정보를 가진 텍스트를 뽑아내는 API사용법에 대해 설명하고 있다.
문법(Syntax Analysis)을 봐주고, 개체(Entity Recognition)들을 인식하고 감정분석(Sentiment Analysis), 기존에 정해진 카테고리로의 컨텐츠 분류(Content Classification), 다양한 언어를 지원한다(Multi - Language)
앞선 Speech API의 과정처럼
1) API KEY를 생성하고
2) 분석 요청 메시지를 전송하여 결과를 얻어낸다!
1. 먼저 사용할 환경을 설정해준다 ( 환경변수 등록 )
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
2. Natural Language API에 접근하기 위한 IAM service-account 를 만들어 낸다.
gcloud iam service-accounts create my-natlang-sa \ --display-name "my natural language service account"
3. 만들어낸 Credential Key를 json 파일에 저장시킨다. ( 이름은 랜덤, 여기서는 key.json )
gcloud iam service-accounts keys create ~/key.json \ --iam-account my-natlang-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
4. json 파일이 있는 위치를 환경변수(GOOGLE_APPLICATION_CREDENTIALS의 환경변수)로 설정
export GOOGLE_APPLICATION_CREDENTIALS="/home/USER/key.json"
5-1. Entity Analysis Request
존 시나를 검색하면 나오는 위키피디아의 결과 한 줄을 입력했다.
분석 종류에는 여러가지가 있다.
analyze-entity-sentiment
analyze-sentiment
analyze-syntax
classify-text
Name 은 개체의 이름을 말하고
type은 person, location, event로 출력이 된다.
salience는 0~1 사이의 값으로 전체의 텍스트 중에서 일부분의 텍스트가 얼마나 중요한지를 나타낸다.
mentions는 전체에서 한 개체가 다른 곳에서도 발견된 위치를 알려준다.
5-2. Sentiment Analysis Request
임의로 작성한 감정이 담긴 문장을 Request 했다.
documentSentiment 를 통해 문장 전체의 Sentiment의 정도(magnitude, score)을 볼 수 있다.
그리고 자동으로 English라는 것을 감지했고,
Sentence 각각의 magnitude와 score을 볼 수 있다.
score가 -0.3으로 "sad"를 나타낸 것 이고, score 0.8로 "happy"를 표현하는 것 이다.
API를 이용함으로써 간단하게 자연어에 관한 해석을 할 수 있다는 것이 놀랍고, 무궁무진한 방법으로 사용이 될 것 같다는 생각을 했다.