Gensim을 활용하여 문서 간 유사도 시각화하기

이번 포스트에서는 Gensim을 사용하여 문서 간 유사도를 시각화하는 방법에 대해 알아보겠습니다. Gensim은 Python의 토픽 모델링과 자연어 처리를 위한 라이브러리로, 다양한 문서 간의 유사도를 계산하고 시각화할 수 있는 기능을 제공합니다.

1. Gensim 설치하기

먼저 Gensim을 설치해야 합니다. 아래의 명령어를 사용하여 Gensim을 설치할 수 있습니다.

pip install gensim

2. 문서 데이터 준비하기

Gensim을 사용하기 위해서는 분석할 문서 데이터를 준비해야 합니다. 예를 들어, 여러 개의 텍스트 파일이 있는 경우, 이 파일들을 읽어와서 Gensim이 이해할 수 있는 형식으로 변환해야 합니다.

3. 문서 토큰화 및 벡터화하기

Gensim에서는 문서를 토큰화하고 벡터로 변환하여 문서 간 유사도를 계산합니다. 이를 위해 각 문서를 토큰화하고, 단어의 빈도를 계산하여 벡터 형태로 표현해야 합니다.

아래는 텍스트 데이터를 토큰화하는 예시 코드입니다.

from gensim.utils import simple_preprocess

# 예시 문장
document = "This is an example sentence."

# 문장을 토큰화하여 리스트 형태로 저장
tokens = simple_preprocess(document)

print(tokens)

4. 문서 간 유사도 계산하기

문서를 토큰화하고 벡터로 변환한 후에는 Gensim을 사용하여 문서 간의 유사도를 계산할 수 있습니다. 유사도를 계산하기 위해서는 Gensim의 모델을 학습시켜야 합니다. 예를 들어, Word2Vec 모델을 사용하여 단어 간 유사도를 계산할 수 있습니다.

아래는 Word2Vec 모델을 사용하여 문서의 유사도를 계산하는 예시 코드입니다.

from gensim.models import Word2Vec

# 텍스트 데이터를 단어로 분리한 리스트 형태의 문서들을 가지고 Word2Vec 모델을 학습
model = Word2Vec(sentences)

# 문서 간 유사도 계산
similarity = model.wv.n_similarity(doc1, doc2)

5. 시각화하기

문서 간의 유사도를 계산한 후에는 해당 결과를 시각화하여 쉽게 이해할 수 있도록 할 수 있습니다. Gensim을 사용하면 결과를 다양한 시각화 방법으로 표현할 수 있습니다. 예를 들어, Matplotlib을 사용하여 유사도를 시각화할 수 있습니다.

아래는 유사도를 막대 그래프로 시각화하는 예시 코드입니다.

import matplotlib.pyplot as plt

# 문서 간 유사도
similarity_scores = [0.7, 0.9, 0.65, 0.8, 0.75]

# 문서 이름
documents = ["Doc1", "Doc2", "Doc3", "Doc4", "Doc5"]

# 유사도를 막대 그래프로 시각화
plt.bar(documents, similarity_scores)
plt.xlabel("Documents")
plt.ylabel("Similarity")
plt.title("Similarity Scores between Documents")
plt.show()

위 코드에서는 문서 간의 유사도 점수를 막대 그래프로 시각화하였습니다.

마무리

이렇게 Gensim을 활용하여 문서 간의 유사도를 시각화하는 방법에 대해 알아보았습니다. Gensim은 다양한 기능을 제공하며, 토픽 모델링과 자연어 처리 등에 널리 사용되는 라이브러리입니다. 문서 간의 유사도를 계산하고 시각화하여 데이터를 더 잘 이해할 수 있도록 활용해보세요.

#Gensim #문서유사도