matthewleechen/lt_namesonly
Este es un modelo LinkTransformer. En su núcleo, este modelo es un transformador de oraciones (sentence-transformers), simplemente envuelve la clase. Está diseñado para una vinculación rápida y sencilla de registros (coincidencia de entidades) a través del paquete LinkTransformer. Las tareas incluyen agrupamiento, deduplicación, vinculación, agregación y más. No obstante, también puede ser utilizado para cualquier tarea de similitud de oraciones dentro del marco de sentence-transformers. Mapea frases y párrafos a un espacio vectorial denso de 768 dimensiones y puede ser utilizado para tareas como agrupamientos o búsquedas semánticas. Consulta la documentación de sentence-transformers si deseas usar este modelo para más de lo que soportamos en nuestras aplicaciones. Este modelo ha sido afinado en el modelo: sentence-transformers/multi-qa-mpnet-base-dot-v1. Está preentrenado para el idioma: inglés.
Como usar
Usar este modelo se vuelve fácil cuando tienes instalado LinkTransformer:
pip install -U linktransformer
Luego puedes usar el modelo de la siguiente manera:
import linktransformer as lt
import pandas as pd
### Cargar los dos dataframes que deseas 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
### ¡Fusionar 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 la puntuación de similitud entre los dos nombres de empresas
Entrenando tu propio modelo LinkTransformer
Cualquier transformador de oraciones puede ser utilizado como base simplemente añadiendo una capa de pooling. Cualquier otro transformador en HuggingFace también puede ser utilizado especificando la opción add_pooling_layer==True. El modelo fue entrenado usando la pérdida SupCon. El uso puede encontrarse en la documentación 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.
Considera el ejemplo en el documento que tiene un conjunto de datos de productos mexicanos y sus códigos arancelarios de 1947 y 1948 y queremos entrenar un modelo para vincular los dos códigos arancelarios.
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 la deduplicación (agrupa un df en la columna clave suministrada). Fusionar una clase fina (como producto) con una clase gruesa (como código HS) también es posible.
¡Lee nuestro documento y la documentación para más información!
Funcionalidades
- Vinculación de registros rápida y sencilla
- Tareas de agrupamiento, deduplicación, vinculación, agregación
- Similitud de oraciones dentro del marco de sentence-transformers
- Mapeo de frases y párrafos a un espacio vectorial denso de 768 dimensiones
Casos de uso
- Clustering
- Deduplicación
- Vinculación de entidades
- Búsqueda semántica