본문 바로가기
NCloud(NCP)

[Naver Cloud Platform] Ncloud API Service Pack Series - 2 CLOVA Sentiment

by 간식주인 2023. 9. 19.

오늘은 Naver Cloud Platform API 관련 서비스 중 CLOVA Sentiment에 대해 알아보도록 하겠습니다. 🐥


목차

  1. CLOVA Sentiment 서비스
  2. CLOVA Sentiment API 사용예제
  3. CLOVA Sentiment 실행결과

1. CLOVA Sentiment 서비스 

CLOVA Sentiment 서비스란?

한국어에 최적화된 감정 분석 기술 서비스로 블로그, 댓글, SNS 등 한글로 작성된 글 속에 표현된 감정을 분석해 주는 API입니다.

 

서비스 특징

  • 네이버의 빅데이터와 형태소 분석기를 활용하여 한국어에 최적화된 방식으로 pre-training을 수행합니다. 특히 모델 사이즈를 줄인 Shallow BERT를 적용하여 Base BERT 모델 대비 4배 이상 빠른 속도를 제공합니다.
  • BERT의 Attention 정보를 활용하여 감정을 긍정, 부정, 중립으로 분석하고 감정을 판단하는데 핵심이 된 주요 표현 부분을 추출하여 제공하고 있습니다.
  • 쇼핑, 호텔, 맛집, 뉴스, SNS 등 다양한 분야에 범용적으로 활용할 수 있고 소규모 데이터 만으로도 새로운 분야에 확장할 수 있도록 설계하였습니다.

2CLOVA Sentiment API 사용예제

API 특징

 - API version : v1, API Gateway 필요

 - POST 방식

 - 요청 헤더

 - 요청 바디

미리 생성 - 키 사용을 위한 API_Gateway_info.py

더보기
# API Gateway Info #
# NCP AI.NAVER API 

def get_client_id():
    # Client ID : (X-NCP-APIGW-API-KEY-ID)
    client_id = "적어놓은 client ID"
    return client_id

def get_client_secret():
    # Client Secret (X-NCP-APIGW-API-KEY)
    client_secret = "적어놓은 client Secret"
    return client_secret

 

CLOVA_Sentiment.py

import json
import requests
import API_Gateway_info

# NCP CLOVA_Sentiment
# v1 , API Gateway 필요
# 문장에 대한 감정 분석 서비스
def sentiment(string):
    client_id = API_Gateway_info.get_client_id()
    client_secret = API_Gateway_info.get_client_secret()
    url = "https://naveropenapi.apigw.ntruss.com/sentiment-analysis/v1/analyze"
    headers = {
        "X-NCP-APIGW-API-KEY-ID": client_id,
        "X-NCP-APIGW-API-KEY": client_secret,
        "Content-Type": "application/json",
        'charset': 'UTF-8', 
        'Accept': '*/*',
    }
    
    body = {
        "content" : string,
    }

    response = requests.post(url, data=json.dumps(body), headers=headers)
    rescode = response.status_code
    if(rescode == 200):
        print (json.dumps(response.json(),indent=1,ensure_ascii=False))
    else:
        print("Error : " + response.text)

# 감정 분석을 위한 문장 입력
string = "이 음식점은 정말 맛있어요"
sentiment(string)

 

 

3. CLOVA Sentiment 실행결과

"이 음식점은 정말 맛있어요"를 분석한 결과 긍정적인 표현으로 결과값을 나타내었습니다.

 

+ "밥 먹고 커피 한잔?"

식후 커피는 좋은일인데 중립이 나오는군요

 

오늘은 재밌는 Clova Sentiment 서비스에 대해 알아보았습니다.

다음에도 좋은 API 관련 서비스를 사용해보도록 하겠습니다.