Text Summarization
텍스트 요약은 핵심 내용을 유지하면서 문서를 더 짧은 텍스트로 압축합니다. 추출적·추상적 방법, ROUGE, 충실도를 다룹니다.
텍스트 요약은 문서의 가장 중요한 정보를 유지하면서 더 짧은 텍스트로 압축하는 자연어 처리(NLP) 작업입니다. 주요 접근 방식은 두 가지입니다. 추출 요약은 원문에서 가장 중요한 문장을 선택하고, 추상 요약은 사람이 쓰는 것처럼 새로운 문장을 작성합니다. 요약은 하나 또는 여러 문서를 다룰 수 있으며, "계약서에 해지에 관해 어떤 내용이 있었나요?"와 같은 질문에 초점을 맞추거나 일반적인 내용으로 작성할 수 있습니다. 이메일 클라이언트, 회의 도구, 뉴스 앱, 검색 엔진, 대규모 언어 모델(LLM) 어시스턴트는 모두 요약을 생성합니다.
추출 요약#
IBM의 Hans Peter Luhn은 1958년에 초기 자동 요약 시스템 중 하나를 개발했습니다. 문장에 포함된 빈번하고 의미 있는 단어를 기준으로 각 문장에 점수를 매기고, 점수가 가장 높은 문장을 초록으로 반환하는 방식이었습니다. H. P. Edmundson은 1969년에 단서 단어, 제목 단어, 문장 위치를 추가했고, 2004년에는 그래프 방식이 등장했습니다. TextRank와 LexRank는 문장을 노드로, 문장 간 유사도를 엣지로 하는 그래프를 구성한 다음, 문서의 나머지 부분과 가장 유사한 문장인 중심성이 가장 높은 문장을 선택합니다. 문장 임베딩을 사용하면 중심성을 몇 줄의 코드로 계산할 수 있습니다.
from sentence_transformers import SentenceTransformer
sentences = [
"The James Webb Space Telescope launched on 25 December 2021 on an Ariane 5 rocket from French Guiana.",
"Webb observes the universe in infrared light, which passes through the dust that hides young stars.",
"Its 6.5-meter primary mirror is built from 18 gold-coated hexagonal segments.",
"A five-layer sunshield the size of a tennis court keeps the mirror and instruments cold.",
"The telescope orbits the Sun about 1.5 million kilometers from Earth, near the second Lagrange point.",
"NASA published the first full-color science images from Webb in July 2022.",
]
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
# 각 문장의 모든 문장과의 평균 유사도(중심성)를 기준으로 점수를 계산합니다.
embeddings = model.encode(sentences)
centrality = model.similarity(embeddings, embeddings).mean(dim=1)
# 중심성이 가장 높은 두 문장을 원래 순서대로 유지합니다.
top = sorted(centrality.argsort(descending=True)[:2].tolist())
print(" ".join(sentences[i] for i in top))요약에는 발사 문장과 궤도 문장이 남습니다. 추출 요약의 모든 단어는 원문에서 가져오므로 문서에 없는 내용을 말할 수 없습니다. 또한 선택한 문장에 포함된 정보는 독자에게 필요하지 않을 수 있는 세부 사항과, 빠진 문장을 가리키는 거울 문장의 첫 단어인 "Its"와 같은 대명사를 포함해 모두 유지합니다.
추상 요약#
추상 요약 모델은 시퀀스-투-시퀀스 모델입니다. 인코더가 문서를 읽고 디코더가 한 번에 토큰 하나씩 요약을 작성합니다. Alexander Rush와 동료들은 2015년에 어텐션 메커니즘을 사용해 뉴스 헤드라인을 작성하는 모델을 학습했습니다. Abigail See와 동료들이 2017년에 개발한 포인터 생성 네트워크는 디코더가 이름과 숫자 같은 단어를 원문에서 직접 복사하도록 하고 반복을 억제했습니다. 사전 학습된 트랜스포머는 이후 품질을 크게 향상했습니다. Facebook의 BART(2019)는 손상된 텍스트를 복원하는 방식으로 학습했고, Google의 PEGASUS(2020)는 문서에서 제거된 문장 전체를 다시 생성하는 방식으로 학습했습니다. 이는 요약 자체와 가까운 자기 지도 사전 학습 작업입니다.
LLM은 지시를 바탕으로 요약하며 길이, 대상 독자, 형식에 관한 요청을 따를 수 있습니다. 문서가 컨텍스트 윈도우보다 길면 여러 청크로 나누어 각 청크를 요약한 다음, 두 번째 단계에서 부분 요약을 병합합니다. 이를 맵-리듀스 패턴이라고 합니다. 요약은 텍스트를 넘어 확장됩니다. 동영상 이해 모델은 클립의 사건을 설명하고, 이미지 캡셔닝은 사진을 한 문장으로 요약합니다. Ultralytics Platform Agents에서는 LLM 블록이 이미지와 상위 단계의 YOLO26 감지 결과를 짧은 텍스트 요약으로 압축할 수 있습니다. 연결된 Slack 블록은 {output} 플레이스홀더를 통해 해당 요약을 채널에 게시합니다.
데이터셋 및 평가#
대부분의 모델은 기사와 요약 쌍으로 구성된 학습 데이터로 학습합니다. CNN/Daily Mail은 뉴스 기사와 글머리표 형식의 하이라이트를 짝지으며, XSum(2018)은 문장 전체를 재사용하는 경우가 드물어 추상화를 유도하는 BBC 기사와 한 문장 요약을 짝짓습니다. 2004년 Chin-Yew Lin이 발표한 ROUGE는 사람이 작성한 참조 요약과 겹치는 단어 및 단어 시퀀스를 기준으로 요약 점수를 계산합니다. ROUGE-1은 단일 단어, ROUGE-2는 단어 쌍, ROUGE-L은 최장 공통 부분 수열을 계산합니다. 중복도 점수로는 사실 오류를 파악하기 어렵습니다. Joshua Maynez와 동료들은 2020년에 XSum에서 연구한 모든 추상 요약 모델의 요약에서 인간 어노테이터가 상당한 양의 환각 콘텐츠를 발견했다고 밝혔습니다. 또한 원문이 요약 내용을 함의하는지 확인하는 텍스트 함의 측정값이 ROUGE 및 다른 표준 지표보다 충실도를 더 잘 반영한다고 밝혔습니다.
요약과 관련 용어 비교#
- 텍스트 생성: 프롬프트를 바탕으로 모든 유형의 텍스트를 생성합니다. 요약은 원본 문서의 내용으로 제한된 텍스트 생성입니다.
- 기계 번역: 동일한 인코더-디코더 아키텍처를 사용해 텍스트의 전체 내용을 다른 언어로 옮깁니다.
- 감성 분석: 텍스트에 표현된 의견을 분류하며, 의견 요약은 여러 리뷰를 주요 칭찬과 불만 사항으로 압축해 두 작업을 결합합니다.
- 검색 증강 생성(RAG): 질문과 관련된 구절을 검색해 그 내용을 바탕으로 답변을 생성하며, 여러 문서를 대상으로 하는 질의 중심 요약의 한 형태입니다.










