[python] gensim을 활용한 문서 유사도 계산 결과 시각화 방법
본 포스트에서는 Python의 gensim 라이브러리를 사용하여 문서 간 유사도를 계산하고, matplotlib 라이브러리를 활용하여 이를 시각화하는 방법을 다룹니다.
목차
gensim을 이용한 문서 유사도 계산
gensim은 Python에서 사용되는 자연어 처리를 위한 라이브러리로, LDA(Latent Dirichlet Allocation), TF-IDF(Term Frequency-Inverse Document Frequency)와 같은 기술을 지원합니다.
아래는 gensim을 사용하여 문서 간 유사도를 계산하는 간단한 예제 코드입니다.
from gensim import corpora, models, similarities
import numpy as np
# 문서 가져오기
documents = ["사과는 맛있다", "바나나는 노랗다", "사과와 바나나"]
# 텍스트 처리를 위한 전처리
texts = [[word for word in document.split()] for document in documents]
# 단어 사전 생성
dictionary = corpora.Dictionary(texts)
# 말뭉치 생성
corpus = [dictionary.doc2bow(text) for text in texts]
# TF-IDF 모델 생성
tfidf = models.TfidfModel(corpus)
# TF-IDF 변환
corpus_tfidf = tfidf[corpus]
# 유사도 지수 계산
index = similarities.MatrixSimilarity(corpus_tfidf)
# 유사도 결과 출력
sims = index[corpus_tfidf]
print(list(enumerate(sims)))
문서 유사도 시각화
이제 계산된 문서 간 유사도를 matplotlib 라이브러리를 활용하여 시각화해보겠습니다. 아래는 계산된 유사도를 막대 그래프로 시각화하는 예제 코드입니다.
import matplotlib.pyplot as plt
# 문서별 유사도 시각화
for i, sim in enumerate(sims):
plt.bar(range(len(sim)), sim, align='center', alpha=0.5, label=f'Document {i+1}')
plt.xlabel('문서')
plt.ylabel('유사도')
plt.title('문서 간 유사도')
plt.legend()
plt.show()
위 코드를 실행하면, 각 문서 간의 유사도를 쉽게 비교할 수 있는 막대 그래프가 생성됩니다.
결론
이렇게 gensim을 사용하여 문서 간 유사도를 계산하고, matplotlib를 사용하여 유사도를 시각화할 수 있습니다. 이를 통해 자연어 처리 분야에서 문서 간의 유사도를 쉽게 이해하고 시각화할 수 있는 방법을 알아보았습니다.
위의 예제 코드를 통해 간단하게 문서 유사도 계산과 시각화를 실습해보시기를 권장합니다.