能否提供一个用于计算文本相似度的具体编程代码示例(如余弦相似度或Jaccard相似度)?
时间: 2024-09-20 08:11:10 浏览: 32
当然可以。这里是一个简单的Python代码示例,使用余弦相似度来计算两个文本向量之间的相似度:
```python
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 假设我们有两段文本
text1 = "这是一段文本"
text2 = "这是另一段相关的文本"
# 将文本转换成向量(CountVectorizer用于词频统计)
vectorizer = CountVectorizer().fit_transform([text1, text2])
vectors = vectorizer.toarray()
# 计算余弦相似度
similarity_matrix = cosine_similarity(vectors)
cosine_sim = similarity_matrix[0][1]
print(f"文本1和文本2的余弦相似度为: {cosine_sim}")
# 如果你想看Jaccard相似度,可以先将文本分词并转化为集合:
def jaccard(text1, text2):
set1 = set(vectorizer.get_feature_names_out().tolist())
set2 = set(text2.split())
intersection = set1.intersection(set2)
union = set1.union(set2)
return len(intersection) / len(union)
jaccard_sim = jaccard(text1, text2)
print(f"文本1和文本2的Jaccard相似度为: {jaccard_sim}")
阅读全文