>백엔드 개발 >파이썬 튜토리얼 >텍스트 문서 간의 유사성을 측정하는 방법은 무엇입니까?

텍스트 문서 간의 유사성을 측정하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-23 06:55:021046검색

How to Measure the Similarity Between Text Documents?

텍스트 문서 간의 유사성 확인

문서 유사성 측정

NLP에서 두 텍스트 문서 간의 유사성을 확인하려면, 표준 접근 방식에는 문서를 TF-IDF 벡터로 변환하는 작업이 포함됩니다. 그런 다음 이러한 벡터는 정보 검색 시스템에서 일반적으로 사용되는 측정 기준인 코사인 유사성을 계산하는 데 사용됩니다. 더 자세한 내용은 온라인 전자책인 "정보 검색 입문"을 참조하세요.

Implementation in Python

Python은 Gensim과 같은 라이브러리를 제공합니다. TF-IDF 및 코사인 유사성 계산을 용이하게 하는 scikit-learn. scikit-learn에서 문서 간 코사인 유사성을 계산하려면 TF-IDF 벡터를 활용해야 합니다.

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

documents = [open(f).read() for f in text_files]
tfidf = TfidfVectorizer().fit_transform(documents)
pairwise_similarity = tfidf * tfidf.T</code>

일반 텍스트 문서를 직접 처리할 수 있습니다.

<code class="python">corpus = ["I'd like an apple", "An apple a day keeps the doctor away"]
tfidf = TfidfVectorizer(min_df=1, stop_words="english").fit_transform(corpus)
pairwise_similarity = tfidf * tfidf.T</code>

결과

결과로 나오는 희소 행렬 pairwise_similarity는 정사각형 모양입니다. 주어진 문서와 가장 유사한 문서를 식별하려면 대각선 요소를 마스킹한 후(자기 유사성을 나타냄) NumPy의 argmax 기능을 활용할 수 있습니다.

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

arr = pairwise_similarity.toarray()
np.fill_diagonal(arr, np.nan)
input_doc = "Document to compare"
input_idx = corpus.index(input_doc)
result_idx = np.nanargmax(arr[input_idx])
most_similar_doc = corpus[result_idx]</code>

위 내용은 텍스트 문서 간의 유사성을 측정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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