L’un des grands avantages comparatifs de par rapport aux langages concurrents ( notamment) est dans la richesse des librairies de traitement du langage naturel (mieux connu sous son acronyme anglais : NLP pour natural langage processing). Cette partie vise à illustrer la richesse de cet écosystème à partir de quelques exemples littéraires : Dumas, Poe, Shelley, Lovecraft.

Author

Lino Galiana

Published

October 14, 2020

Les parties précédentes étaient consacrées à l’acquisition de compétences transversales pour la valorisation des données. De manière naturelle, nous nous sommes jusqu’à présent plutôt consacrés à la valorisation de données structurées, d’une dimension certes modeste mais qui ouvraient déjà énormément de problématiques à creuser. Cette partie propose maintenant de se consacrer à un sujet dont il n’est pas évident a priori que les ordinateurs s’emparent: le langage humain et sa richesse.

En effet, si la linguistique propose certes de représenter de manière conceptuelle le langage sous une forme de données, comment des ordinateurs, qui au fond ne connaissent que le 0 et le 1, peuvent-ils s’approprier cet objet éminemment complexe qu’est le langage et qu’un humain met lui-même des années à comprendre et s’approprier ?1

Le traitement automatique du langage - traduction française du concept de natural language processing (NLP) - est l’ensemble des techniques permettant aux ordinateurs de comprendre, analyser synthétiser et générer le langage humain2.

Il s’agit d’un champ disciplinaire à l’intersection de la statistique et de la linguistique qui connait depuis quelques années un engouement important, que ce soit d’un point de vue académique ou opérationnel. Certaines des applications de ces techniques sont devenues incontournables dans nos tâches quotidiennes, notamment les moteurs de recherche, la traduction automatique et plus récemment les chatbots.

Résumé de la partie

Cette partie du cours est consacrée à l’analyse des données textuelles avec des exemples de 📖 pour s’amuser. Elle est une introduction progressive à ce sujet en se concentrant sur des concepts de base, nécessaires à la compréhension ultérieure de principes plus avancés et de techniques sophistiquées3. Cette partie présente principalement:

  • Les enjeux de nettoyage de champs textuels et d’analyse de fréquence. Il s’agit de NLP un peu old school mais dont la compréhension est nécessaire pour aller plus loin ;
  • La modélisation du langage, selon plusieurs approches.

Nettoyages textuels et analyse de fréquences

Python est un excellent outil pour l’analyse de données textuelles. Les méthodes de base ou les librairies spécialisées comme NLTK et SpaCy permettent d’effectuer ces tâches de manière très efficace. Les ressources en ligne sur le sujet sont très nombreuses. Python est bien mieux outillé que R pour l’analyse de données textuelles.

Dans un premier temps, cette partie propose de revenir sur la manière de structurer et nettoyer un corpus textuel au travers de l’approche bag of words (sac de mots). Elle vise à montrer comment transformer un corpus en outil propre à une analyse statistique :

  • Elle propose d’abord une introduction aux enjeux du nettoyage des données textuelles à travers l’analyse du Comte de Monte Cristo d’Alexandre Dumas ici qui permet de synthétiser rapidement l’information disponible dans un large volume de données (à l’image de la ?@fig-wordcloud-dumas)
  • Elle propose ensuite une série d’exercices sur le nettoyage de textes à partir des oeuvres d’Edgar Allan Poe, Mary Shelley et H.P. Lovecraft visant à distinguer la spécificité du vocabulaire employé par chaque auteurs (par exemple ?@fig-waffle-fear). Ces exercices sont disponibles dans le deuxième chapitre de la partie.

Modélisation du langage

La suite de cette partie proposera une introduction aux enjeux de modélisation du langage. Ceux-ci sont très à la mode du fait du succès de ChatGPT. Néanmoins, avant d’en arriver aux LLM, il est nécessaire de passer par quelques modélisations préliminaires.

Nous proposerons d’abord d’explorer une approche alternative, prenant en compte le contexte d’apparition d’un mot. L’introduction à la Latent Dirichlet Allocation (LDA) sera l’occasion de présenter la modélisation de documents sous la forme de topics.

Enfin, nous introduirons aux enjeux de la transformation de champs textuels sous forme de vecteurs numériques. Pour cela, nous présenterons le principe de Word2Vec qui permet ainsi, par exemple, malgré une distance syntaxique importante, de dire que sémantiquement Homme et Femme sont proches. Ce chapitre est une passerelle vers le concept d’embedding, véritable révolution récente du NLP, et qui permet de rapprocher des corpus non seulement sur leur proximité syntaxique (partagent-ils par exemple des mots communs ?) mais aussi sur leur proximité sémantique (partagent-ils un thème ou un sens commun ?).4

Comme l’illustre la figure suivante, empruntée à Sebastian Raschka, les concepts que nous allons aborder dans cette partie sont indispensables pour être en mesure d’entraîner ou réutiliser ultérieurement un modèle sophistiqué d’analyse du langage:

(a) Illustration transformer architecture
Figure 1: Illustration of the original transformer architecture proposed in Attention Is All You Need, 2017 (source: Sebastien Raschka)

Pour aller plus loin

La recherche dans le domaine du NLP est très active. Il est donc recommandé de faire preuve de curiosité pour en apprendre plus car une ressource unique ne compilera pas l’ensemble des connaissances, a fortiori dans un champ de recherche aussi dynamique que le NLP.

Pour approfondir les compétences évoquées dans ce cours, je recommande vivement ce cours d’HuggingFace.

Pour comprendre l’architecture interne d’un LLM, ce post de Sebastian Raschka est très utile.

Ces chapitres n’épuisent pas les cas d’usage du NLP pour les data scientists. Par exemple, dans le domaine de la statistique publique, un des principaux cas d’usage du NLP est l’utilisation de techniques de classification automatique pour transformer des réponses libres dans des questionnaires en champs prédéfinis dans une nomenclature.

Voici un exemple sur un projet de classification automatisée des professions dans la typologie des nomenclatures d’activités:

Back to top

Footnotes

  1. En écrivant ces lignes j’ai demandé à ChatGPT de me faire une blague.

    Pourquoi les programmeurs détestent-ils la plage ? Parce que le sable change tout le temps de paradigme !

    Ne l’ayant pas comprise du fait de mon esprit obtus, je lui ai demandé de me l’expliquer. Voici sa réponse

    Bien sûr, je serais ravi de l’expliquer ! Cette blague joue sur le double sens du mot “paradigme” et fait un jeu de mots avec les notions liées à la programmation et à la plage.

    Dans le domaine de la programmation, un “paradigme” désigne un modèle ou une méthode de programmation, comme la programmation orientée objet, la programmation fonctionnelle, etc. Les programmeurs sont souvent familiers avec différents paradigmes de programmation.

    D’autre part, en contexte de plage, “paradigme” est utilisé pour signifier “marée qui monte et descend”, se référant à l’action naturelle du sable et de l’eau sur la plage.

    La blague joue sur la frustration humoristique que peuvent ressentir les programmeurs lorsqu’ils doivent s’adapter à de nouveaux paradigmes de programmation, tout comme le sable de la plage qui change constamment avec les marées. En associant les deux sens du mot “paradigme”, la blague crée une situation absurde et amusante, faisant sourire ceux qui comprennent les références à la programmation et à la plage.

    Finalement, j’ai trouvé son explication plus drôle que sa blague.↩︎

  2. Le concept de natural language processing tend à remplacer celui de text mining dont le périmètre était plus spécifique. Le text mining renvoie à la recherche d’information - la fouille - dans un ensemble de textes. C’est l’un des champs d’applications du natural language processing mais ce n’est pas l’unique.↩︎

  3. Par exemple, le concept d’embedding - transformation d’un champ textuel en un vecteur numérique multidimensionnel - aujourd’hui central dans le NLP n’est évoqué qu’à quelques reprises. Avant d’en arriver au sujet des embeddings, il est précieux de comprendre les apports et les limites de concepts comme le sac de mot (bag of words) ou la distance TF-IDF (term frequency - inverse document frequency). Dans une optique introductive, ce cours se focalise donc sur ces derniers pour faciliter l’ouverture ultérieure de la boite de Pandore que sont les embeddings.↩︎

  4. Un exemple d’intérêt de ce type d’approche est la ?@fig-relevanc-table-embedding.↩︎

Citation

BibTeX citation:
@book{galiana2023,
  author = {Galiana, Lino},
  title = {Python Pour La Data Science},
  date = {2023},
  url = {https://pythonds.linogaliana.fr/},
  doi = {10.5281/zenodo.8229676},
  langid = {en}
}
For attribution, please cite this work as:
Galiana, Lino. 2023. Python Pour La Data Science. https://doi.org/10.5281/zenodo.8229676.