Le traitement automatique du langage
Objectif du chapitre
Ce chapitre aborde le sujet du traitement automatique du langage, appelé en anglais Natural Language Processing (NLP). Après avoir passé en revue quelques concepts techniques clés du NLP, nous allons réaliser un modèle concret sur un vrai jeu de données qui sera capable de reconnaître et distinguer les spams des courriels ordinaires. Ce chapitre devrait être considéré comme une initiation au NLP où nous allons évoquer certaines notions élémentaires, mais qui sont suffisantes pour résoudre un large éventail de problèmes qui relèvent du domaine du traitement automatique du langage.
À la fin de ce chapitre, le lecteur aura abordé :
-
les techniques de nettoyage de documents,
-
les concepts de stopwords, de Stemming et de Lemmatization,
-
les techniques de vectorisation des données textuelles,
-
la vectorisation par comptage d’occurrences de mots,
-
la vectorisation avec la méthode TF-IDF,
-
la vectorisation avec N-Grams,
-
le développement de modèle de classification de documents.
NLP : concepts généraux
Le traitement automatique du langage, également appelé le traitement automatique du langage naturel, est un domaine de l’intelligence artificielle.
Ces technologies du traitement automatique du langage naturel sont toutes des technologies dont le but est d’humaniser l’interface homme-machine, voire de doter la machine d’un caractère plus au moins semblable à celui d’un humain.
Lors de l’apparition des moteurs de recherche, dont Google principalement, les utilisateurs ont dû adapter leur manière de s’exprimer pour retrouver les informations qui les intéressent sur Internet. À l’époque, les utilisateurs saisissaient des requêtes telles que "comment changer une roue de voiture Peugeot 306". Aujourd’hui, la même personne précisera juste "changer roue 306" et Google fera le reste ! Avec les technologies NLP, et grâce aux évolutions technologiques fulgurantes de ces dernières années, l’utilisateur est invité à utiliser son propre langage naturel pour interagir avec la machine, c’est-à-dire que c’est la machine qui va s’adapter à l’homme et non pas l’inverse.
Les cas d’utilisation du NLP sont divers et variés, nous pouvons citer notamment :
-
la classification de documents : par exemple, une application qui analyse un courriel et décide si celui-ci est un spam ou pas,
-
l’analyse des sentiments : par exemple, une application qui analyse les courriels envoyés par des clients afin de détecter ceux qui expriment un sentiment de mécontentement ; cela permet de prioriser le traitement de ces demandes,
-
la reconnaissance d’entités nommées : par exemple, une application qui doit qualifier un ticket entrant dans une base de gestion d’incidents afin de lui attribuer la bonne priorité et orienter sa résolution vers les ressources humaines adéquates par rapport aux compétences du personnel du service. Grâce à la détection des entités nommées, une application peut détecter et comprendre le sens des phrases d’un document,
-
la génération automatique de texte : une application qui échange avec...
Exemple complet pour la détection des spams
Dans ce dernier exemple du présent ouvrage, nous allons développer un modèle de classification de courriels afin de reconnaître ceux qui sont des courriels indésirables ou des spams, ou encore des pourriels, pour ainsi les distinguer des courriels ordinaires.
Pour la réalisation de notre exemple, nous allons utiliser une base de données composée de 5 572 courriels stockés dans le fichier SMSSpamCollection.txt du dossier Data de ce chapitre.
Les références de cette base de données sont les suivantes :
-
[1] Almeida, T.A., Gómez Hidalgo, J.M., Yamakami, A. Contributions to the Study of SMS Spam Filtering: New Collection and Results. Proceedings of the 2011 ACM Symposium on Document Engineering (DOCENG’11), Mountain View, CA, USA, 2011.
-
[2] Gómez Hidalgo, J.M., Almeida, T.A., Yamakami, A. On the Validity of a New SMS Spam Collection. Proceedings of the 11th IEEE International Conference on Machine Learning and Applications (ICMLA’12), Boca Raton, FL, USA, 2012.
-
[3] Almeida, T.A., Gómez Hidalgo, J.M., Silva, T.P. Towards SMS Spam Filtering : Results under a New Dataset. International Journal of Information Security Science (IJISS), 2(1), 1-18, 2013.
Le fichier SMSSpamCollection.txt est une simple table avec deux colonnes. La première colonne renseigne la catégorie d’un courriel parmi les deux catégories spam pour les pourriels et ham pour les courriels normaux. La deuxième colonne concerne le contenu des courriels. En résumé, chaque ligne de ces données correspond au texte d’un courriel et sa catégorie spam ou ham.
La version du fichier SMSSpamCollection.txt utilisée dans cet exemple est une version légèrement modifiée de la base de données que vous pouvez retrouver sur le site Kaggle avec le lien suivant : https://www.kaggle.com/uciml/sms-spam-collection-dataset
L’objectif de cet exemple est de montrer comment appliquer les algorithmes du Machine Learning sur des données textuelles, comme celles de notre fichier et SMSSpamCollection.txt. Ainsi, nous allons développer un modèle qui sera capable d’analyser le contenu d’un courriel, c’est-à-dire le texte associé à un courriel, et décider...
Conclusion
Ce chapitre, qui conclut ce livre, nous a permis d’aborder le domaine du traitement automatique du langage. Nous avons utilisé un exemple concret pour illustrer les opérations de manipulation des données textuelles afin de les transformer en données purement numériques pour ainsi leur appliquer des algorithmes du Machine Learning.