SPhilBerta
bowphs
Similitud de oraciones
El artículo Exploring Language Models for Classical Philology es el primer esfuerzo para proporcionar sistemáticamente modelos de lenguaje de última generación para la filología clásica. Usando PhilBERTa como base, introducimos SPhilBERTa, un modelo Sentence Transformer para identificar referencias cruzadas entre textos en latín y griego antiguo. Empleamos el método de destilación de conocimiento propuesto por Reimers y Gurevych (2020).
Como usar
Cuando tengas instalado sentence-transformers, puedes usar el modelo de la siguiente manera:
from sentence_transformers import SentenceTransformer
sentences = ["Esta es una oración de ejemplo", "Cada oración se convierte"]
model = SentenceTransformer('{MODEL_NAME}')
embeddings = model.encode(sentences)
print(embeddings)
Sin sentence-transformers, puedes usar el modelo de la siguiente manera:
from transformers import AutoTokenizer, AutoModel
import torch
#Mean Pooling - Tener en cuenta la máscara de atención para el 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)
# Oraciones para las que queremos incrustaciones
des oraciones
sentences = ['Esta es una oración de ejemplo', 'Cada oración se convierte']
# Cargar modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('{MODEL_NAME}')
model = AutoModel.from_pretrained('{MODEL_NAME}')
# Tokenizar oraciones
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 el pooling. En este caso, el mean pooling.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
print("Incrustaciones de oraciones:")
print(sentence_embeddings)
Funcionalidades
- Modelos de lenguaje de última generación para filología clásica
- Identificación de referencias cruzadas entre textos en latín y griego antiguo
- Método de destilación de conocimiento
Casos de uso
- Detección de alusiones latinas a la literatura griega antigua
- Investigación filológica clásica
- Análisis de referencias cruzadas en textos históricos