[python] gensim을 활용한 문서 유사도 계산 결과 해석 방법

Gensim은 Python에서 자연어 처리와 토픽 모델링을 위한 라이브러리로, 문서 간의 유사도를 계산하는 데에도 사용됩니다. 이 글에서는 Gensim을 사용하여 문서 유사도를 계산하고, 그 결과를 해석하는 방법에 대해 알아보겠습니다.

목차

  1. Gensim을 사용한 문서 유사도 계산
  2. 문서 유사도 계산 결과 해석

Gensim을 사용한 문서 유사도 계산

Gensim을 사용하여 문서 유사도를 계산하기 위해서는 먼저 문서들을 적절히 전처리하고, 단어 벡터를 만들어야 합니다. 이를 위해 gensim.models 모듈의 TfidfModel이나 Doc2Vec 등을 사용하여 문서의 TF-IDF 가중치 또는 임베딩 벡터를 생성합니다.

아래는 Gensim을 사용하여 TF-IDF 가중치를 계산하고 문서 간의 유사도를 구하는 간단한 예제 코드입니다.

from gensim import corpora, models, similarities
from gensim.models import TfidfModel
from gensim.similarities import MatrixSimilarity
from gensim.matutils import corpus2csc

# 전처리된 문서들로부터 단어-문서 행렬 생성
corpus = [
    [(-1, 1), ( 0, 1), ( 1, 1)],  # E.g., [(term index, term frequency), ...]
    [(-1, 1), ( 0, 1), ( 1, 1), (2, 2)],
    [( 0, 1), (2, 2)],
    [( 0, 1), (2, 1), (3, 1)],
]

# TF-IDF 모델 생성 및 문서 변환
tfidf = TfidfModel(corpus)
corpus_tfidf = tfidf[corpus]

# 유사도 행렬 계산
index = similarities.MatrixSimilarity(corpus_tfidf)

# 문서 간의 유사도 계산
sims = index[corpus_tfidf]
print(sims)

위 코드는 TF-IDF를 사용하여 문서 간의 유사도를 계산하는 과정을 보여줍니다.

문서 유사도 계산 결과 해석

문서 유사도 계산 결과는 각 문서 쌍에 대한 유사도 값을 포함하는 행렬로 나타납니다. 이 값은 보통 0과 1 사이의 범위로 표현되며, 1에 가까울수록 두 문서가 유사하다는 것을 나타냅니다. 이 유사도 값을 바탕으로 문서 간의 관계를 해석할 수 있습니다.

만약 유사도 값이 0.9 이상인 두 문서가 있다면, 이는 두 문서가 매우 유사하다는 것을 나타냅니다. 반면에 유사도 값이 0.5 이하라면, 두 문서가 상대적으로 유사하지 않다는 것을 의미합니다.

따라서 문서 유사도 계산 결과를 해석할 때에는 유사도 값의 범위를 고려하여 문서 간의 관계를 분석해야 합니다.

이상으로 Gensim을 활용하여 문서 유사도를 계산하고, 결과를 해석하는 방법에 대해 알아보았습니다.

참고문헌: