dell-research-harvard/lt-wikidata-comp-multi
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