본문 바로가기
Python

[파이썬] 네이버 클로바 Summary API 문장 3줄 요약 해보기

by 퍼포먼스마케팅코더 2022. 7. 10.
반응형

오늘은 네이버 클로바 summary api라는 게 있습니다.  이게 뭐냐면 뉴스 보면 요약해주는 거 있지 않습니까 어떤 문단이 있는데 그걸 한 세 줄 정도로 해서 요약을 해주는 거예요. 사람들이 아까 모르겠지만 네이버 클로바 ai 서비스에서 무료로 제공을 해주는 도구가 있습니다. 한 1천 건까지는 무료입니다. 사용을 해보시면 유용하게 쓰일 만한 부분들이 많습니다. 
오늘은 여러분들한테 어떠한 긴 문장이 있어서 그걸 짧게 보고 싶다. 이런 거 있으면 그거를 코딩 형식으로 공유드리고자 해서 말씀드리고자 합니다.

파이썬 네이버 클로바 Summary API 글 3줄 요약 해보기

여기 네이버 api 요약으로 해서 그걸 사용하는 걸로 따져서 보자면은 쓰이는 게 한 두 가지가 있습니다.  언어로서만 따져서 보자면 한국어 일본어 이렇게 지원이 돼요. 그리고 모델은 두 가지가 있는데 하나는 제너럴이고 뉴스입니다 만약에 뉴스에서 이러한 요약하는 것을 한다면 굉장히 유용한 부분들이 있긴 하지만 저는 제너럴적인 부분 이런 것에 신경을 쓰고자 해서 제럴로 저는 선택을 했었었고요 그리고 여기서 한 가지 특별했던 부분들이 있는데 톤이라는 게 있습니다. 톤이라는 게 있냐면은 코드가 4가지가 구성이 되어 있는데 0으로 돼 있는 거는 요체예요.  요체 끝부분이 요로 끝나는 이걸로 돼 있는 거고 그다음에 1번이 구어체입니다.  말하는 2에 이런 식으로 문장을 바꿔서 요약해줘서 결론을 내주는 이런 게 있고 두 번째는 끝 문장이 요약을 해줬을 때 문체를 습니다로 말을 해주는 거고요 마지막 3은 음음체입니다.  음음체 뭐 해 뭐 그래라고 이러한 톤으로 해서 최종적으로 요약해서 보여준다는 거죠. 

product_num = 1

#메모장 상품 텍스트 가져오기

f = open('C:/Users/user/raw/products/product_info/product_summary_'+str(product_num)+'.txt', 'r', encoding='utf8')
#f = open('C:/Users/user/raw/products/product_info/product_'+str(product_num)+'.txt', 'r', encoding='utf8')

text = f.read()
text_2 = text.replace("\n", "")
text_3 = text_2.replace("________________", " ")
#print(text_3)


# 네이버 요약 API 

client_id = ""  #클라이언트 ID
client_secret = "" #클라이언트 시크릿 ID
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 = "general" # Model used for summaries (general, news)
tone = "2" # Converts the tone of the summarized result. (0, 1, 2, 3)

# 0 - 요체
# 1 - 구어체(요체)
# 2 - 습니다. 
# 3 - 음슴체


#f = open('C:/Users/user/raw/products/product_info/product_1.txt', 'r', encoding='utf8')
#text = f.read()
#text_2 = text.replace("\n", "")
#text_3 = text_2.replace("________________", " ")

summaryCount = "10" # This is the number of sentences for the summarized document.
url= "https://naveropenapi.apigw.ntruss.com/text-summary/v1/summarize" 

title = "상품정보요약"

#content 에 붙이자. 

content = text_3[1:800]
#content = text_3[1000:2000]
#content = text_3[2000:3000]
#content = text_3[3000:4000]


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)
    
summary_result = response.json()

f = open('C:/Users/user/raw/result.txt', 'w', encoding='utf8')

f.write(summary_result['summary'])

print(summary_result['summary'])

f.close()

조금 이런 거를 한번 사용을 해보시고 조금 판단을 해봐면은 괜찮지 않을까 싶네요.  물론 뉴스 기사는 정확하게 이게 서론 본론 결론 이런 것들이 정해져서 유용하게 쓰일 것 같지만은 이외에 다른 부분에서는 어떨지는 조금 많이 테스트를 해봐야 될 것 같습니다. 
그래서 오늘은 여러분들한테 만약에 긴 문장 그다음에 짧게 결론적으로만 해서 보고 싶다.  요약해서 보고 싶다라는 게 있으면은 네이버 클로바 쪽에서 이런 요약으로 해주는 api 서비스가 있으니 혹시 파이썬을 하시는 분들이라면 이런 걸 사용해봐도 괜찮다라는 것을 공유드리고자 이렇게 말씀드렸습니다.  오늘은 여기까지입니다.

 

반응형

댓글