Introduction

Les approches par apprentissage automatique dans le domaine du langage naturel ont démontré leur capacité à résoudre un large éventail de tâches même quand il faut partir de 0 c’est à dire sans corpus d’apprentissage. Bien que cela soit impressionnant, cela ne correspond pas tout le temps à la réalité. Il existe souvent des connaissances préalables pertinentes – dans le cas de l’extraction d’information, par exemple sous la forme de vocabulaires contrôlés, répertoriant de nombreuses instances des types d’entités requises. Pouvoir utiliser facilement de telles ressources peut amorcer et accélérer votre projet d’apprentissage automatique.

Exemple avec la détection des entités des clubs de football

Imaginons que nous voulions annoter un corpus de documents avec les noms des clubs de football qui y sont mentionnés. En inspectant le corpus, nous voyons qu’il s’agit d’événements de différents pays et de différentes ligues. Or, nous ne disposons actuellement que de la liste des clubs de la Bundesliga allemande. Voyons comment procéder rapidement avec ce que nous avons.

Pour commencer…

Créons un lexique dans le projet et importons ce vocabulaire métier à partir de différents formats (txt, csv, skos, obo, …)…

puis cherchons et vérifions les termes importés…,

transformons le vocabulaire métier en un système de reconnaissance d’entités nommées

et enfin appliquons celui-ci sur les documents du corpus.

En quelques instants, un corpus d’apprentissage existe, qui connaît au moins les clubs de la Bundesliga allemande. Les autres clubs de la 2e Bundesliga allemande ou de la Premier League anglaise ou de toute autre ligue de football sont inconnus à ce stade et ne sont pas encore annotés.

Convenons que le fait d’importer une liste de chaînes de caractères et de les retrouver dans des documents texte n’a rien de sorcier !

Tirer parti des documents “dedans et en dehors” du jeu données

Mais il y a plus, beaucoup plus : nous devons faire la distinction entre les documents du corpus à l’intérieur du “jeu de données” (ceux qui ont des annotations) des documents à l’extérieur.

Cela s’avère utile ici, car dans notre scénario où nous ne connaissons que les clubs de Bundesliga pour le moment, tous les clubs des autres ligues dans d’autres pays qui ne sont pas encore étiquetés constitueraient un “exemple négatif” pour le processus d’apprentissage et perturberaient donc l’algorithme.

Mais comme l’apprentissage par défaut n’est effectué que sur les documents “dans le jeu de données”, ce risque est beaucoup plus faible ici. Notez qu’il y aura toujours de nombreux “faux négatifs” lorsqu’un document contient non seulement un club de la Bundesliga (annoté) mais aussi un club d’une autre région (non encore identifié).

Ainsi, après la première annotation automatique, il est recommandé de procéder à un contrôle manuel (curation) des documents “dans le jeu de données”. Ensuite, en appliquant un processus d’entraînement (apprentissage d’un nouveau modèle) sur les documents désormais annotés, nous pouvons lancer un cycle d’entraînement.

Tirer parti de la similarité sémantique et des plongements de mots (embeddings)

Dans notre scénario, nous pouvons observer que les contextes dans lesquels un club de football est mentionné sont souvent très similaires et que cette similarité ne dépend pas de l’appartenance du club à notre liste originale de Bundesliga : Dans des phrases telles que : “Les supporters de X ont été dévastés par la défaite de leur équipe”, ou “en demi-finale, X a pu battre Y 3:2”, ou “Le résultat a laissé X dans l’obligation de prendre six points sur les cinq matchs restants pour remporter son premier titre depuis 2010”, le X fait la plupart du temps référence à un club, quelle que soit la ligue.

Par conséquent, un modèle entrainé sur la partie du corpus concernant les clubs de la Bundesliga reportera dans une certaine mesure ses conclusions sur d’autres entités nommées pertinentes. Les approches à base de réseaux de neurones excellent dans cette tâche grâce à leur capacité à retenir également les informations “éloignées” ainsi que les similarités sémantiques des mots capturées dans les plongements de mots (embeddings). Un exemple mentionnant “le nouveau milieu de terrain de X” influencera également les cas où “le nouvel attaquant de X” est mentionné puisque “milieu de terrain” et “attaquant” présentent une certaine similarité sémantique qui est encodée dans les représentations vectorielles des textes.

Méthodologie : importer – appliquer – corriger – entrainer – répéter

Amorcer un modèle d’entrainement pour un nouveau type d’entité (comme les clubs de football) revient donc à exécuter les étapes suivantes :

  • Importez un vocabulaire métier qui représente au moins partiellement le type d’entité que vous recherchez ;
  • Annoter les documents de votre corpus avec ce vocabulaire métier ;
  • Inspecter les résultats (ajouter les entités manquantes, supprimer les faux positifs) ;
  • Entraînez un modèle (réseau de neurones par exemple) sur la partie du corpus annoté et appliquez-le à nouveau sur l’ensemble du corpus ;
  • Répétez les étapes 3 et 4…

Résultat : Un modèle d’entrainement très performant

Dans le cas mentionné ci-dessus, l’importation de la liste de noms de clubs de football, puis effectuer quelques itérations des étapes mentionnées ci-dessus ont permis d’obtenir un corpus d’apprentissage avec environ 1300 exemples de clubs de football dans les documents et un modèle d’entrainement (réseaux de neurones) avec une précision de 94% après environ une heure de travail.

L’approche par apprentissage automatique : une bonne adéquation

Notez que, bien que le scénario décrit ici (intentionnellement simple) contient déjà quelques caractéristiques que la reconnaissance d’entités nommées doit prendre en compte afin d’offrir une bonne qualité :

  • Les contextes dans lesquels les clubs de football sont mentionnés dans les textes sont déjà suffisamment variés pour qu’il soit difficile de les saisir avec des règles codées manuellement. Les commentateurs sportifs peuvent être étonnamment créatifs ! L’utilisation d’approches à base d’apprentissage au lieu de règles manuelles laborieusement élaborées et souvent très difficilement maintenable, justifie donc cette approche.
  • Une approche stricte de correspondance de chaînes de caractères ratera de nombreuses occurrences pertinentes. Alors que le nom complet d’un club peut être “FC Bayern München”, des phrases comme “Le Bayern a eu de la chance le week-end dernier” ou “… n’a pas marqué un seul but contre München au cours des 18 derniers mois…” doivent également être prises en compte.
  • D’autre part, une certaine capacité de désambiguïsation est nécessaire pour distinguer des cas tels que “le nouveau gardien de but de Newcastle” de “qui est né à Newcastle en 1991” où, dans le second cas, la ville, et non le club, est mentionnée.

Conclusion

Bien que nous ayons parlé de l’exemple fictif de l’extraction des clubs de football ci-dessus, il est clair que les approches discutées répondent à un large éventail de défis du monde réel de l’analyse de contenu : un vocabulaire contrôlé partiel, contenant certaines mais pas toutes les entités requises (ou leurs variations) existe ou un vocabulaire contrôlé existe mais doit être enrichi régulièrement lorsque de nouvelles entités ou termes apparaissent (nouveau variant d’un virus, nouvelle lignée cellulaire…).