TN09 - Alignement et import de donnés
Le TN09 est le stage d’assistant-ingénieur, que nous réalisons au début de notre quatrième année à l’UTC (BAC+4). Le stage dure six mois. J’ai réalisé le mien chez Logilab, encadré par Vincent Michel.
Résumé
J’ai réalisé mon stage dans le département “Web Sémantique” de Logilab qui est une entreprise spécialisée dans l’informatique numérique et la gestion des connaissances. Logilab propose des outils de gestion de connaissances basés sur le logiciel libre CubicWeb.
Mon stage fut articulé autour de l’import massif et de l’enrichissement de données dans CubicWeb. Concernant l’import, il s’agissait d’optimiser des outils permettant de remplir une base de données structurée (entités/relations) à partir d’une source externe (base de données, fichiers CSV). Le but de cet outil était de permettre d’importer de gros volumes de données (plusieurs millions d’entités/relations) en un temps correct.
Pour ce qui est de l’enrichissement, il s’agissait de proposer un mécanisme offrant le meilleur rapport temps/performance possible permettant d’aligner les données, i.e. de retrouver les entités identiques (ou similaires) parmi deux grands corpus (par exemple, trouver des villes identiques dans deux bases de données pour enrichir l’une à partir des données de l’autre). Pour cela, nous avons utilisé des outils permettant de réduire les corpus en sous-ensemble plus petits (e.g. arbres-KD ou Minhashing), permettant alors d’exécuter un alignement flou (fuzzy matching, i.e. tolérant vis à vis de petites variations de l’information) et rapide en se basant sur des distances variées (e.g. Levenshtein, ...). Cet outil fut concrétisé par la création de la bibliothèque d’alignement Nazca pour le langage Python.
Le développement du project Nazca est toujours actif et mené par Logilab.