Construction d'une base de connaissances ontologiques à partir de la base de données éditoriale Berger Levrault

Contexte

Les ontologies sont largement utilisées dans la recherche d'information (RI), les questions/réponses et les systèmes d'aide à la décision. Elles ont gagné en notoriété car elles sont désormais considérées comme la nouvelle réponse à l'interopérabilité sémantique dans les systèmes informatiques modernes et la prochaine grande solution pour la représentation des connaissances. La structuration et la gestion des connaissances sont au cœur des préoccupations des communautés scientifiques, et l'augmentation exponentielle des données structurées, semi-structurées et non structurées sur le Web a fait de l'acquisition automatique d'ontologies à partir de textes un domaine de recherche très important.

Plus précisément, une ontologie peut être définie avec des concepts, des relations, des hiérarchies de concepts et de relations, et des axiomes pour un domaine donné. Cependant, la construction manuelle de grandes ontologies est extrêmement laborieuse et prend beaucoup de temps. D'où la motivation de notre projet : l'automatisation du processus de construction d'une ontologie de domaine spécifique.

Méthodologie

Le groupe Berger-Levrault propose plus de 200 livres et des centaines d'articles d'expertise juridique et pratique sur le portail Légibases. La collection de livres est thématique, partiellement annotée et entièrement éditée par Berger-Levrault et des experts.

Ce portail couvre 8 domaines :

Le nombre total de mots dans notre base de données :

50934108

Nombre de mots uniques par ligne :

600349

Nombre de mots uniques :

220959

Pour atteindre notre objectif, nous avons abordé les tâches en nous tournant vers les outils de traitement du langage naturel et les techniques d'exploration de données. Voici une figure résumant le traitement effectué pour faire ressortir les termes clés sémantiquement proches des documents de Berger-Levrault :

Récupération et restructuration des données

Comme première étape de notre approche, nous avons repris les données brutes (RD) stockées dans notre base de données SQL et avons effectué une tâche de restructuration avec afin d'obtenir un ensemble organisé de documents HTML, et donc être en mesure d'exploiter son contenu. Notez qu'à ce stade, nous identifions les termes nécessaires à notre processus d'apprentissage d'ontologie comme les termes clés annotés par les experts dans chaque paragraphe de chaque document. Le résultat est un ensemble de 172 documents HTML en langue française publiés par le Groupe Berger-Levrault avec 8 Légibases : articles juridiques contenant des mentions relatives à l'un des 8 domaines du secteur public (Etat civil & Cimetières, Elections, Marchés publics, Urbanisme, Comptabilité & Finances locales, RH territoriale, Justice, Santé).

Pré-traitement et normalisation

Une fois le format requis obtenu, nous lançons le pipeline de prétraitement qui se déroule comme suit :

Pour préparer le contenu textuel pour l'entraînement des embeddings, nous générons un fichier texte brut, à partir de documents HTML, contenant une phrase par ligne avec des mots-clés unifiés (même représentation).

Construction de modèles

Maintenant que nous avons un fichier texte normalisé, nous pouvons lancer l'entraînement du modèle de compréhension du langage naturel BERT sur notre fichier texte en utilisant l'infrastructure Amazon Web Services (Sagemaker + S3). Pour atteindre cet objectif, nous passons par les étapes suivantes :

À la fin de cette étape, nous avons notre modèle Bert formé sur notre corpus à partir de zéro que nous pouvons utiliser pour la génération de l'intégration des mots.

Extraction de caractéristiques

Il existe une série d'options disponibles pour exécuter le modèle BERT avec Pytorch et Tensorflow. Mais pour faciliter la prise en main de notre modèle, nous avons opté pour Bert-as-a-service : une bibliothèque Python qui nous permet de déployer des modèles BERT pré-entraînés dans notre machine locale et de lancer l'inférence.

Nous exécutons un script Python à partir duquel nous utilisons le service BERT pour encoder nos mots dans le word embedding. Pour cela, il nous suffit d'importer la bibliothèque BERT-client et de créer une instance de la classe client. Une fois cela fait, nous pouvons alimenter la liste des mots ou des phrases que nous voulons encoder.

Maintenant que nous avons les vecteurs de chaque mot de notre fichier texte, nous allons utiliser l'implémentation scikit-learn de la similarité en cosinus entre l'incorporation des mots pour aider à déterminer leur degré de parenté.

Voici un aperçu de la distribution de fréquence pour certains termes présents dans notre base éditoriale :

Après avoir obtenu les scores de similarité Cosine entre deux termes donnés, nous construisons un fichier CSV qui contient les 100 termes clés les plus fréquents de notre base éditoriale, leurs 50 mots les plus proches, ainsi que leurs scores de similarité. La figure ci-dessous montre les 100 termes les plus fréquents :

Le fichier est ensuite présenté comme une entrée pour créer le graphe étiqueté suivant représentant les dépendances sémantiques obtenues lors des étapes précédentes :

Voici les caractéristiques les plus importantes du graphique :

Nombre total des termes clés 130269
Nombre de termes les plus pertinents 100
Le score le plus élevé 0.9528004
Le score le moins élevé 0.4424540
Nombre de termes singuliers 60
Nombre de termes composés 40

Chiffres clés du graphique

PERSPECTIVE

Nous rappelons que nous présentons ici le premier travail que nous avons réalisé pour l'étude du corpus de la base éditoriale et que la suite de ce travail nous conduira à appliquer des techniques d'extraction de concepts et de relations en utilisant différents niveaux d'analyse, à savoir : le niveau linguistique, statistique et sémantique, et l'entraînement d'un classificateur comme outil de prédiction de concepts.

Plus ...

Retour en haut