python 根据余弦相似度删除相同数据
时间: 2023-12-14 22:04:51 浏览: 93
可以Python中的余弦相似度算法来删除相同数据。具体步骤如下:
1. 将所有数据向量化,可以使用TF-IDF向量化方法。
2. 计算每对数据之间的余弦相似度。
3. 对于每个数据,找到与其余弦相似度最高的数据,将其删除。
以下是一个简单的代码示例:
```
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
data = ["This is some sample data",
"This is some example data",
"More sample data",
"Another example"]
# Vectorize the data
vectorizer = TfidfVectorizer()
vectors = vectorizer.fit_transform(data)
# Compute cosine similarities
similarities = cosine_similarity(vectors)
# Find duplicates
duplicates = set()
for i in range(len(similarities)):
for j in range(i+1, len(similarities)):
if similarities[i][j] > 0.9:
duplicates.add(j)
# Remove duplicates
for i in sorted(duplicates, reverse=True):
del data[i]
print(data)
```
在上面的代码中,我们使用了`TfidfVectorizer`将文本数据转换为TF-IDF向量,并使用`cosine_similarity`计算每对数据之间的余弦相似度。然后,我们遍历相似度矩阵,将相似度大于0.9的数据索引添加到`duplicates`集合中。最后,我们根据`duplicates`集合中的索引删除重复数据。
阅读全文