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