[python] gensim을 활용한 문서 군집화 시각화 방법 소개

Gensim은 Python으로 작성된 오픈 소스 토픽 모델링 및 자연어 처리 라이브러리입니다. 이 라이브러리는 토픽 모델링, 잠재 디리클레 할당(LDA) 및 임베딩 알고리즘을 포함하여 다양한 자연어 처리 작업을 수행할 수 있습니다. 특히 Gensim은 문서 군집화를 수행하고 시각화하는데 유용하게 사용됩니다. 이번 글에서는 Gensim을 사용하여 문서 군집화를 수행하고 결과를 시각화하는 방법을 소개하겠습니다.

1. 문서 군집화

문서 군집화는 비슷한 주제 또는 콘텐츠를 가진 문서들을 그룹화하는 작업입니다. Gensim을 사용하여 문서 군집화를 수행하려면 먼저 문서들을 벡터화해야 합니다. 이를 위해 TF-IDF(Term Frequency-Inverse Document Frequency)나 Word2Vec과 같은 방법을 사용할 수 있습니다.

2. Gensim을 사용한 문서 군집화

from gensim import corpora
from gensim.models import TfidfModel
from gensim.models import LsiModel
from gensim import similarities
from gensim.models import Word2Vec

# 문서 전처리 및 벡터화
documents = ["문서1 내용", "문서2 내용", ...]
texts = [[word for word in document.lower().split()] for document in documents]
dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]

# TF-IDF 모델 생성
tfidf = TfidfModel(corpus)
corpus_tfidf = tfidf[corpus]

# LSI 모델 생성
lsi = LsiModel(corpus_tfidf, id2word=dictionary, num_topics=2)

# 문서 유사도 계산
index = similarities.MatrixSimilarity(lsi[corpus_tfidf])

# 유사도 기반 군집화
sims = index[lsi[corpus_tfidf]]

3. 시각화

Gensim의 시각화 도구를 활용하여 군집화 결과를 시각화할 수 있습니다.

import pyLDAvis.gensim_models
# pyLDAvis.enable_notebook()
pyLDAvis.gensim_models.prepare(lsi, corpus_tfidf, dictionary)

이렇게 하면 Gensim을 사용하여 문서 군집화를 수행하고 시각화할 수 있습니다. 문서 군집화를 통해 관련된 주제를 더 잘 이해하고 관리할 수 있습니다.

참고 자료