Créer un système de recommandation de contenu grâce à la reconnaissance d'entités nommées

|

|

Le besoin
La solution
Ils peuvent vous aider

Le besoin

Comment recommander du contenu qui sera le plus à même d’intéresser le lecteur suite à l’article qu’il vient de consulter ?

Je suis directeur webmarketing pour un éditeur d'informations d'actualité sur un site internet et une de mes missions est d'accroître le trafic et de fidéliser les lecteurs. Pour cela, je dois augmenter leur taux d'engagement sur le site et cela passe entre autres par diminuer le taux de rebond. Pour que ce taux soit faible, il faut que les articles recommandés en fin de page soient pertinents par rapport à l'article qui vient d'être lu, article qui a intéressé le lecteur.

A titre d'exemple, si le lecteur consulte un article qui traite de la visite du Ministre de la Santé dans les hôpitaux de la ville de Versailles, il serait pertinent de proposer par la suite d’autres articles traitant d’un sujet similaire, à savoir des articles sur le Ministre de la Santé, sur les hôpitaux ou sur Versailles.

Pour cela, j’ai besoin d’un outil pour traiter automatiquement le contenu de chaque article afin de créer un système de recommandation d’articles efficace pour chaque article lu.

La solution

La reconnaissance d’entités nommées pour créer un système de recommandation de contenu

La reconnaissance d’entités nommées (ou NER pour named entity recognition en anglais) est une technique de traitement automatique de texte afin d'en dégager des mots ou expressions particuliers, en général avec une dénotation dans le monde réel. Ces entités appartiennent généralement aux catégories suivantes : 

  • nom de personne,
  • nom d'organisation,
  • nom de lieu,
  • nom d’événement,
  • nom de produit,
  • quantité,
  • valeur monétaire,
  • date.

Par exemple, dans la phrase :

  • “Steve Jobs, un des fondateurs d’Apple, a annoncé sa venue au journal télévisé Fox News le 2 octobre prochain”,

une approche NER détectera les expressions “Steve Jobs” comme appartenant à la catégorie “nom de personne”, “Apple” à “nom d’entreprise”, “Fox News” à “nom d’entreprise”, “2 octobre” à “date”.

Selon les besoins, les catégories peuvent être adaptées pour ne choisir que les plus pertinentes. Pour un système de recommandation d’articles, les plus judicieuses sont les catégories noms d'organisations, noms de personne, noms d’entreprise, lieux, noms de produits et noms d’événements. Ces catégories sont à privilégier pour faire le moins d'erreurs lors de la recommandation. En effet, il y a peu de chances de se tromper de Steve Jobs par homonymie de patronyme (c'est à dire que quelqu'un d'autre porte le même nom) alors qu'une valeur monétaire de 2 millions d'euros peut être mentionnée dans plusieurs articles ne traitant pas du même sujet alors qu'un système de recommandations doit au contraire mettre en avant les articles similaires.

En trouvant des similitudes entre les entités reconnues de plusieurs articles, il est alors possible de dégager un ensemble d’articles traitant du même sujet et qui sont alors susceptibles de plaire au lecteur.

Différentes approches NER

Reconnaissance d'entités par dictionnaire

L'approche NER basée sur un dictionnaire consiste à créer un dictionnaire de tous les mots correspondant à une entité nommé, par exemple les noms de villes, de personnes, de produits...

C'est l’approche la plus simple car elle compare chaque mot de l’article avec un dictionnaire de mots contenant les entités nommées et leur catégorie. Lorsque l'algorithme rencontre une expression qui est présente dans son dictionnaire, celle-ci est annotée avec le nom de la catégorie qui lui correspond.

Reconnaissance d'entités par règles

L'approche NER basée sur des règles consiste à décrire les règles syntaxiques permettant de reconnaître une entité nommée.

Par exemple la règle :

<PERSONNE>[prenom] #MOT</PERSONNE>

  • [prenom] est un prénom connu décrit dans une base de données,
  • #MOT est une chaîne de caractères commençant par une majuscule
  • <PERSONNE> est une étiquette correspondant à la catégorie nom de personne

Cette approche est plus performante que celle basée sur un dictionnaire car elle prend en compte le contexte de la phrase pour annoter les entités nommées.

Par exemple, dans la phrase

  • “Il veut créer une organisation mondiale de la santé”,

l’expression “organisation mondiale de la santé” ne doit pas être annotée comme une organisation car elle n’y fait pas référence.

En revanche, dans la phrase

  • “L’Organisation mondiale de la Santé est une agence spécialisée pour la santé publique”,

cette expression doit être annotée. En effet, dans cet exemple, c'est l'article défini “l'” et l'article indéfini “une” qui permet de comprendre si l'expression est une organisation ou non. Cette approche à base de règles est donc plus efficace que l'approche à base de dictionnaire car elle nécessite moins de données et extrait la catégorie de l'entité nommée avec une meilleure de précision.

Reconnaissance d'entités par apprentissage automatique

La troisième approche est celle basée sur l’apprentissage automatique. Cela signifie qu'elle ne se base pas sur des règles formelles mais qu'elle utilise des modèles de langue pour extraire des entités nommées d'un corpus annoté.

Pour effectuer l'apprentissage pour l'extraction d'entités nommées, il faut :

  1. Créer un corpus d'entraînement.
  2. Annoter le corpus d'entraînement.
  3. Entraîner un algorithme d'apprentissage.
  4. Evaluer les résultats.

Créer un corpus d'entraînement

Le corpus corpus d'entraînement doit être constitué d'articles semblables à ceux que l'on souhaite présenter à l'Internaute. Il doit être assez volumineux et contenir un nombre suffisant d'entités nommées pour que l'apprentissage soit efficace.

Annoter un corpus d'entraînement

Chaque entité nommée du corpus doit être indiquée dans le texte. On pourra par exemple annoter de la façon suivante :

  • Le maire d'<VILLE>Orange</VILLE>, <PERSONNE>Frédéric Joseph Hyacinthe d'Hugues</PERSONNE>, a été nommé par le premier consul de la république.
  • L'action <ENTREPRISE>Orange</ENTREPRISE> a perdu 2% à la mi-séance.

Entraîner un algorithme d'apprentissage

A partir du corpus annoté, l'algorithme consiste à identifier, par apprentissage, les similitudes de contextes d'apparition des différentes catégories d'entités nommées. Différentes méthodes mathématiques peuvent être utilisées, notamment en calculant la probabilité d'apparition d'une catégorie en fonction du contexte immédiat,

Par exemple, il est probable que, par apprentissage, la probabilité que la catégorie <VILLE> apparaisse après la chaîne de caractères "le maire de" soit très élevée.

Evaluer les résultats

Lors de la constitution du corpus d'entraînement, certains documents annotés ne seront pas utilisés pour l'apprentissage et serviront à évaluer la performance du modèle issue de l'apprentissage. Cette évaluation consiste à appliquer le modèle sur le corpus d'évaluation et de vérifier la capacité à reconnaître correctement les entités nommées.

Avantages et inconvénients de chaque approche

Extraction d'entités nommées par dictionnaire

Les avantages de l'approche NER par dictionnaire sont surtout sa simplicité d'implémentation basée sur la comparaison de mots. Ses inconvénients sont cependant importants : le dictionnaire doit régulièrement être mis à jour avec de nouvelles entités nommées (comme de nouvelles personnalités publiques ou de nouveaux noms d'entreprise) car dans le cas contraire, elles ne pourraient pas être reconnues. Les homographes ne sont également pas différenciés, cette approche ne reconnaît que ce qu'on attend et ne traite pas les ambigüités.

Par exemple, la chaîne de caractères Orange peut renvoyer aussi bien à la ville du Vaucluse que l'entreprise spécialisée dans les télécoms.

Extraction d'entités nommées par règles

Les avantages de l'approche NER par règles sont l'absence de base de données volumineuse (contrairement au dictionnaire de la précédente approche) et la prise en compte du contexte des mots permettant de différencier les homographes. Le principal inconvénient de cette approche est le développement coûteux des règles.

Extraction d'entités nommées par apprentissage

L'avantage notable de l'approche NER par apprentissage automatique est l'utilisation des statistiques qui permettent d'aiguiser les performances de la reconnaissance d'entités nommées, notamment en prenant en compte les variations d'orthographe. Cependant, il faut disposer de suffisamment de données d'apprentissage pour que cette approche soit efficace.

La reconnaissance d’entités nommées pour un système de recommandations de contenu

Dès qu'un article est rédigé et publié sur la plateforme en ligne, celui-ci doit être analysé par l'algorithme NER afin de l'indexer selon les entités nommées reconnues. Cet index stocke toutes les entités nommées reconnues pour chaque article. Au moment de l'affichage, l'index de l'article consulté est comparé aux index de tous les autres articles pour n'afficher que les articles ayant le plus d'entités nommées communes.

Il est également possible d'ajouter une pondération sur les entités nommées reconnues. Une entité nommée extraite du titre a plus de poids qu'une entité nommée extraite du chapeau car elle est centrée sur le sujet de l'article, et l'entité nommée extraite du chapeau a elle-même plus de poids qu'une entité nommée extraite du texte de l'article. Cette pondération permettra donc d'être plus précis sur l'indexation de l'article

 

Points d'attention

La reconnaissance d'entités nommées est une des méthodes pour créer un système de recommandation de contenus utilisant la comparaison de textes. Une autre méthode peut être l'utilisation du TF-IDF qui est une approche permettant de comparer deux textes en utilisant l'importance de certains termes. Pour un système de recommandation d'articles, les termes importants font référence au sujet de l'article (présenté dans le titre) et les autres articles sont classés selon la fréquence de ces termes. Ceux recommandés sont alors ceux dont la fréquence des termes essentiels est la plus importante.

Par Mathilde Ducos Etudiante NLP