DeCLUTR-small
johngiorgi
Similitud de oraciones
El modelo 'DeCLUTR-small' de nuestro artículo: DeCLUTR: Deep Contrastive Learning for Unsupervised Textual Representations.
Como usar
Por favor consulte nuestro repositorio para más detalles. Un ejemplo simple se muestra a continuación.
Con SentenceTransformers
from scipy.spatial.distance import cosine
from sentence_transformers import SentenceTransformer
# Cargar el modelo
model = SentenceTransformer('johngiorgi/declutr-small')
# Preparar algunos textos para incrustar
texts = [
'Una mujer sonriente disfrazada sostiene un paraguas.',
'Una mujer feliz en un disfraz de hada sostiene un paraguas.',
]
# Incrustar el texto
embeddings = model.encode(texts)
# Calcular una similitud semántica a través de la distancia del coseno
semantic_sim = 1 - cosine(embeddings[0], embeddings[1])
Con 🤗 Transformers
import torch
from scipy.spatial.distance import cosine
from transformers import AutoModel, AutoTokenizer
# Cargar el modelo
tokenizer = AutoTokenizer.from_pretrained('johngiorgi/declutr-small')
model = AutoModel.from_pretrained('johngiorgi/declutr-small')
# Preparar algunos textos para incrustar
text = [
'Una mujer sonriente disfrazada sostiene un paraguas.',
'Una mujer feliz en un disfraz de hada sostiene un paraguas.',
]
inputs = tokenizer(text, padding=True, truncation=True, return_tensors='pt')
# Incrustar el texto
with torch.no_grad():
sequence_output = model(**inputs)[0]
# Agrupar por media las incrustaciones a nivel de token para obtener incrustaciones a nivel de oración
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)
# Calcular una similitud semántica a través de la distancia del coseno
semantic_sim = 1 - cosine(embeddings[0], embeddings[1])
Funcionalidades
- similaridad de oraciones
- transformadores de oraciones
- PyTorch
- JAX
- extracción de características
- inferencia de incrustaciones de texto
- Puntos de Inferencia
Casos de uso
- Se puede usar como un codificador universal de oraciones, similar al Codificador Universal de Oraciones de Google o Transformadores de Oraciones