lt-wikidata-comp-ja
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