WikiMedical_sent_biobert

nuvocare
Similitud de oraciones

Este es un modelo de sentence-transformers: Mapea frases y párrafos a un espacio vectorial denso de 768 dimensiones y se puede usar para tareas como agrupamiento o búsqueda semántica. WikiMedical_sent_bert se basa en el modelo https://huggingface.co/dmis-lab/biobert-base-cased-v1.2 y ha sido entrenado en el conjunto de datos WikiMedical_sentence_similarity. El modelo puede predecir si dos textos están relacionados con la misma página de Wikipedia, pero solo en temas médicos.

Como usar

Usar este modelo se vuelve fácil cuando tienes sentence-transformers instalado:

pip install -U sentence-transformers

Luego puedes usar el modelo así:

from sentence_transformers import SentenceTransformer
sentences = ["Esta es una frase de ejemplo", "Cada frase es convertida"]

model = SentenceTransformer('WikiMedical_sent_biobert')
embeddings = model.encode(sentences)
print(embeddings)

Uso (Transformadores de HuggingFace) Sin sentence-transformers, puedes usar el modelo de esta manera: Primero, pasa tu entrada a través del modelo transformador, luego tienes que aplicar la operación de agrupamiento correctamente en la parte superior de las incrustaciones de palabras contextualizadas.

from transformers import AutoTokenizer, AutoModel
import torch

# Mean Pooling - Tomar en cuenta la máscara de atención para un promedio correcto
def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0] # El primer elemento de model_output contiene todas las incrustaciones de tokens
    input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
    return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)

# Frases para las que queremos obtener incrustaciones de frases
sentences = ['Esta es una frase de ejemplo', 'Cada frase es convertida']

# Cargar modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('WikiMedical_sent_biobert')
model = AutoModel.from_pretrained('WikiMedical_sent_biobert')

# Tokenizar frases
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')

# Calcular incrustaciones de tokens
with torch.no_grad():
    model_output = model(**encoded_input)

# Realizar agrupamiento. En este caso, agrupamiento por promedio.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

print("Incrustaciones de frases:")
print(sentence_embeddings)

Funcionalidades

Transformador de frases
Espacio vectorial denso de 768 dimensiones
Basado en Biobert base cased V1.2
Entrenado en el conjunto de datos de similitud de frases de WikiMedical
Capacidad para identificar si dos textos están relacionados con la misma página de Wikipedia (temas médicos)

Casos de uso

Clúster de textos
Búsqueda semántica
Predicción de si dos textos están relacionados con la misma página de Wikipedia en temas médicos