dangvantuan/vietnamese-embedding

dangvantuan
Similitud de oraciones

vietnamese-embedding es un modelo de incrustación especializado para el idioma vietnamita, aprovechando las capacidades robustas de PhoBERT, un modelo de lenguaje preentrenado basado en la arquitectura RoBERTa. El modelo utiliza PhoBERT para codificar oraciones vietnamitas en un espacio vectorial de 768 dimensiones, facilitando una amplia gama de aplicaciones, desde la búsqueda semántica hasta la agrupación de texto. Las incrustaciones capturan los significados matizados de las oraciones vietnamitas, reflejando tanto las capas léxicas como contextuales del idioma.

Como usar

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

pip install -U sentence-transformers
pip install -q pyvi

Luego puedes usar el modelo así:

from sentence_transformers import SentenceTransformer
from pyvi.ViTokenizer import tokenize

sentences = ["Hà Nội là thủ đô của Việt Nam", "Đà Nẵng là thành phố du lịch"]
tokenizer_sent = [tokenize(sent) for sent in sentences]

model = SentenceTransformer('dangvantuan/vietnamese-embedding')
embeddings = model.encode(tokenizer_sent)
print(embeddings)

Evaluación

from sentence_transformers import SentenceTransformer
from sentence_transformers import SentenceTransformer
from sentence_transformers.readers import InputExample
from datasets import load_dataset
from pyvi.ViTokenizer import tokenize

def convert_dataset(dataset):
    dataset_samples = []
    for df in dataset:
        score = float(df['score']) / 5.0  # Normalizar la puntuación en el rango 0 ... 1
        inp_example = InputExample(texts=[tokenize(df['sentence1']), tokenize(df['sentence2'])], label=score)
        dataset_samples.append(inp_example)
    return dataset_samples

# Cargar el conjunto de datos para evaluación
vi_sts = load_dataset("doanhieung/vi-stsbenchmark") ["train"]
df_dev = vi_sts.filter(lambda example: example['split'] == 'dev')
df_test = vi_sts.filter(lambda example: example['split'] == 'test')

# Convertir el conjunto de datos para evaluación

# Para el conjunto de desarrollo:
dev_samples = convert_dataset(df_dev)
val_evaluator = EmbeddingSimilarityEvaluator.from_input_examples(dev_samples, name='sts-dev')
val_evaluator(model, output_path="./")

# Para el conjunto de prueba:
test_samples = convert_dataset(df_test)
test_evaluator = EmbeddingSimilarityEvaluator.from_input_examples(test_samples, name='sts-test')
test_evaluator(model, output_path="./")

Funcionalidades

Segmentador de oraciones vietnamitas (tokenize)
Codificación de oraciones vietnamitas en vectores de 768 dimensiones
Utiliza Triplet Loss para aprender de pares de oraciones anotadas de alta calidad
Entrenamiento en múltiples etapas con diferentes conjuntos de datos y técnicas de ajuste fino
Captura de similitud semántica precisa en diversos tipos de textos vietnamitas
Estrategias avanzadas de muestreo de pares

Casos de uso

Búsqueda semántica
Agrupación de texto
Análisis de similaridad semántica
Clasificación de textos
Detección de contextos y significados en textos vietnamitas

Recibe las últimas noticias y actualizaciones sobre el mundo de IA directamente en tu bandeja de entrada.