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