[이렇게 사용하세요!] 텍스트 감정 분석 서비스 구현하기 (CLOVA Sentiment 활용기)

NAVER Cloud
NAVER Cloud
Published in
8 min readSep 10, 2021

누구나 쉽게 시작하는 클라우드 네이버 클라우드 플랫폼 ncloud.com 입니다.

네이버클라우드 개발자가 직접 알려드리는 클라우드 활용법 [이렇게 사용하세요] 시리즈.

오늘은 네이버 클라우드 플랫폼의 CLOVA Sentiment 서비스를 활용하여 단어와 문장 속 감정을 분석하는 서비스를 간단히 구현해보겠습니다.

CLOVA Sentiment 서비스란?

출처 : https://www.ncloud.com/product/aiService/clovaSentiment

CLOVA Sentiment(클로바 센티멘트)는 API를 활용하여 텍스트 데이터를 분석, 해당 단어/문장/문단 내용의 감정(긍정/부정/중립)을 분석할 수 있는 서비스입니다.

어떤 점이 특별한가요?

첫째, 빠른 처리 속도!

네이버의 빅데이터와 형태소 분석기를 활용하여 한국어에 최적화된 방식으로 pre-training을 수행합니다. 또한, 모델 사이즈를 줄인 Shallow BERT* 적용으로 Base BERT 모델 대비 4배 이상 빠른 속도를 제공합니다.

* 참고: AI 모델 ‘BERT’에 대한 약간의 설명

- BERT는 AI(인공지능) 언어 모델로 ‘Bidirectional Encoder Representations from Transformers’의 약어

- 인공지능(AI) 언어모델 ‘BERT(버트)’는 무엇인가 (인공지능신문, ‘19.01)

- BERT를 활용한 네이버 클라우드 플랫폼의 챗봇 (아주뉴스, ‘21.08)

둘째, 감정 분석 결과의 핵심이 되는 ‘주요 감정 표현’을 추출합니다.

BERT의 Attention 정보를 활용함으로써 긍정/부정/중립 등의 감정 분석 정보뿐만 아니라 감정 판단의 핵심이 되는 주요 감정 표현을 추출하여 제공하고 있으며, 이를 통해 다양한 서비스에 적용할 수 있습니다.

셋째, 어떤 환경도 OK. 범용적인 활용성.

쇼핑, 호텔, 맛집, 뉴스, SNS 등 다양한 환경의 도메인을 제공하여 범용적으로 활용할 수 있으며, 소규모 데이터만으로도 효율적으로 신규 도메인을 확장할 수 있도록 설계하였습니다.

👉상품 소개 자세히 보기

https://blog.naver.com/n_cloudplatform/222438610768

감정 분석 서비스 만들기

CLOVA Sentiment를 활용해보자!

CLOVA Sentiment(클로바 센티멘트)를 활용한 감정 분석 서비스 만들기.

쉽게 따라 해보실 수 있게 알려드리겠습니다.

1. 네이버 클라우드 플랫폼 콘솔에 접속합니다.

- ncloud.com 접속/로그인 후 우측 상단 Console(콘솔) 접속

- Products & Services > AI · NAVER API 클릭

네이버 클라우드 플랫폼 콘솔에서 AI · NAVER 메뉴에 접속하는 화면

2. CLOVA Sentiment 서비스를 활성화합니다.

- 상단 ‘Application’ 버튼 클릭 후 이름을 지정하고,

- CLOVA Sentiment를 선택한 후 웹서비스 URL을 지정합니다.

- 테스트를 위해서 사용될 Web 서비스 URL를 임의로 http://sentiment.csong.kr로 명시하였습니다.

CLOVA Sentiment 서비스를 AI Naver service에서 활성화시키는 화면

* 자세한 안내는 아래 사용자 가이드를 참고해 주세요.

https://api.ncloud-docs.com/docs/ai-naver-clovasentiment-summary

3. 생성한 summary-test를 클릭하여 인증정보를 확인합니다.

Client ID (X-NCP-APIGW-API-KEY-ID) Client Secret (X-NCP-APIGW-API-KEY) 정보를 기억하거나 메모장에 복사합니다.

CLOVA Sentiment 서비스에 생성된 인증정보 확인창

4. 분석 대상 텍스트를 RESTful API 방식으로 전달해 결과를 리턴하는 API를 사용합니다.

하나의 단어/문장/문구를 RESTful API 방식으로 전달하면 서버에서 인식해 감정이 분석된 결과를 리턴해주는 API를 사용하여, python으로 간단히 서비스를 구현했습니다.

아래와 같이 앞에서 메모해둔 Client ID (X-NCP-APIGW-API-KEY-ID) Client Secret (X-NCP-APIGW-API-KEY) 를 치환합니다.

content에는 예시 문장을 작성해 보았습니다.

“싸늘하다. 가슴에 비수가 날아와 꽂힌다.”

#!/usr/bin/env python3
#-*- codig: utf-8 -*-
import sys
import requests
import json
client_id = "X-NCP-APIGW-API-KEY-ID"
client_secret = "X-NCP-APIGW-API-KEY"
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"
}
content = "싸늘하다. 가슴에 비수가 날아와 꽂힌다."
data = {
"content": content
}
print(json.dumps(data, indent=4, sort_keys=True))
response = requests.post(url, data=json.dumps(data), headers=headers)
rescode = response.status_code
if(rescode == 200):
print (response.text)
else:
print("Error : " + response.text)

5. 테스트 결과가 나왔습니다.

- 테스트 문장 “싸늘하다. 가슴에 비수가 날아와 꽂힌다.”의 감정 분석 결과, 아래와 같습니다.

- 부정적인 문장으로 파악되며, 감정 분석에 주요하게 영향을 준 표현도 하이라이트 되어 나타납니다.

Visual Studio Code에서 테스트 실행 화면

서비스 구현을 위한 파라미터와 자세한 설명은 공식 매뉴얼을 참고해 주세요.

마지막으로 CLOVA Sentiment의 요금 정책은 아래와 같습니다.

과금 기준은 이용 횟수(호출)이며, 1회당 1,000자까지 이용 가능합니다.

- 월 누적 이용 횟수가 1,000회 이하일 시 서비스 비용은 무료이며

- 월 누적 이용 횟수 1,000회 초과 시에는 1건당 1원입니다.

CLOVA Sentiment 서비스 요금 정책 — 홈페이지에서 보기

위 ​예제 실행 중 어려움이 있으시면 댓글로 남겨주시거나, 네이버 클라우드 플랫폼 페이스북 유저 그룹에 남겨주시면 빠르게 도와드리겠습니다.

* 본 포스팅은 네이버클라우드 Cloud Advocate 송창안 님이 작성해 주셨습니다.

--

--

NAVER Cloud
NAVER Cloud

We provide cloud-based information technology services for industry leaders from startups to enterprises.