0. 이 글은 누구를 위한 글인가요?
- 뉴스나 블로그 글을 한 줄로 자동 요약하고 싶어요.
- AI 모델을 직접 활용해 실전에서 쓸 수 있는 요약 시스템을 만들고 싶어요.
- 제목이나 본문을 요약해 태그/설명/소셜 요약으로 쓰고 싶어요.
1. 프로젝트 개요
- 입력: 뉴스 제목 또는 뉴스 본문
- 출력: 요약된 문장 (1~2줄)
- 사용 모델: KoBART Summary (digit82/kobart-summarization)
- 도구: Hugging Face Transformers + PyTorch
2. 라이브러리 설치
pip install transformers pandas torch sentencepiece
3. 모델 로딩
from transformers import BartTokenizer, BartForConditionalGeneration
model_name = "digit82/kobart-summarization"
tokenizer = BartTokenizer.from_pretrained(model_name)
model = BartForConditionalGeneration.from_pretrained(model_name)
4. 샘플 뉴스 본문 준비
text = """
인공지능(AI) 기술이 빠르게 발전하면서 의료, 교육, 금융 등 다양한 산업 분야에서 활용도가 높아지고 있다.
특히 챗봇, 자동 번역기, 이미지 생성기 등 실생활 속 AI 서비스가 대중화되며 기술에 대한 관심도도 높아지고 있다.
"""
5. 요약 함수 만들기
import torch
def summarize(text, max_length=40):
input_ids = tokenizer.encode(text, return_tensors='pt', max_length=512, truncation=True)
summary_ids = model.generate(input_ids, max_length=max_length, num_beams=4, early_stopping=True)
output = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
return output
6. 요약 결과 확인
summary = summarize(text)
print("원문:")
print(text.strip())
print("\n요약:")
print(summary)
출력 예시
원문:
인공지능(AI) 기술이 빠르게 발전하면서 의료, 교육, 금융 등 다양한 산업 분야에서 활용도가 높아지고 있다.
특히 챗봇, 자동 번역기, 이미지 생성기 등 실생활 속 AI 서비스가 대중화되며 기술에 대한 관심도도 높아지고 있다.
요약:
AI 기술이 다양한 산업에서 활용되며 대중화되고 있다.
7. 여러 문장 자동 요약 적용 (DataFrame)
import pandas as pd
df = pd.read_csv("인공지능_블로그_감성분석결과.csv")
df['요약'] = df['제목'].apply(lambda x: summarize(x) if isinstance(x, str) else '')
print(df[['제목', '요약']].head())
출력 예시
제목 | 요약 |
인공지능이 바꾸는 미래 사회 | 인공지능이 사회를 변화시킨다 |
챗GPT 활용법 정리 | 챗GPT 사용법 소개 |
인공지능 시대, 우리가 준비할 것들 | AI 시대의 준비 |
8. 요약 결과 저장하기
df.to_csv("인공지능_요약결과.csv", index=False, encoding='utf-8-sig')
9. 마무리 요약
단계 | 설명 |
모델 준비 | KoBART 사전학습 요약 모델 로드 |
단일 문장 요약 | summarize() 함수로 한 줄 생성 |
데이터프레임 처리 | .apply() 로 일괄 요약 |
결과 저장 | CSV로 저장 가능 |
10. 확장 아이디어
- 뉴스 본문 전체 요약 (긴 문장 입력)
- 긍정 뉴스만 골라 요약하기
- 요약 + 키워드 추출 + 감성 표시 결합
- 요약 결과를 기반으로 뉴스 알림, 카드뉴스 자동 생성