SBERT模型——在为适配数据而苦苦寻找到的相关度模型

本文介绍了一种在处理文本相关度时的方法,作者比较了多种技术如BERT、TF-IDF、Jaccard和余弦相似度等,最终选择了SBERT模型。通过编码产品描述和关键词,计算它们的相似度,并将其应用到实际数据集中的关键词分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了处理文本和词组之间的相关度计算,前后尝试了BERT,TF-IDF,文本相似度算法(如Jaccard相似度或余弦相似度),Word2Vec以及间接方法(用随机森林和XGBoost把指标重要性摸出来,再去除权重过大值,重新归一化,最后得到一个更新的衡量值),还尝试摸索了一下XLNET和LDA模型。
最后选了SBERT,代码很简单,随便看看
import pandas as pd
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity

# 加载预训练的SBERT模型
model = SentenceTransformer('sentence-transformers/bert-base-nli-mean-tokens')

# 产品描述
product_description = "xxxx"

# 加载Excel文件
file_path = '/content/test_final.csv'  # 修改为您的文件路径
df = pd.read_csv(file_path)

# 清除“月xxx量”和“xxx份额”中为空值的行
df.dropna(subset=['月xxx量', 'xxx份额'], inplace=True)

# 数据清洗:去除重复的关键词,转换为小写
df['关键词'] = df['关键词'].str.lower().drop_duplicates()

# 生成产品描述的嵌入
description_embedding = model.encode(product_description)

# 计算每个关键词与产品描述的相似度
similarities = []
for keyword in df['关键词']:
    keyword_embedding = model.encode(keyword)
    similarity = cosine_similarity([description_embedding], [keyword_embedding])[0][0]
    similarities.append(similarity)

# 将相似度作为新列添加到DataFrame
df['相关度'] = similarities

# 保存到新的Excel文件
output_file_path = '/content/updated_keywords_with_similarity.xlsx'
df.to_excel(output_file_path, index=False)

output_file_path
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值