pipeline_tag: 句子相似度
tags:
- 句子转换器
- 特征提取
- 句子相似度
language: 英文
license: apache-2.0
datasets:
- s2orc
DeCLUTR-sci-base
模型描述
该模型基于allenai/scibert_scivocab_uncased,通过使用DeCLUTR: 无监督文本表示的深度对比学习中提出的自监督训练策略,在来自S2ORC的200多万篇科学论文上进行了扩展预训练。
预期用途与限制
该模型旨在作为句子编码器使用,类似于谷歌的通用句子编码器或句子转换器。它特别适用于科学文本。
使用方法
完整详情请参阅我们的仓库。以下是一个简单示例。
from scipy.spatial.distance import cosine
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("johngiorgi/declutr-sci-base")
text = [
"致癌KRAS突变在癌症中很常见。",
"值得注意的是,最近发现c-Raf对K-Ras驱动的NSCLCs的发展至关重要。",
]
embeddings = model.encode(texts)
semantic_sim = 1 - cosine(embeddings[0], embeddings[1])
使用🤗 Transformers
import torch
from scipy.spatial.distance import cosine
from transformers import AutoModel, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("johngiorgi/declutr-sci-base")
model = AutoModel.from_pretrained("johngiorgi/declutr-sci-base")
text = [
"致癌KRAS突变在癌症中很常见。",
"值得注意的是,最近发现c-Raf对K-Ras驱动的NSCLCs的发展至关重要。",
]
inputs = tokenizer(text, padding=True, truncation=True, return_tensors="pt")
with torch.no_grad():
sequence_output = model(**inputs)[0]
embeddings = torch.sum(
sequence_output * inputs["attention_mask"].unsqueeze(-1), dim=1
) / torch.clamp(torch.sum(inputs["attention_mask"], dim=1, keepdims=True), min=1e-9)
semantic_sim = 1 - cosine(embeddings[0], embeddings[1])
BibTeX条目及引用信息
@inproceedings{giorgi-etal-2021-declutr,
title = {{D}e{CLUTR}: 无监督文本表示的深度对比学习},
author = {Giorgi, John 和 Nitski, Osvald 和 Wang, Bo 和 Bader, Gary},
year = 2021,
month = 8月,
booktitle = {第59届计算语言学协会年会暨第11届国际自然语言处理联合会议论文集(长文卷)},
publisher = {计算语言学协会},
address = {线上},
pages = {879--895},
doi = {10.18653/v1/2021.acl-long.72},
url = {https://aclanthology.org/2021.acl-long.72}
}