🚀 句子相似度语义搜索模型
本项目基于sentence-transformers
库,对模型进行微调以用于语义搜索和句子相似度任务。通过收集新闻数据集进行训练,该模型可应用于语义搜索、句子相似度计算以及推荐系统等场景。
🚀 快速开始
你可以使用以下命令安装所需的库:
pip install -U sentence-transformers
以下是一个使用模型进行句子相似度计算的示例代码:
from sentence_transformers import SentenceTransformer, InputExample, losses
import pandas as pd
from sentence_transformers import SentenceTransformer, InputExample
from torch.utils.data import DataLoader
from sentence_transformers import SentenceTransformer, util
model_name="Sakil/sentence_similarity_semantic_search"
model = SentenceTransformer(model_name)
sentences = ['A man is eating food.',
'A man is eating a piece of bread.',
'The girl is carrying a baby.',
'A man is riding a horse.',
'A woman is playing violin.',
'Two men pushed carts through the woods.',
'A man is riding a white horse on an enclosed ground.',
'A monkey is playing drums.',
'Someone in a gorilla costume is playing a set of drums.'
]
embeddings = model.encode(sentences)
cos_sim = util.cos_sim(embeddings, embeddings)
all_sentence_combinations = []
for i in range(len(cos_sim)-1):
for j in range(i+1, len(cos_sim)):
all_sentence_combinations.append([cos_sim[i][j], i, j])
all_sentence_combinations = sorted(all_sentence_combinations, key=lambda x: x[0], reverse=True)
print("Top-5 most similar pairs:")
for score, i, j in all_sentence_combinations[0:5]:
print("{} \t {} \t {:.4f}".format(sentences[i], sentences[j], cos_sim[i][j]))
✨ 主要特性
- 模型在新闻数据集上进行了微调,可用于语义搜索、句子相似度计算和推荐系统。
- 支持推理任务,可方便地应用于实际场景。
📦 数据集收集
- 数据来源:新闻数据集来自Kaggle的数据集。
- 数据内容:数据集包含新闻标题、新闻内容和标签,其中标签表示新闻标题和新闻内容之间的余弦相似度。
- 数据收集策略:在数据收集阶段采用了不同的策略。
📚 详细文档
数据字段
属性 |
详情 |
label |
新闻标题和新闻内容之间的余弦相似度 |
news title |
新闻的标题 |
news content |
新闻的内容 |
应用场景
- 该模型可用于语义搜索、句子相似度计算和推荐系统。
- 你可以根据特定用例对该模型进行微调。
📄 许可证
本项目采用Apache-2.0许可证。
🔗 项目链接
GitHub仓库