pipeline_tag: 句子相似度
tags:
- 句子转换器
- 特征提取
- 句子相似度
language: 英文
license: apache-2.0
datasets:
- 开放网络文本
DeCLUTR小型版
模型描述
"DeCLUTR-small"模型出自我们的论文:DeCLUTR:无监督文本表示的深度对比学习。
预期用途与限制
该模型旨在作为通用句子编码器使用,类似于谷歌的通用句子编码器或句子转换器。
使用方法
完整详情请参见我们的仓库。以下是一个简单示例。
from scipy.spatial.distance import cosine
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("johngiorgi/declutr-small")
texts = [
"一位微笑的装扮女性正举着一把伞。",
"一位穿着仙女服装的快乐女性手持一把伞。",
]
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-small")
model = AutoModel.from_pretrained("johngiorgi/declutr-small")
text = [
"一位微笑的装扮女性正举着一把伞。",
"一位穿着仙女服装的快乐女性手持一把伞。",
]
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}
}