Village de la Justice www.village-justice.com

Comment un data scientist analyse des fonds juridiques et les requêtes utilisateurs pour créer un moteur de recherche spécialisé dans le juridique.
Parution : mercredi 13 février 2019
Adresse de l'article original :
https://www.village-justice.com/articles/comment-data-scientist-analyse-des-fonds-juridiques-les-requetes-utilisateurs,30693.html
Reproduction interdite sans autorisation de l'auteur.

Je m’appelle Timothée, je suis lead Data Scientist chez ​Wuha et j’aimerais vous présenter les challenges techniques que nous résolvons quotidiennement pour proposer le meilleur contenu possible à nos utilisateurs dans leurs recherches juridiques.
Pour répondre au mieux aux requêtes de nos utilisateurs dans le monde juridique (avocats, juristes, expert-comptables et notaires), nous avons dû mieux comprendre leur domaine et leur vocabulaire.
Dans cet article, je vais expliquer comment nous avons analysé les documents juridiques pour avoir une meilleure compréhension des requêtes de nos utilisateurs et comment arriver à élaborer un moteur de recherche.

Les bases d’un moteur de recherche et les difficultés à surmonter

La particularité d’un bon moteur de recherche vient d’une part de la qualité des algorithmes et d’autre part de la structuration des données. Et donc en tant que Data science, notre première tâche a été d’analyser les données de ces abonnements juridiques et de les structurer. Parallèlement, pour présenter les meilleurs résultats il faut travailler conjointement avec des experts métiers pour comprendre :
1. le sens des données et des documents de notre base de données
2. comment les utilisateurs recherchent.

Voici quelques exemples de requêtes de nos utilisateurs :

Un moteur de recherche classique cherche toutes ces requêtes d’une manière simple, en cherchant ces mots dans tout le contenu disponible et en maximisant la proximité de ces termes dans le texte recherché. Mais, cette approche ne nous donnait pas des résultats assez satisfaisants. Il nous a donc fallu isoler les différents “composants” de la requêtes.

Reprenons nos 3 exemples précédents :

- article 1342-10 code civil débiteur : il faut comprendre ici que l’utilisateur recherche un article juridique très précis l’​article 1342-10 dans le code civil. Le mot ​débiteur​ pourra être chercher ailleurs dans le texte.
- nomination d’un cac : dans cette requête, l’utilisateur utilise un acronyme “CAC”. Il signifie commissaire aux comptes. Il faudra alors pouvoir chercher indifféremment les deux versions : CAC et Commissaires aux Comptes.
- fond de commerce évaluation : ​ici, le ​fond de commerce est une entité unique, une expression. En d’autres termes, l’utilisateur ne sera pas intéressé par un résultat où les mots ​fond et ​commerce sont à différents endroits du texte.

On voit bien que dans chacune des requêtes se dégage des composants distincts qu’il faut identifier afin de comprendre en profondeur la requête utilisateur. Pour arriver à nos fins, nous allons utiliser une technique de machine learning qui s’appelle la reconnaissance d’entité nommée (​WIkipédia​). Ce type d’algorithmes permet la recherche d’un mot ou d’un groupe de mots qui désignent un concept défini par avance. Continuons sur nos trois exemples pour mieux comprendre ce qu’est une reconnaissance d’entité nommé :

Cette reconnaissance d’entité nommée nous permet d’isoler les différentes idées de la requête utilisateur et permet donc de chercher les informations dans les documents de manière plus intelligente.

La création d’algorithme et l’apprentissage du modèle

Maintenant que nous avons compris la tâche à effectuer, notre travail chez ​Wuha consiste à créer un algorithme qui saura effectuer cette détection de manière automatique.

Avant le développement du machine learning, un informaticien aurait dû mettre en place un certain nombre de règles manuellement pour pouvoir détecter au mieux ces groupes de noms. En machine learning, c’est la puissance de calcul qui sera responsable de la création automatique de ces règles.

Pour pouvoir les construire, le Data Scientist doit fournir un certain nombre d’exemples labellisés, c’est à dire un certains nombres d’exemples avec la réponse qu’on veut obtenir en sortie de notre algorithme.

La comparaison avec l’apprentissage humain est assez évidente : pour faire apprendre les formes géométriques à un jeune enfant, nous lui présenterons des ronds, des carrés, des triangles, de différentes tailles et couleurs en lui indiquant à chaque fois à quels formes ces dernières correspondent, pour les algorithmes de notre moteur de recherche c’est exactement la même chose.

Nous avons donc effectué le même traitement d’apprentissage en présentant des exemples de phrases avec des citations d’article de code, des acronymes avec leur signification et des expressions juridiques.
Pour trouver ces exemples d’apprentissage nous avons utilisé les fonds documentaires juridiques à notre disposition.

Comment ça marche ?

Pour mieux comprendre comment ce genre d’algorithmes fonctionnent, prenons l’exemple de la détection d’expressions juridiques.

Cet algorithme fonctionne en 2 phases :
- Grâce à une analyse syntaxique, nous arrivons à extraire tous les groupes nominaux contenus dans chacune des phrases des fonds juridiques. Nous effectuons une phase de normalisation de ses groupes nominaux comme la mise en minuscule, le retrait des stopwords, tokenisation, retrait des accents des petits mots, la racinisation qui permet par exemple d’enlever les marques de pluriels.
- La deuxième étape consiste à donner un score à chacun de ces groupes nominaux pour savoir lesquels sont les plus susceptibles d’être des expressions juridiques. Pour notre exemple nous nous sommes basés sur une publication de Bidyut Das, Subhajit Pal, Suman Kr. Mondal, Dipankar Dalui et Saikat Kumar Shome, ​Automatic Keywords extraction from any text document using N-gram Rigid Collocation​. P​our cela nous effectuons des calculs de fréquences d’apparition des mots ensemble et pris séparément. Ensuite une fois ce score effectué, il faut établir une limite sur ce score pour savoir à partir de quel score le groupe nominal peut être considéré comme une expression juridique.

Conclusion

Après de nombreuses étapes de test, nous sommes chez ​Wuha désormais en mesure de traiter ces problématiques et de fournir à nos utilisateur un moteur de recherche qui comprend les spécificités du monde juridique :

Rédaction du village