Gensim과 TF-IDF를 조합한 문서 요약 방법 구현하기

문서 요약은 긴 텍스트를 간결하게 요약하는 기술로, 다양한 인공지능 기술을 활용하여 구현할 수 있습니다. 이번 포스트에서는 Gensim과 TF-IDF를 조합하여 문서 요약을 구현하는 방법을 알아보겠습니다.

1. Gensim 소개

Gensim은 Python에서 자연어 처리를 위한 라이브러리로, 토픽 모델링, 문서 유사도 계산, 문서 요약 등 다양한 기능을 제공합니다. Gensim은 corpus라는 데이터 구조를 사용하여 문서를 효율적으로 처리할 수 있도록 지원합니다.

2. TF-IDF 소개

TF-IDF(Term Frequency-Inverse Document Frequency)는 자연어 처리에서 매우 중요한 개념입니다. 이는 단어가 특정 문서에서 얼마나 중요한지를 계산하기 위한 기법으로, 단어의 출현 빈도와 역문서 빈도를 고려합니다.

3. 문서 요약 방법 구현하기

다음은 Gensim과 TF-IDF를 조합하여 문서 요약을 구현하는 예시 코드입니다.

import gensim
from gensim.models import TfidfModel
from gensim.corpora import Dictionary

# 문서 데이터
documents = ["첫 번째 문서입니다.", "두 번째 문서입니다.", "세 번째 문서입니다."]

# 문서를 토큰화하여 처리하기 위한 사전 생성
tokenized_documents = [doc.split() for doc in documents]
dictionary = Dictionary(tokenized_documents)
corpus = [dictionary.doc2bow(doc) for doc in tokenized_documents]

# TF-IDF 모델 학습
tfidf_model = TfidfModel(corpus)
tfidf_corpus = tfidf_model[corpus]

# 문서 요약
summary = []
for doc in tfidf_corpus:
    # 문서를 TF-IDF로 변환하여 가장 중요한 단어 3개 추출
    doc = sorted(doc, key=lambda x: x[1], reverse=True)[:3]
    # 추출한 단어들로 요약문 생성
    summary.append(" ".join([dictionary[word[0]] for word in doc]))

# 결과 출력
for i, s in enumerate(summary):
    print(f"원문: {documents[i]}")
    print(f"요약: {s}")

위 코드는 “첫 번째 문서입니다.”, “두 번째 문서입니다.”, “세 번째 문서입니다.”라는 세 개의 문서를 토큰화하여 TF-IDF 모델을 학습하고, 각 문서에서 상위 3개의 단어를 추출하여 요약하는 예시입니다.

4. 결론

Gensim과 TF-IDF를 조합하여 문서 요약을 구현하는 방법에 대해 알아보았습니다. 이를 통해 복잡한 문서를 간결하게 요약하여 정보를 빠르게 파악할 수 있습니다. Gensim과 TF-IDF를 적절히 활용하면 보다 정확하고 효율적인 문서 요약 기능을 구현할 수 있습니다.

#자연어처리 #문서요약