计算相似度的代码
时间: 2023-08-06 15:11:28 浏览: 52
计算相似度有很多种方式,下面介绍两种常用的方法:
1. 余弦相似度
```python
import numpy as np
def cosine_similarity(vec1, vec2):
"""
计算余弦相似度
:param vec1: 向量1
:param vec2: 向量2
:return: 相似度值
"""
dot_product = np.dot(vec1, vec2) # 点积
norm1 = np.linalg.norm(vec1) # 向量1的模
norm2 = np.linalg.norm(vec2) # 向量2的模
return dot_product / (norm1 * norm2) # 计算余弦相似度
```
2. 编辑距离
```python
def edit_distance(str1, str2):
"""
计算编辑距离
:param str1: 字符串1
:param str2: 字符串2
:return: 编辑距离
"""
m, n = len(str1), len(str2)
dp = [[0] * (n+1) for _ in range(m+1)]
for i in range(m+1):
dp[i][0] = i
for j in range(n+1):
dp[0][j] = j
for i in range(1, m+1):
for j in range(1, n+1):
if str1[i-1] == str2[j-1]:
dp[i][j] = dp[i-1][j-1]
else:
dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1
return dp[m][n]
```
这里的编辑距离是指将一个字符串转换成另一个字符串所需要的最少编辑次数,包括插入、删除、替换三种操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)