[이렇게 사용하세요!] 텍스트 감정 분석 서비스 구현하기 (CLOVA Sentiment 활용기)
누구나 쉽게 시작하는 클라우드 네이버 클라우드 플랫폼 ncloud.com 입니다.
네이버클라우드 개발자가 직접 알려드리는 클라우드 활용법 [이렇게 사용하세요] 시리즈.
오늘은 네이버 클라우드 플랫폼의 CLOVA Sentiment 서비스를 활용하여 단어와 문장 속 감정을 분석하는 서비스를 간단히 구현해보겠습니다.
CLOVA Sentiment 서비스란?
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 등 다양한 환경의 도메인을 제공하여 범용적으로 활용할 수 있으며, 소규모 데이터만으로도 효율적으로 신규 도메인을 확장할 수 있도록 설계하였습니다.
👉상품 소개 자세히 보기
감정 분석 서비스 만들기
CLOVA Sentiment를 활용해보자!
CLOVA Sentiment(클로바 센티멘트)를 활용한 감정 분석 서비스 만들기.
쉽게 따라 해보실 수 있게 알려드리겠습니다.
1. 네이버 클라우드 플랫폼 콘솔에 접속합니다.
- ncloud.com 접속/로그인 후 우측 상단 Console(콘솔) 접속
- Products & Services > AI · NAVER API 클릭
2. CLOVA Sentiment 서비스를 활성화합니다.
- 상단 ‘Application’ 버튼 클릭 후 이름을 지정하고,
- CLOVA Sentiment를 선택한 후 웹서비스 URL을 지정합니다.
- 테스트를 위해서 사용될 Web 서비스 URL를 임의로 http://sentiment.csong.kr로 명시하였습니다.
* 자세한 안내는 아래 사용자 가이드를 참고해 주세요.
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) 정보를 기억하거나 메모장에 복사합니다.
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 jsonclient_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. 테스트 결과가 나왔습니다.
- 테스트 문장 “싸늘하다. 가슴에 비수가 날아와 꽂힌다.”의 감정 분석 결과, 아래와 같습니다.
- 부정적인 문장으로 파악되며, 감정 분석에 주요하게 영향을 준 표현도 하이라이트 되어 나타납니다.
서비스 구현을 위한 파라미터와 자세한 설명은 공식 매뉴얼을 참고해 주세요.
마지막으로 CLOVA Sentiment의 요금 정책은 아래와 같습니다.
과금 기준은 이용 횟수(호출)이며, 1회당 1,000자까지 이용 가능합니다.
- 월 누적 이용 횟수가 1,000회 이하일 시 서비스 비용은 무료이며
- 월 누적 이용 횟수 1,000회 초과 시에는 1건당 1원입니다.
위 예제 실행 중 어려움이 있으시면 댓글로 남겨주시거나, 네이버 클라우드 플랫폼 페이스북 유저 그룹에 남겨주시면 빠르게 도와드리겠습니다.