python返回两篇文本相似度 欧几里得算法
时间: 2023-10-12 10:20:58 浏览: 83
(python)使用余弦相似度算法计算两个文本的相似度的简单实现
5星 · 资源好评率100%
欧几里得算法(也称为欧几里得距离)不适用于计算文本相似度,因为它只能处理数值型数据。文本相似度通常使用基于文本的算法,如词袋模型、TF-IDF、余弦相似度等。以下是一个使用余弦相似度计算两个文本相似度的Python示例:
```python
import math
def cosine_similarity(vec1, vec2):
dot_product = sum([vec1[i] * vec2[i] for i in range(len(vec1))])
magnitude1 = math.sqrt(sum([vec1[i] ** 2 for i in range(len(vec1))]))
magnitude2 = math.sqrt(sum([vec2[i] ** 2 for i in range(len(vec2))]))
return dot_product / (magnitude1 * magnitude2)
text1 = "This is the first text."
text2 = "This is the second text."
tokens = set(text1.split() + text2.split())
vec1 = [text1.split().count(token) for token in tokens]
vec2 = [text2.split().count(token) for token in tokens]
similarity = cosine_similarity(vec1, vec2)
print(similarity)
```
这个脚本将输出两个文本之间的余弦相似度。余弦相似度的值介于0和1之间,其中0表示两个文本不相似,1表示两个文本完全相同。
阅读全文