Le Traitement Automatique du Langage Naturel (TALN) ou Natural Language Processing (NLP) est un processus complexe permettant d’extraire du sens à partir de données textuelles brutes.
Expert dans le domaine, QWAM utilise des technologies avancées d’intelligence artificielle pour simplifier le traitement de ces données.
De la détection de la langue à l’extraction de mots-clés, Sotiria Bampatzani, Ingénieure Big Data chez QWAM, vous présente les étapes « de base » indispensables pour donner du sens à vos données : la reconnaissance automatique des entités nommées.
Vous travaillez, entre autres, sur la détection automatique de langues et sur l’extraction des entités nommées. Pourquoi cette étape est-elle fondamentale ?
Une entité nommée désigne souvent un nom propre, un élément d’un texte que l’on peut classer sur un plan sémantique. Extraire toutes les entités nommées d’un ensemble de documents peut avoir plusieurs objectifs. Le but dépend de chaque cas d’usage. Les données à traiter peuvent être issues du web, des réseaux sociaux, des réponses à des enquêtes et autres.
Si nous prenons le cas du suivi après-vente des produits ou services d’une marque, le projet aura pour but d’identifier la perception et le niveau de satisfaction des clients sur un jeu de données constitué d’avis clients. Ce qui suppose d’extraire d’abord les phrases parlant des produits* ou des services de la marque*, puis des sentiments liés à ces derniers (*entités nommées).
Dans de nombreux cas, il reste nécessaire, au préalable, de reconnaître la langue utilisée avant de passer à l’étape de la reconnaissance d’entités nommées.
Une première étape décisive – la reconnaissance de la langue, pourquoi est-ce important ?
Cette première étape de détection de la langue reste complexe notamment parce que certains mots, expressions, ou noms de sociétés, peuvent être utilisés dans différentes langues. Et, également, parce qu’un même mot peut avoir des sens différents selon les langues. « Orange » est une société mais aussi une couleur en français comme en anglais. La détection des langues permet dans un premier temps de désambiguïser ce type d’entités.
Nous nous appuyons sur des règles d’annotation et des « gazetteers », autrement dit des listes de mots-clés internes, qui nous permettent en première approche de détecter la langue utilisée.
Dans un second temps, ces règles d’annotation nous permettent de réaliser une analyse et de vérifier la langue du texte étudié.
Nous avons également développé nos propres outils en complément. L’un d’entre eux recense la présence de mots clés, articles et adverbes notamment, propres à une langue. Un autre outil analyse les règles syntaxiques également caractéristiques d’une langue
En outre, nous utilisons des librairies Python et Java, des « briques » de logiciels open source spécialisés dans la détection de langage, afin de nous assurer que notre jeu de données ne contient que des phrases appartenant à une seule langue.
En comparant les résultats de ces différents programmes, nous pouvons détecter le langage utilisé, avant de passer à l’étape de la reconnaissance d’entités nommées.
Quelles sont les étapes suivantes, en particulier pour extraire ces entités nommées ?
En utilisant des règles d’annotation et des outils spécifiques, nous sommes capables de détecter des entités nommées, des concepts et des sentiments. Afin d’en identifier de nouvelles, nous implémentons différents algorithmes de « machine learning » et de « deep learning ».
Le jeu de données sur les avis clients peut servir comme corpus d’apprentissage pour entraîner un modèle de reconnaissance d’entités nommées. Nous entraînons nos modèles avec des corpus importants et ciblés. Par exemple, dans le secteur business, nous avons collecté depuis 2015 la plupart des articles en ligne dans le domaine.
Ces derniers ont été « nettoyés », en d’autres mots, nous les avons annotés et un corpus des phrases contenant les lieux, noms et toutes autre entités nommées en a été extrait. Ces données ont été traitées par notre modèle d’apprentissage basé sur des algorithmes.
Nous détectons toutes les entités nommées déjà connues. Ainsi, en utilisant ce corpus d’apprentissage, notre modèle « apprend » à les reconnaître et est capable d’en trouver d’autres dans des nouvelles sources, par exemple sur des nouvelles données apportées par un client.
Bien entendu, pour aller plus loin, il faut se pencher du côté de la reconnaissance de concepts et de sentiments. L’automatisation de cette phase, plus complexe, nécessite l’implémentation d’autres modèles et algorithmes.
Pour en savoir plus