Gensim을 사용하여 문서 요약의 성능 향상을 위한 n-gram 방법 실습하기
Gensim은 자연어 처리를 위한 강력한 도구로, 문서 요약과 같은 작업에도 사용될 수 있습니다. 이번 실습에서는 Gensim의 n-gram 방법을 활용하여 문서 요약의 성능을 향상시켜보겠습니다.
1. 데이터 전처리
먼저, 문서 데이터를 전처리해야 합니다. 이 단계에서는 텍스트에서 불필요한 문자나 특수 문자를 제거하고, 대소문자를 통일시키는 등의 작업을 수행합니다.
import re
from gensim.utils import simple_preprocess
def preprocess_text(text):
# 특수 문자 및 숫자 제거
text = re.sub(r'\W+', ' ', text)
# 소문자로 변환
text = text.lower()
# 단어 토큰화
tokens = simple_preprocess(text)
return tokens
2. 문서 요약 모델 학습
전처리된 문서 데이터를 바탕으로 문서 요약 모델을 학습합니다. Gensim의 Phrases
클래스와 TextRank
알고리즘을 활용하여 n-gram 방법을 적용할 수 있습니다.
from gensim.summarization import keywords, summarize
from gensim.models import Phrases, TextRank
def train_summarization_model(documents):
# n-gram 모델 생성
ngram = Phrases(documents)
# TextRank 알고리즘을 사용한 문서 요약 모델 생성
model = TextRank(ngram)
return model
3. 문서 요약 수행
학습된 문서 요약 모델을 사용하여 실제로 문서를 요약해보겠습니다. 입력 문서와 요약 결과를 출력하는 함수를 작성하겠습니다.
def summarize_document(model, document):
# 문서 요약
summary = model.summarize(document)
# 결과 출력
print("입력 문서:", document)
print("요약 결과:", summary)
# 예시 문서
document = "내일은 비가 올 예정이며, 최고 기온은 25도로 예상됩니다. 출근하기 전에 우산을 꼭 챙기세요."
# 문서 요약 모델 학습
model = train_summarization_model([preprocess_text(document)])
# 문서 요약 수행
summarize_document(model, document)
결론
이번 실습에서는 Gensim을 사용하여 문서 요약의 성능을 향상시키기 위한 n-gram 방법을 실습해보았습니다. 전처리 작업을 통해 문서를 정제하고, n-gram 모델을 학습하여 요약 결과를 얻을 수 있습니다. 문서 요약은 텍스트 데이터를 다루는 다양한 응용분야에서 유용하게 활용될 수 있습니다.
#NLP #문서요약