DeCLUTR-sci-base
johngiorgi
Similitud de oraciones
Este es el modelo allenai/scibert_scivocab_uncased, con preentrenamiento extendido en más de 2 millones de artículos científicos de S2ORC usando la estrategia de entrenamiento auto-supervisado presentada en DeCLUTR: Deep Contrastive Learning for Unsupervised Textual Representations.
Como usar
Por favor, consulte nuestro repositorio para obtener detalles completos. 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-sci-base")
# Preparar texto para incrustar
text = [
"Oncogenic KRAS mutations are common in cancer.",
"Notably, c-Raf has recently been found essential for development of K-Ras-driven NSCLCs.",
]
# Incrustar el texto
embeddings = model.encode(texts)
# Calcular una similitud semántica a través de la distancia 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-sci-base")
model = AutoModel.from_pretrained("johngiorgi/declutr-sci-base")
# Preparar texto para incrustar
text = [
"Oncogenic KRAS mutations are common in cancer.",
"Notably, c-Raf has recently been found essential for development of K-Ras-driven NSCLCs.",
]
inputs = tokenizer(text, padding=True, truncation=True, return_tensors="pt")
# Incrustar el texto
with torch.no_grad():
sequence_output = model(**inputs)[0]
# Agrupar medio 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 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
Casos de uso
- Codificación de oraciones
- Obtención de incrustaciones semánticas
- Análisis de texto científico