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 #문서요약