在自然语言处理(NLP)领域,文本相似度计算是一个常见的任务。本文将介绍如何使用Python计算文本之间的相似度,涵盖了余弦相似度、Jaccard相似度和编辑距离等方法。
1. 余弦相似度
余弦相似度是一种衡量两个向量夹角的方法,用于衡量文本的相似度。首先,将文本转换为词频向量,然后计算两个向量之间的余弦值。
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import cosine_similarity
def calculate_cosine_similarity(text1, text2):
vectorizer = CountVectorizer()
corpus = [text1, text2]
vectors = vectorizer.fit_transform(corpus)
similarity = cosine_similarity(vectors)
return similarity[0][1]
text1 = "I love Python programming"
text2 = "Python programming is great"
cosine_similarity = calculate_cosine_similarity(text1, text2)
print(cosine_similarity)
2. Jaccard相似度
Jaccard相似度通过计算两个集合之间的交集和并集之间的比率来衡量相似性。
def calculate_jaccard_similarity(text1, text2):
set1 = set(text1.split())
set2 = set(text2.split())
intersection = len(set1.intersection(set2))
union = len(set1.union(set2))
return intersection / union
text1 = "I love Python programming"
text2 = "Python programming is great"
jaccard_similarity = calculate_jaccard_similarity(text1, text2

本文介绍了Python中计算文本相似度的几种方法,包括余弦相似度、Jaccard相似度、编辑距离以及基于TF-IDF、Word2Vec、Doc2Vec和BERT的高级技术。这些方法在自然语言处理任务中用于衡量文本的相关性和语义相似性。
3288

被折叠的 条评论
为什么被折叠?



