余弦相似度(Cosine Similarity)是一种衡量两个向量之间夹角的度量方法,常用于计算文本相似度。它的值范围在-1到1之间,值越接近1表示两个向量越相似,值越接近-1表示两个向量越不相似。
在处理数值和文本值的组合时,通常需要将文本转换为数值向量,然后计算这些向量的余弦相似度。
假设我们有一个包含数值和文本的数据集,我们可以使用Python和Scikit-learn库来计算余弦相似度。
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 示例数据
data = [
{"id": 1, "text": "hello world", "value": 10},
{"id": 2, "text": "hello python", "value": 20},
{"id": 3, "text": "goodbye world", "value": 30}
]
# 将文本转换为TF-IDF向量
vectorizer = TfidfVectorizer()
texts = [item["text"] for item in data]
tfidf_matrix = vectorizer.fit_transform(texts)
# 将数值转换为向量
values = np.array([item["value"] for item in data]).reshape(-1, 1)
# 组合文本和数值向量
combined_matrix = np.hstack((tfidf_matrix.toarray(), values))
# 计算余弦相似度
similarity_matrix = cosine_similarity(combined_matrix)
print(similarity_matrix)
通过以上方法,可以有效地计算数值和文本值的组合之间的余弦相似度,并应用于各种实际场景中。
领取专属 10元无门槛券
手把手带您无忧上云