Greek Media SBERT (uncased)
dimitriz
Similitud de oraciones
Este es un modelo basado en sentence-transformers del modelo Greek Media BERT (uncased): Mapea oraciones y párrafos a un espacio vectorial denso de 768 dimensiones y puede usarse para tareas como agrupamiento o búsqueda semántica.
Como usar
El uso de este modelo se vuelve fácil cuando tienes sentence-transformers instalado:
pip install -U sentence-transformers
Entonces puedes usar el modelo así:
from sentence_transformers import SentenceTransformer
sentences = ["Esta es una oración de ejemplo", "Cada oración se convierte"]
model = SentenceTransformer('dimitriz/st-greek-media-bert-base-uncased')
embeddings = model.encode(sentences)
print(embeddings)
Sin sentence-transformers, puedes usar el modelo así: Primero, pasas tu entrada a través del modelo transformer, luego tienes que aplicar la operación de agrupamiento apropiada en la parte superior de los embeddings de las palabras contextualizadas.
from transformers import AutoTokenizer, AutoModel
import torch
# Agrupamiento medio - Tener 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 todos los embeddings de los 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)
# Oraciones para las cuales queremos embeddings de oraciones
sentences = ['Esta es una oración de ejemplo', 'Cada oración se convierte']
# Cargar modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('dimitriz/st-greek-media-bert-base-uncased')
model = AutoModel.from_pretrained('dimitriz/st-greek-media-bert-base-uncased')
# Tokenizar oraciones
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
# Calcular embeddings de tokens
with torch.no_grad():
model_output = model(**encoded_input)
# Realizar agrupamiento. En este caso, agrupamiento medio.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
print("Embeddings de oraciones:")
print(sentence_embeddings)
Funcionalidades
- Transformador de oraciones
- Mapeo de oraciones y párrafos a un espacio vectorial denso
- Tareas de agrupamiento
- Búsqueda semántica
- Transformers
Casos de uso
- Agrupamiento de oraciones
- Búsqueda semántica