🚀 句子相似度語義搜索模型
本項目基於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倉庫