matthewleechen/lt_frenchnames
Este es un modelo LinkTransformer. En su núcleo, este modelo es un modelo de transformador de oraciones (sentence-transformers) - solo envuelve la clase. Está diseñado para la vinculación rápida y fácil de registros (coincidencia de entidades) a través del paquete LinkTransformer. Las tareas incluyen clustering, deduplicación, enlace, agregación y más. A pesar de eso, también se puede usar para cualquier tarea de similitud de oraciones dentro del marco de trabajo de sentence-transformers. Mapea oraciones y párrafos a un espacio vectorial denso de 768 dimensiones y se puede usar para tareas como clustering o búsqueda semántica. Echa un vistazo a 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 ajustado en el modelo: sentence-transformers/paraphrase-multilingual-mpnet-base-v2. Está pre-entrenado para el idioma: - en.
Como usar
pip install -U linktransformer
import linktransformer as lt
import pandas as pd
## Cargar los dos dataframes que deseas vincular. Por ejemplo, 2 dataframes con nombres de empresas que están 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")
## ¡Hecho! El dataframe fusionado tiene una columna llamada "score" que contiene la puntuación de similitud entre los dos nombres de empresa
Entrenando tu propio modelo LinkTransformer
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}
)
El modelo se entrenó con los parámetros:
- DataLoader:
- torch.utils.data.dataloader.DataLoader de longitud 6 con parámetros:
- {'batch_size': 64, 'sampler': 'torch.utils.data.dataloader._InfiniteConstantSampler', 'batch_sampler': 'torch.utils.data.sampler.BatchSampler'}
- Pérdida:
- linktransformer.modified_sbert.losses.SupConLoss_wandb
- Parámetros del método fit():
- {
"epochs": 200,
"evaluation_steps": 1,
"evaluator": "sentence_transformers.evaluation.SequentialEvaluator.SequentialEvaluator",
"max_grad_norm": 1,
"optimizer_class": "",
"optimizer_params": {
"lr": 2e-06
},
"scheduler": "WarmupLinear",
"steps_per_epoch": null,
"warmup_steps": 1200,
"weight_decay": 0.01
}
LinkTransformer(
(0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) con modelo Transformer: XLMRobertaModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)
Funcionalidades
- Clustering
- Deduplicación
- Enlace
- Agregación
- Similitud de oraciones
- Búsqueda semántica
Casos de uso
- Vinculación de registros
- Clustering
- Deduplicación de datos
- Enlace de entidades
- Agregación de datos
- Búsqueda semántica