>  기사  >  백엔드 개발  >  Python에서 텍스트 문서 간의 유사성을 어떻게 확인할 수 있습니까?

Python에서 텍스트 문서 간의 유사성을 어떻게 확인할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-23 06:52:02121검색

How Can You Determine the Similarity Between Text Documents in Python?

텍스트 유사성 결정

자연어 처리(NLP)에서는 두 텍스트 문서 간의 유사성을 결정하는 것이 중요합니다. 가장 일반적인 접근 방식은 문서를 TF-IDF 벡터로 변환하고 코사인 유사성을 계산하는 것입니다.

TF-IDF 및 코사인 유사성 구현

Python에서는 Gensim scikit-learn 패키지는 TF-IDF 및 코사인 유사성 구현을 제공합니다. 다음 코드는 scikit-learn을 사용하여 문서를 TF-IDF 벡터로 변환하고 쌍별 유사성을 계산합니다.

<code class="python">from sklearn.feature_extraction.text import TfidfVectorizer

# Load documents
documents = [open(f).read() for f in text_files]

# Create TF-IDF vectorizer
tfidf = TfidfVectorizer().fit_transform(documents)

# Compute pairwise similarity
pairwise_similarity = tfidf * tfidf.T</code>

결과 해석

Pairwise_similarity는 희박합니다. 문서 간의 유사성 점수를 나타내는 행렬입니다. 각 문서의 자체 유사성은 1이므로 이러한 값은 가려집니다. 아래 코드는 주어진 입력 문서와 가장 유사한 문서를 찾습니다.

<code class="python">import numpy as np

# Input document index
input_idx = corpus.index(input_doc)

# Mask out diagonal and find the most similar document
np.fill_diagonal(pairwise_similarity.toarray(), np.nan)
result_idx = np.nanargmax(pairwise_similarity[input_idx])

# Get the most similar document
similar_doc = corpus[result_idx]</code>

기타 방법

Gensim은 텍스트 유사성 작업을 위한 추가 옵션을 제공합니다. 살펴볼 또 다른 리소스는 [이 스택 오버플로 질문](https://stackoverflow.com/questions/52757816/how-to-find-text-similarity-between-two-documents)입니다.

위 내용은 Python에서 텍스트 문서 간의 유사성을 어떻게 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.