lt-wikidata-comp-ja

dell-research-harvard
Similitud de oraciones

Este es un modelo LinkTransformer. En su núcleo, este modelo es un modelo de sentence-transformers, envuelto en la clase. Está diseñado para una vinculación de registros (coincidencia de entidades) rápida y sencilla a través del paquete LinkTransformer. Las tareas incluyen agrupación, deduplicación, vinculación, agregación y más. No obstante, también se puede usar 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 ajustado finamente en el modelo: oshizo/sbert-jsnli-luke-japanese-base-lite. Está preentrenado para el idioma: ja. Este modelo se entrenó en un conjunto de datos que consiste en alias de compañías de WikiData utilizando el marco LinkTransformer. Fue entrenado durante 100 épocas utilizando otros valores predeterminados que se pueden encontrar en el archivo de configuración de LinkTransformer del repositorio - LT_training_config.json.

Como usar

Usar este modelo se vuelve fácil cuando tienes instalado LinkTransformer:

pip install -U linktransformer

Entonces puedes usar el modelo así:

import linktransformer as lt
import pandas as pd

# Cargar los dos dataframes que quieres 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 la puntuación de similitud entre los dos nombres de empresas

Entrenando tu propio modelo LinkTransformer

Cualquier modelo de sentence-transformers se puede usar como base simplemente agregando una capa de pooling. Cualquier otro transformador en HuggingFace también se puede usar especificando la opción add_pooling_layer==True. El modelo se entrenó usando la pérdida SupCon. El uso se puede encontrar en la documentación del paquete. La configuración de entrenamiento se puede encontrar 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 anular la configuración especificando el argumento training_args. Aquí hay un ejemplo:

# Considera el ejemplo en el artículo 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}
)

Funcionalidades

Agrupación
Deduplicación
Vinculación
Agregación
Similitud de oraciones

Casos de uso

Agrupación de registros
Deduplicación de datos
Vinculación de entidades
Búsqueda semántica