Skip to content
Snippets Groups Projects
Select Git revision
  • 7a0b6282a563195f200c712103b0645230754797
  • main default protected
2 results

X_test_28.npy

Blame
  • TAL.md 25.65 KiB

    Traitement Automatique de la Langue {#sec:EdlA_TAL}

    La section qui s'ouvre présente les différents outils employés pour une part lors de la préparation du corpus (voir chapitre \ref{sec:corpus}) mais plus encore dans les travaux de classification (présentés au chapitre \ref{sec:domains_classification}). Comme le laissent présager les remarques historiques de la section précédente, l'[@=AA] y occupe une part importante.

    Les méthodes basées sur des réseaux de neurones travaillent sur des entrées sous forme numérale. Pour pouvoir travailler sur des textes, ils doivent nécessairement à un moment de leur traitement être représentés par des nombres ou plutôt des tableaux de nombres: des vecteurs.

    Vectorisation {#sec:EdlA_vectorization}

    Pour vectoriser un document, une première approche consiste à le considérer comme un «sac de mots» [@salton1986introduction]. L'ensemble des mots dans un corpus (tokens ou lemmes selon les implémentations) constitue le vocabulaire utilisé comme base d'un espace vectoriel de très grande dimension dans lequel chaque document est représenté. Pour chaque vecteur de cette base (correspondant donc à un mot unique du corpus), la composante associée dans le vecteur qui représente un document est un entier positif ou nul égal au nombre d'occurrences du mot (sa fréquence) dans ce document. Le terme anglophone consacré est «Bag of Words», et bien que ce terme soit le seul pour lequel l'équivalent français s'emploie, l'acronyme BoW sera également utilisé dans ce qui suit par soucis d'homogénéité avec les autres méthodes. Cette approche produit des représentations vectorielles très grandes (beaucoup de nombres) et avec peu de valeurs non nulles (la plupart valent 0) car chaque document n'utilise qu'une fraction de l'ensemble du vocabulaire défini par le corpus entier. On parle de représentation creuse (sparse en anglais).

    La deuxième approche, TF-IDF (Term Frequency - Inverse Document Frequency, «fréquence du terme - fréquence inverse de document») est un type de représentation en BoW qui au lieu de simplement pondérer les mots par leur fréquence dans le document considéré tempère ce nombre en le divisant par la proportion de documents du corpus qui contiennent ce mot. De la même manière que les BoW «purs», les vecteurs produits par cette méthode sont creux, ce qui tend à dégrader les performances des algorithmes d'[@=AA] en augmentant leurs complexités spatiales et temporelles.

    \label{edla_word_embeddings} Par contraste avec les deux approches précédentes, les plongements de mots produisent des vecteurs de plus petites dimensions et denses en coefficients non nuls. Ils constituent une famille de méthodes fondamentalement différentes des deux précédentes du fait qu'elles capturent le contexte des mots dans leurs représentations vectorielles. Il y a deux approches pour entraîner des plongements de mots: CBOW (Continuous Bag of Words, «sacs de mots continus») et skip-gram («fenêtres à trou»). La première consiste à prédire un mot en fonction de son contexte. À l'inverse, une architecture skip-gram apprend à prédire le contexte à partir d'un mot. Initialement pensée au niveau des mots individuels, Word2Vec [@mikolov2013efficient] permet déjà de représenter un texte en combinant les vecteurs des mots qu'il contient (par exemple en faisant leur moyenne). Peu adapté aux textes longs, on lui préfère souvent la méthode voisine Doc2Vec [@le2014distributed] sur ce type d'entrées. Ces méthodes de plongements nécessitent un entraînement sur le corpus sur lequel elles vont être utilisées car elles ne peuvent pas gérer de mots spécifiques à ce corpus et qu'elles n'auraient jamais rencontrés. D'autres telles que FastText [@bojanowski2017enriching] sont disponibles préentraînées car elles considèrent des fenêtres de quelques caractères plutôt que des mots entiers, ce qui leur permet de calculer un vecteur même pour des termes absents de leur vocabulaire d'entraînement. On parle pour ces méthodes de plongement «statique» parce qu'elles produisent un vecteur unique pour représenter un mot, en combinant tous les différents contextes dans lesquels il peut apparaître. Plus récemment, BERT [@devlin2018bert] — Bidirectional Encoder Representations from Transformers («Représentations d'Encodeur Bi-directionnels à partir de Transformeurs», voir p.\pageref{deep_learning_classifiers}) — utilise un plongement contextuel, où la représentation de chaque mot dépend du contexte dans lequel il apparaît dans une phrase, pour la phase de vectorisation qu'il intègre. BERT utilise des réseaux de neurones de type transformer et le concept de masque pour prédire les mots qui complètent une amorce de phrase donnée.

    Classification {#sec:EdlA_classification}

    La classification de documents est un problème général en [@=IA] qui consiste à regrouper ensemble des objets jugés plus proches ou ressemblants pour une certaine sémantique ou une certaine métrique par opposition à ceux qui aboutissent dans les autres groupes. Il existe dès le début des années 1970 une littérature fournie portant sur les stratégies de classification et les mesures de similarités utilisées que @cormack_review_1971 entreprend d'organiser.

    Les problèmes de classification couvrent un grand nombre d'applications pratiques variées. On trouve des études portant sur la classification de sons [@nogueira_transformers_2022], d'images [@adriyanto_classification_2022] — même hors du spectre visible [@yu_simplified_2020] — ou bien d'événements sur un système informatique en vue de détecter des attaques [@gavari_detection_2022].