DeCLUTR-base
johngiorgi
Similitud de oraciones
El modelo 'DeCLUTR-base' de nuestro artículo: DeCLUTR: Deep Contrastive Learning for Unsupervised Textual Representations. El modelo está destinado a ser utilizado como un codificador universal de oraciones, similar al Codificador Universal de Oraciones de Google o Sentence Transformers.
Como usar
Con SentenceTransformers:
from scipy.spatial.distance import cosine
from sentence_transformers import SentenceTransformer
# Cargar el modelo
model = SentenceTransformer('johngiorgi/declutr-base')
# Preparar algo de texto para incrustar
texts = [
'A smiling costumed woman is holding an umbrella.',
'A happy woman in a fairy costume holds an umbrella.',
]
# Incrustar el texto
embeddings = model.encode(texts)
# Calcular una similitud semántica vía la distancia de 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-base')
model = AutoModel.from_pretrained('johngiorgi/declutr-base')
# Preparar algo de texto para incrustar
text = [
'A smiling costumed woman is holding an umbrella.',
'A happy woman in a fairy costume holds an umbrella.',
]
inputs = tokenizer(text, padding=True, truncation=True, return_tensors='pt')
# Incrustar el texto
with torch.no_grad():
sequence_output = model(**inputs)[0]
# Realizar un pooling medio de las incrustaciones a nivel de tokens 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 vía la distancia de coseno
semantic_sim = 1 - cosine(embeddings[0], embeddings[1])
Funcionalidades
- sentence-transformers
- PyTorch
- JAX
- roberta
- feature-extraction
- sentence-similarity
- text-embeddings-inference
- endpoints_compatible
Casos de uso
- Codificación universal de oraciones
- Comparación de similitud de oraciones
- Extracción de características textuales