Chapitre 1 Préambule

1

L’écosystème r s’est enrichi ces dernières années à grande vitesse dans le domaine du traitement du langage naturel.

Le but de ce manuel est de donner une synthèse des méthodes et des modèles disponibles à chacune des étapes de traitement des données textuelles : collecte, pré-processing, modélisation, visualisation.

Sa vocation est pratique, on s’appuie sur des corpus caractéristiques, et les scripts sont totalement reproductible.

On y laissera germer quelques considérations plus méthodologiques, voire épistémologiques. On ouvrira chaque fois que c’est possible et nécessaire la discussion aux questions théoriques et éthiques de ces méthodes. Leur réalisation computationnelle est le fruit souvent d’une longue histoire, au cours de laquelle les linguistes ont semé des idées essentielles qu’ont systématisées les informaticiens. Si ce champs est désormais désigné par l’acronyme NLP, pour “Natural Langage Processing” auquel correspond en français le TAL (Traitement Dutomatique du Langage naturel), l’expression de linguistique computationnelle convient peut-être mieux.

On soignera la bibliographie de manière synthétique pour en faire un état de l’art essentiel et actualisé. La rédaction de l’ouvrage est mené avec une règle de reproductibilité et de transparence, c’est le pourquoi le choix de ce support et des jeux de données associés. Il sera dynamique, modifié à mesure de nos cours, séminaires, ateliers et observations des lecteurs.

1.1 Cours et séminaires

La liste des cours et séminaires où il sera présenté et utilisé en 2021-2022.

1.2 La structure du livre

L analyse NLP peut être analysée comme un processus qui va de la production jusqu’à la diffusion des analyses. Elle est aussi traversée par des évolutions profondes de méthodes qui ont complexifié au sens formel les modèles initiaux. Ce sont ces techniques que nous introduisons ici.

Cependant, l’apprentissage automatique appliqué à des milliards de données submerge la statistique. Les modèles de langage distribués par les grands acteurs du gidital, comprennent des dizaines, voir des centaines de milliards de paramètres. On les évoquerons dans les derniers chapîtres.

Le plan suit une logique progresse qui va du simple au très compliqué, et de l’acquisition des données à leur traitement et leur modélisation.

  • Acquisition des données : directe, api et scrapping
  • Corpus dtm et cooccurence
  • AFC et typologie
  • l’annotation syntaxique et lexicale
  • analyse du sentiment et sa généralisation
  • Word embedness
  • Factorial models
  • Topic analysis
  • ML classique
  • deep learning et transformer
  • méthodes génératives : parce que la prochaine étape c’est quand on appliquera ces méthode sur la productions textuelles des bots.

1.3 Les jeux de données

Au cours du développement, plusieurs cas pratiques - souvent réduits en volume pour rester exemplaires, seront employés. Les données sont partagées dans le répertoire .\data\ du repository ``

En voici la présentation systématique.

  • Trump Twitter Archive : L’intégralité des tweets de Trump jusqu’à son banissement le 8 Janvier 2021.

  • Confinement Jour J

  • Citations : un recueil de citations littéraires pour de petits exemples et ponctuer le texte aride d’un peu de littérature et de poésie.

  • Trip advisor Polynésie, un extrait d’un corpus établi par Pierre Ghewy et Sebastien de l’UPF

  • Airbnb : paris 2019, bruxelles 2020 à partir de InsideAirbnb - adding data to the debate

  • Covid : le corpus confinement jour, ainsi que celui de Banda.

  • PMP : titre et abstract de tout les article de la revue “Politique et Management Public” de 1982 à 2020. Le corpus a été constitué à l’inititive de Manel Benzarafa avec le soutien de la revue et des ses éditeurs.

  • David Bowie : Les articles des magazines musicaux relatif à ,la sortie des 23 album de l’artiste. Constitué par Elias Benavent.

  • Appli de fitness

  • Langages / Julien

L’ensemble des codes et données sont disponibles dans le repositery NLP Book pour la reproductibilités). Les amendements et améliorations sont souhaitées et attendues.

1.4 Les ressources

Ce livre est écrit en Markdown (Allaire et al. 2021) et construit avec le package Bookdown (Xie 2021).

Le code s’appuie très largement sur tidyverse et emploie largement les ressources de ggplot et de dplyr . On recommande d’étudier ces deux ressources en parallèle.

Une mention particulière doit être faite sur la question du traitement du texte dont stringr est un des outils fondamentaux, même si ardu. Il propose une multitude de fonctions pour traiter les chaînes de caractères. Son étude est recommandée de concert avec la connaissance des regex.

D’autres outils transersaux sont utilisés dans le manuel. Pour les tableaux, nous opterons la plus part du temps pour les solutions de flextable.

On supposera que les lecteurs ont une connaissance satisfaisante de ces outils génériques, mais à chaque fois qu’on les introduira, on les expliquera.

1.4.1 Les packages

Les data sciences sont devenue un jeu de lego. Les briques de base sont les bibliothèques, des packages qui rassemblent un jeu plus ou moins étendu et cohérent de fonctions. On en utilise dans ce manuel un grand nombre. Les packages seront introduits au fur et à mesure de leur première utilisation. On le signale par un commentaire #library(lib). En voici la liste complète, pour reproduire les exemples il est recommandé des les installer tous.

knitr::opts_chunk$set(echo = TRUE, message=FALSE,warning=FALSE)

#boite à outils et viz
library(tidyverse) # inclut ggplot pour la viz, readr et 
library(readr) #lecture de fichier csv
library(scales) # pour affiner les échelles de ggplot

#Vizualisation souvent en développement de ggplot ( inclus dans tidyverse)
library(cowplot) #pour créer des graphiques composés
library(ggridges) # le joy division touch de ggplot
library(pheatmap) #carte de chaleur
library(flextable) #mise en forme de tableaux

#networks
library(igraph) #le standard pour les représentations de réseaux
library(ggraph) #un complément compatible ggplot du précédent

# Accéder aux données
library(rtweet)  # une interface efficace pour interroger l'api de Twitter
library(revtools) #acces aux bases bibliographiques
library(rvest) #pour le scrapping

# OCR et pdf
library(tesseract) #reconnaissance de caractère
library(pdftools) #gérer la lecture des pdf

# Analyse de donnée
library(FactoMineR) #le classique de l'AF et ses variantes
library(factoextra)

# NLP
library(tokenizers)

library(quanteda)
library(quanteda.textmodels)
library(quanteda.textplots)
library(quanteda.textstats)
library(udpipe) #annotation syntaxique
library(tidytext) #lda glove et autres
library(cleanNLP) #annotation syntaxique

library(syuzhet) #analyse du sentiment

#install.packages("remotes")
#remotes::install_github("bmschmidt/wordVectors") 
library(wordVectors)

library(ade4)
library(ExPosition)
library(Biobase)
library(BiocManager)
library(NMF) #non negative factoring

##reconnaissance de langue
library(cld3) # c'est google qui gère
library(textcat) #ngram based

#Analyse du sentiment
library(syuzhet)   #des sentiments , des émotions         

#mise en page des tableaux
library(flextable) # 

#Statistiques et modèles
library(lme4)
library(jtools)
library(interactions)
library("corrplot")

#ML
library(caret)
library(vip)
library(plotROC)
library(MLeval)


#Palettes
library(colorspace) #pour les couleurs
library(viridis)
library(viridisLite)

#utilitaires
library(citr) # un outil interactif pour insérer des références 
library(doParallel)


#Template pour ggplot
theme_set(theme_bw())


library(udpipe)
library(quanteda)
library(quanteda.textmodels)
library(Rtsne)
library(NMF)
library(ggrepel)
library(ggplot2)
library(flextable)
library(FactoMineR)
library(factoextra)
library(frequency)
library(Rcpp)
library(rainette)
library(explor)
library(quanteda)

1.5 Disponibilité

L’ensemble du code est disponible sur github.

Sous licence creative common (comment met-on le badge ?)

citation. (un doi serait bien, au mini un bib)

References

Allaire, J. J., Yihui Xie, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, Hadley Wickham, Joe Cheng, Winston Chang, and Richard Iannone. 2021. Rmarkdown: Dynamic Documents for R. https://CRAN.R-project.org/package=rmarkdown.

Xie, Yihui. 2021. Bookdown: Authoring Books and Technical Documents with R Markdown.


  1. Incantation for 6 voices Scott helmes, 2001. Museum of Minessota