dell-research-harvard/lt-wikidata-comp-multi

dell-research-harvard
Similitud de oraciones

Este es un modelo LinkTransformer. En su núcleo, este modelo es un modelo transformador de oraciones (sentence-transformers) que simplemente envuelve la clase. Está diseñado para la vinculación rápida y sencilla de registros (emparejamiento de entidades) a través del paquete LinkTransformer. Las tareas incluyen agrupación, deduplicación, vinculación, agregación y más. No obstante, también puede utilizarse para cualquier tarea de similitud de oraciones dentro del marco de sentence-transformers. Mapea oraciones y párrafos a un espacio vectorial denso de 768 dimensiones y puede usarse para tareas como agrupación o búsqueda semántica. Este modelo ha sido afinado en el modelo: sentence-transformers/paraphrase-multilingual-mpnet-base-v2. Está preentrenado para los idiomas: de, en, zh, ja, hi, ar, bn, pt, ru, es, fr, ko. Este modelo fue entrenado en un conjunto de datos que consiste en alias de empresas de wikidata usando el marco LinkTransformer. Fue entrenado durante 70 épocas utilizando otros parámetros por defecto que se pueden encontrar en el archivo de configuración del repositorio de LinkTransformer, LT_training_config.json.

Como usar

El uso de este modelo se vuelve fácil cuando tienes LinkTransformer instalado:

pip install -U linktransformer

import linktransformer as lt
import pandas as pd

# Cargue los dos dataframes que desea vincular. Por ejemplo, 2 dataframes con nombres de empresas escritos de manera diferente
df1=pd.read_csv('data/df1.csv')  # Este es el dataframe izquierdo con la clave CompanyName, por ejemplo
df2=pd.read_csv('data/df2.csv')  # Este es el dataframe derecho con la clave CompanyName, por ejemplo

# ¡Fusiona los dos dataframes en la columna clave!
df_merged = lt.merge(df1, df2, on='CompanyName', how='inner')

# ¡Listo! El dataframe fusionado tiene una columna llamada 'score' que contiene el puntaje de similitud entre los dos nombres de las empresas.

Entrenando tu propio modelo LinkTransformer:

Cualquier transformador de oraciones puede usarse como columna vertebral simplemente agregando una capa de agrupamiento. Cualquier otro transformador en HuggingFace también puede usarse especificando la opción add_pooling_layer==True. El modelo fue entrenado usando la pérdida SupCon. El uso puede encontrarse en los documentos del paquete. La configuración de entrenamiento puede encontrarse en el repositorio con el nombre LT_training_config.json.

Para replicar el entrenamiento, puedes descargar el archivo y especificar la ruta en el argumento config_path de la función de entrenamiento. También puedes sobrescribir la configuración especificando el argumento training_args. Aquí hay un ejemplo:

saved_model_path = train_model(
    model_path='hiiamsid/sentence_similarity_spanish_es',
    dataset_path=dataset_path,
    left_col_names=['description47'],
    right_col_names=['description48'],
    left_id_name=['tariffcode47'],
    right_id_name=['tariffcode48'],
    log_wandb=False,
    config_path=LINKAGE_CONFIG_PATH,
    training_args={'num_epochs': 1}
)

También puedes usar este paquete para deduplicación (agrupa un dataframe en la columna clave suministrada). Fusionar una clase fina (como producto) a una clase gruesa (como código HS) también es posible. Lee nuestro artículo y la documentación para más información!

Funcionalidades

Transformador de oraciones
Vinculación de registros
Agrupación
Deduplicación
Vinculación
Agregación
Similitud de oraciones
Mapeo a espacio vectorial denso de 768 dimensiones
Afinado en sentence-transformers/paraphrase-multilingual-mpnet-base-v2
Entrenado en alias de empresas de wikidata

Casos de uso

Agrupación de registros
Deduplicación de datos
Vinculación de entidades
Búsqueda semántica
Enlace de registros para bases de datos empresariales