# sbert中文文本相似度预测 **Repository Path**: 2943/sbert-evaluate ## Basic Information - **Project Name**: sbert中文文本相似度预测 - **Description**: 使用sentence-transformers(SBert)训练文本相似度数据集并进行评估,包括后端接口及前端页面 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 8 - **Created**: 2023-12-11 - **Last Updated**: 2023-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sbert_text_similarity 详细说明:[sentence-transformers(SBert)中文文本相似度预测(附代码)](https://blog.csdn.net/weixin_54218079/article/details/128687878) 使用sentence-transformers(SBert)训练文本相似度数据集并进行评估。 Bert缺点在于推理速度慢,对资源要求更高 孪生网络具有相同的编码器(文本转换为高维向量的部分),网络随后对两段文本的特征进行交互,最后完成分类/相似预测。结构简单,训练稳定,具体用途是衡量两个输入文本的相似程度 SBert是孪生网络和Bert的强强联合,一万条句子在一块现代V100GPU上使用Bert计算,将消耗65小时,SBert只需要5秒 # python文件说明 使用的数据是蚂蚁金融文本相似度数据集,具体数据在data文件夹下。
--preprocess.py:获取数据,并划分训练集和测试集。
--train_sentence_bert.py:使用自己的数据集利用sbert训练文本相似度任务。
--evaluate.py:评估训练好的模型。
--predict.txt:保存预测的结果。
--singleSentence.py:后端接口,用训练好的模型计算文本相似度。
# 结果 ```python ['开通花呗连接', '怎么开通了花呗'] 0 总共有数据:102477条,其中正样本:18685条,负样本:83792条 训练数据:71733条,其中正样本:13141条,负样本:58592条 测试数据:30744条,其中正样本:5544条,负样本:25200条 precision recall f1-score support 0 0.88 0.93 0.90 25200 1 0.57 0.43 0.49 5544 accuracy 0.84 30744 macro avg 0.73 0.68 0.70 30744 weighted avg 0.83 0.84 0.83 30744 ``` ## 后端及sbert运行步骤 1. 先去[chinese-roberta-wwm-ext](https://huggingface.co/hfl/chinese-roberta-wwm-ext/tree/main)把预训练模型下载下来放进model_hub文件夹(其它预训练模型也行,但是chinese-roberta-wwm-ext是测试下来效果最好的) 2. 每个文件用到路径的地方都改成自己文件夹的位置 3. 运行preprocess.py划分训练集和测试集 4. 运行train_sentence_bert.py利用sbert训练文本相似度任务 5. 运行evaluate.py评估训练好的模型 6. 运行singleSentence.py开启后端接口再运行前端 ## 前端运行步骤 ```she yarn install yarn serve ```