[Google Study JAM] Cloud Natural Language API: Qwik Start
👨🏻‍🏫IT 활동/Google Study JAM

[Google Study JAM] Cloud Natural Language API: Qwik Start

728x90
반응형

두 번째 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



analyze-sentiment(감정 분석)와 analyze-entities(개체 분석) 두 가지를 실행해봤다.



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를 이용함으로써 간단하게 자연어에 관한 해석을 할 수 있다는 것이 놀랍고, 무궁무진한 방법으로 사용이 될 것 같다는 생각을 했다. 



728x90
반응형