[python] 파이썬 gensim을 사용한 문서 군집화 결과 시각화 방법

이번 포스트에서는 파이썬 라이브러리인 gensim을 활용하여 문서 군집화를 수행한 후, 결과를 시각화하는 방법에 대해 알아보겠습니다.

1. 문서 군집화 수행 및 결과 얻기

우선, gensim을 사용하여 문서 군집화를 수행합니다. 다음은 예제 코드입니다.

from gensim import corpora, models
from gensim.models import LsiModel
from gensim.similarities import MatrixSimilarity
from gensim.matutils import kullback_leibler, jaccard, hellinger, cossim

# 문서들을 불러와서 전처리
documents = ["문서1 내용", "문서2 내용", ...]
processed_docs = [gensim.utils.simple_preprocess(doc) for doc in documents]

# 단어-문서 행렬 생성
dictionary = corpora.Dictionary(processed_docs)
doc_term_matrix = [dictionary.doc2bow(doc) for doc in processed_docs]

# LSI 모델 훈련
lsi_model = LsiModel(doc_term_matrix, id2word=dictionary, num_topics=2)

# 문서 유사도 행렬 계산
index = MatrixSimilarity(lsi_model[doc_term_matrix])

위 코드를 실행하면, lsi_model에 군집화 결과가 저장됩니다.

2. 군집화 결과 시각화

다음으로, 군집화 결과를 시각화하여 쉽게 이해할 수 있도록 표현해보겠습니다.

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

# 각 문서의 군집화 결과 가져오기
topics = [lsi_model[dictionary.doc2bow(doc)] for doc in processed_docs]

# 군집화 결과를 데이터프레임으로 변환
df_topics = pd.DataFrame(topics, columns=['topic1', 'topic2'])

# 군집화 결과 시각화
sns.scatterplot(x='topic1', y='topic2', data=df_topics)
plt.show()

위 코드를 실행하면, 군집화 결과가 산점도로 시각화되어 나타납니다.

3. 결론

이렇게 gensim을 사용하여 문서 군집화를 수행하고, 시각화하는 방법에 대해 알아보았습니다. 군집화된 결과를 시각화함으로써 문서 간의 유사성을 파악할 수 있고, 데이터를 더욱 효과적으로 분석할 수 있습니다.

참고 문헌: