[이렇게 사용하세요!] CLOVA Summary로 뉴스 요약 서비스 만들기 (이건 마치 ‘세줄 요약 봇’)

NAVER CLOUD PLATFORM
NAVER CLOUD PLATFORM
9 min readAug 27, 2021

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

오늘은 네이버 클라우드 플랫폼의 CLOVA Summary를 서비스를 활용해서 뉴스 요약 서비스를 만들어 보겠습니다.

CLOVA Summary 서비스란?

CLOVA Summary : 긴 문서를 요약, 핵심 문장을 알려줍니다 ▶ 바로가기

CLOVA Summary(클로바 써머리)는 NLP(Natural Language Processing, 자연어 처리) 기술과 그래프 기반 랭킹 알고리즘 기반으로 문서에서 중요한 문장을 가려내고, 이를 기준으로 요약 결과를 추출하는 서비스입니다.

뉴스 문서의 경우, 작성 형태에 특화된 요약 모델을 제공하여 보다 적합한 요약 결과를 추출해 줍니다. 수년간의 연구를 거쳐 현재 네이버 뉴스 요약봇에 적용되어 있는 기술로 네이버를 통해 검증된, 높은 수준의 서비스를 제공하고 있습니다.

< 주요 특징 >

- 비지도 학습(Unsupervised learning) 방식의 하나인 ‘그래프 기반 랭킹 알고리즘’이라는 머신러닝(Machine Learning) 기법을 적용하여 대량의 학습 문서가 필요하지 않습니다.

- 문장 요약 결과를 원하는 어투(높임말, 반말)로 변환하는 기능을 제공합니다.

- 다양한 상황, 용도에 맞게 선택적으로 활용할 수 있습니다.

얼마 전 이두희 님도 ‘세줄 요약 봇’을 만들어 화제였죠?

긴 문장을 세 줄로 요약해드립니다 — https://tmi-bot.com/ (by iamdoo2 @LIKELION)

뉴스 요약 서비스 만들기

1. 네이버 클라우드 플랫폼 ncloud.com 접속 후 로그인합니다. (신규 가입 시 10만 원 크레딧 제공)😀

2. 우측 상단 콘솔 (Console) 접속 후 [ Product & Service > AI·NAVER API ] 순서로 이동합니다.

네이버 클라우드 플랫폼 포탈에서 Product>AI-Application Service 접속하는 화면

3. CLOVA Summary 서비스를 활성화합니다.

[ Application 등록 ] 버튼을 클릭하고 CLOVA Summary 서비스를 활성화 합니다.

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

테스트를 위해 웹 서비스 URL은 임의로 http://summary.csong.kr으로 명시하였습니다.

Apllication 등록 관련 자세한 안내는 아래 공식 매뉴얼 페이지를 참조 바랍니다.

- 매뉴얼 링크 : https://guide.ncloud-docs.com/docs/naveropenapiv3-application

4. 생성한 Summary 앱을 클릭하여 인증정보를 확인합니다.​

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

5. 문서를 RESTful API로 전달하여 요약 결과를 리턴해주는 API를 사용합니다.

하나의 문서를 RESTful API 방식으로 전달하면, 서버에서 하나의 요약 결과를 리턴해주는 API를 사용할 예정입니다. 본 과정에는 python을 활용했습니다.​

앞서 메모한 X-NCP-APIGW-API-KEY-ID (Client ID)X-NCP-APIGW-API-KEY (Client Secret)를 치환합니다. title 과 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"
headers = {
"X-NCP-APIGW-API-KEY-ID": client_id,
"X-NCP-APIGW-API-KEY": client_secret,
"Content-Type": "application/json"
}
language = "ko" # Language of document (ko, ja )
model = "news" # Model used for summaries (general, news)
tone = "2" # Converts the tone of the summarized result. (0, 1, 2, 3)
summaryCount = "3" # This is the number of sentences for the summarized document.
url= "https://naveropenapi.apigw.ntruss.com/text-summary/v1/summarize"
title= "'하루 2000억' 판 커지는 간편송금 시장"
content = "간편송금 이용금액이 하루 평균 2000억원을 넘어섰다. 한국은행이 17일 발표한 '2019년 상반기중 전자지급서비스 이용 현황'에 따르면 올해 상반기 간편송금서비스 이용금액(일평균)은 지난해 하반기 대비 60.7% 증가한 2005억원으로 집계됐다. 같은 기간 이용건수(일평균)는 34.8% 늘어난 218만건이었다. 간편 송금 시장에는 선불전자지급서비스를 제공하는 전자금융업자와 금융기관 등이 참여하고 있다. 이용금액은 전자금융업자가 하루평균 1879억원, 금융기관이 126억원이었다. 한은은 카카오페이, 토스 등 간편송금 서비스를 제공하는 업체 간 경쟁이 심화되면서 이용규모가 크게 확대됐다고 분석했다. 국회 정무위원회 소속 바른미래당 유의동 의원에 따르면 카카오페이, 토스 등 선불전자지급서비스 제공업체는 지난해 마케팅 비용으로 1000억원 이상을 지출했다. 마케팅 비용 지출규모는 카카오페이가 491억원, 비바리퍼블리카(토스)가 134억원 등 순으로 많았다."
data = {
"document": {
"title": title,
"content" : content
},
"option": {
"language": language,
"model": model,
"tone": tone,
"summaryCount" : summaryCount
}
}
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)

6. 파이썬 예제 파일을 실행한 내용입니다.

예제에서 JSON body 내용을 같이 출력하여 확인하였습니다.

예제 파이썬 파일을 실행 후 확인하는 화면

7. 요약 결과는 다음과 같습니다.

RESTful API의 필드에 대한 상세 정보는 가이드 문서를 참고 부탁드립니다.​

- 매뉴얼 링크 : https://api.ncloud-docs.com/docs/ai-naver-clovasummary-api

CLOVA Summary의 요금 정책은 아래와 같습니다.

CLOVA Summary 요금 안내 ▶ 바로가기

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

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

👇CLOVA Summary 자세히 보기👇

--

--

NAVER CLOUD PLATFORM
NAVER CLOUD PLATFORM

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