Fiche Langage naturel Created @18 janvier 2024 00:33 Tags Cours 0 Introduction et objectifs En bref : La LNP est un domaine de l'informatique qui vise à reproduire tout ce que les humains savent faire avec le langage via un par un ordinateur. La classification de textes consiste à étiqueter un texte donné à l'aide d'étiquettes prédéfinies. Exemples : actualités, finances, sports, voitures, internet, etc. Un exemple simple, mais utile simple mais utile est la classification SPAM/NON SPAM Par essence, le regroupement de textes est la version non supervisée de la classification Objectif = segmenter un texte ou un corpus en différentes parties, mais celles-ci n'ont pas d'étiquette prédéfinie. Un thème (topic) est un ensemble de mots fortement corrélés les uns aux autres En supposant qu'un document est lié à plusieurs thèmes on a : Cette expansion bayésienne s'avère plus efficace que l'utilisation directe des mots. Objectif = comprimer un texte tout en minimisant la perte de son sens Tâche très difficile, car elle nécessite une compréhension approfondie du texte. Fiche Langage naturel 1 Deux grandes familles de méthodes : extractives et abstractives Méthodes extractives : Extraire les phrases importantes du texte et laisser les autres de côté. - Utilisation d’une fonction de notation est nécessaire pour classer l'importance des phrases. LSA fonction pour Latent semantic analysis Méthodes abstraites : Analyser l'information sémantique de chaque phrase du texte Produire des phrases plus courtes et entièrement nouvelles ayant le même sens. Les différentes étapes de la traduction 1. Preprocessing (tokenisation) : extraction des parties textuelles des docs qui sont plus riche (Latex, HTML…) Fiche Langage naturel 2 Normaliser les mots, corriger les fautes de frappes, suppressions de la ponctuation, des majuscules… 2. Intégration des mots (word embeddings) : rapprocher les mots proches et les représenter par des vecteurs proches dans l'espace vectoriel dense Remplacer un mot par un synonyme avec une distorsion minimale ? 3. Détection de sujets, classification de textes, analyse de sentiments + ancienne technique, empruntée à la réduction de la dimensionnalité 4. Traduction Cours 1 : Prétraitement La tokenisation consiste à diviser un morceau de données d'entrée en éléments atomiques utiles, appelés unités lexicales, tout en rejetant tout le reste. Les différentes étapes du prétraitement : 1. Tokenization / normalization : segmente les données en "tokens", ou unités lexicales. Celles-ci comprennent des sous-mots, des mots ou des phrases. Transforme certaines séquences compliqué en séquences plus simple. Ex : Hellooooo → hello supprime les données non utilisable 2. Suppression des mots vides : suppression de tous les mots qui n'ont pas ou peu de sens. de sens. Exemples : the, of , a, an, at, on, in, which 3. Lemmatization and stemming : Lemmatization : Ramène les mots à leurs formes de base comme les verbes et les adjectifs. Ex : giving→give stemming : regrouper les variantes d'un mot en une seul racine pas forcément réel. Ex : giving → giv Rappel sur les expressions régulières Fiche Langage naturel 3 Alphabet (Σ) : Ensemble de symboles. Langage sur Σ : Sous-ensemble de la puissance de Σ. Langage rationnel : Soit le langage vide ( où a ∅), soit un langage de la forme {a}, ∈ Σ, soit un langage de la forme L∗, L + R, ou L.R, et rien d'autre. L + R : Langage dont les mots sont l'union des mots de L et R. L.R : Langage dont les mots sont obtenus en concaténant toutes les paires possibles de mots de L et R. Ln : Langage puissance n de L, noté L.L...L. L∗ : Union de tous les langages puissance de L. La notation ∗ est appelée l'étoile de Kleene. Exemple Soient L = {a, b} et R = {b, c} L + R = {a, b, c} L.R = {ab, ac, bb, bc} L2 = L.L = {aa, ab, ba, bb} L∗ = {a, b, c, aa, ab, ba, bb, aaa, baa, bba, aab, abb, bab, bbb, ... } Exemples : L'ensemble des nombres entiers est un langage rationnel. L'ensemble des dates au format jj/mm/aaaa est un langage rationnel. Contre-exemples : L'ensemble des expressions algébriques correctement parenthésées n'est pas un langage régulier. L'ensemble des palindromes sur l'alphabet latin n'est pas un langage régulier. Toutes les expressions régulières ont leur pendant en language rationel Diviser des mots en sous-mots pour faciliter l'indexation et la recherche peut-être intéréssant Fiche Langage naturel 4 Il est fréquent que des affixes de mots existants soient mélangés pour créer un nouveau mot comme picture + élément → pixel Byte pair encoding : L'algorithme fusionne les données en identifiant les paires d'octets les plus courantes. Ce processus se répète jusqu'à ce que la fusion ne soit plus possible, soit parce qu'il n'y a plus de paires fréquentes, soit parce que tous les nouveaux mots sont crées. exemple : à gauche step 1 et à droite step 6 CCL : résultat nul car la paire dominante était “we” Modèle de langage unigramme Considéron V comme un vocabulaire, les probabilités p(x) sont inconnues pour chaque x ∈ V, mais supposées indépendantes. Par conséquent, la probabilité de toute séquence x = (x1, ..., xM ) est simplement le produit de toutes les p(x_i) soit : M P (x) = ∏ p(xi ) i=1 Exemple Supposons que nous ayons un vocabulaire V composé des lettres de l'alphabet, avec les probabilités suivantes pour chaque lettre : p(a)=0.3, p(b)=0.2, p(c)=0.1 Considérons la séquence X={a,b,b,c}. La probabilité de cette séquence selon le modèle serait le produit des probabilités individuelles des lettres : P(X)=p(a)×p(b)×p(b)×p(c)=0.3×0.2×0.2×0.1 Fiche Langage naturel 5 Donc, P(X)=0.0012P(X)=0.0012. Si X est une séquence d'entrée, la segmentation (cad la sous séquence) la plus probable x∗ de X est alors donnée par : x∗ = arg x∈S (X ) maxP (x)(1) où S(X ) est l'ensemble de toutes les segmentations possibles. ∈ L'expression argx S(X)maxP(x) signifie que l'on cherche l'ensemble des segmentations x (appartenant à l'ensemble S(X) des segmentations possibles) pour lesquelles la probabilité P(x) est maximale. Un document D est constitué de phrases X^1, X^2,… Alors, les p(xi ) sont ceux qui maximisent la vraisemblance ∣D∣ V = ∑ log(P (X s ))(2) s=1 Ce problème ne peut pas être résolu car dans la vie, on ne connait jamais V. On suit donc la méthode Kudo Méthode Kudo : 1. Choose an reasonably large enough seed vocabulary V from the corpus 2. Répéter les opérations suivantes jusqu'à ce que V atteigne la taille souhaitée : a. Estimer les p(xi ) en maximisant (équation 2) b. calculer loss_i = réduction de L induite par la suppression de la séquence x_i de V c. Trie les x_i par loss_i et garder le meilleure pourcentage comme nouveau V Cours 2 : Word embeddings - notions clés Introduction aux Word Embeddings Les embeddings de mots sont des vecteurs de nombres réels qui représentent des mots dans un espace vectoriel. Fiche Langage naturel 6 L'objectif est de capturer le sens, l'utilisation, et la relation entre les mots de manière numérique. Comment représenter les mots ? La représentation traditionnelle inclut des matrices de contingence et la normalisation TF-IDF (Term Frequency-Inverse Document Frequency). tf(t, d) = log(1 + f(t, d)) where f (t, d) = number of times term t appears in document d idf(t) = log(N + 1/1 + nt ) tfidf = tf(t, d)idf(t) Ces méthodes permettent de représenter les mots en vecteurs en se basant sur leur fréquence dans les documents, mais elles ne capturent pas bien les relations sémantiques entre les mots. Latent Semantic Indexing (LSI) LSI est une technique pour extraire et représenter le sens des mots en réduisant la dimensionnalité des matrices de termes-documents. Elle vise à capturer des relations sémantiques plus profondes, mais peut être limitée par sa linéarité. Word2Vec Fiche Langage naturel 7 Word2Vec est une méthode spécifique pour entraîner des embeddings de mots qui capturent des relations sémantiques et syntaxiques. Il existe deux architectures Word2Vec : CBOW (Continuous Bag of Words) et Skip-Gram. CBOW : Objectif : Prédire un mot cible à partir du contexte environnant. Fonctionnement : CBOW utilise le contexte entourant un mot cible pour prédire ce mot. Il considère les mots voisins comme une fenêtre contextuelle et essaie d'apprendre la probabilité du mot cible étant donné ce contexte. Architecture : L'architecture CBOW prend les mots du contexte en entrée et tente de prédire le mot cible en sortie. Le réseau est donc configuré pour minimiser l'erreur de prédiction. Skip-Gram : Objectif : Prédire le contexte environnant à partir d'un mot cible. Fonctionnement : À l'inverse de CBOW, Skip-Gram prend un mot cible en entrée et tente de prédire les mots du contexte qui l'entourent. Il considère chaque mot du contexte comme une cible potentielle. Architecture : L'architecture Skip-Gram prend un mot cible en entrée et génère une distribution de probabilité sur les mots du contexte. L'objectif est de maximiser la probabilité des mots du contexte réels. Cours 3 : Notes de cours supplémentaires sur l'apprentissage automatique Objectif : Permet de traiter des données non linéairement séparables en les projetant dans un espace de dimension supérieure où elles deviennent séparables. Principe : Transformer l'espace des caractéristiques sans calculer explicitement les coordonnées dans cet espace de dimension supérieure, grâce à une fonction de noyau (kernel function). Fiche Langage naturel 8 LDA (Linear Discriminant Analysis) Objectif : Trouver un axe linéaire de séparation maximisant la distance entre les moyennes des deux classes tout en minimisant la variance au sein de chaque classe. Application : Très utilisé pour la réduction de dimensionnalité et la classification en apprentissage supervisé. Kernel LDA Extension de LDA : Applique le kernel trick à LDA pour permettre la séparation linéaire dans un espace de caractéristiques de dimension supérieure. Avantage : Peut séparer efficacement des données qui ne sont pas linéairement séparables dans leur espace d'origine. SVC (Support Vector Classification) Objectif : Trouver l'hyperplan qui sépare le mieux les différentes classes avec une marge maximale, pour des données linéairement séparables. Caractéristique : Utilise les vecteurs de support, les données les plus proches de l'hyperplan de séparation, pour définir la marge. Non-linear SVC Extension de SVC : Utilise le kernel trick pour permettre la classification de données non linéairement séparables. Principe : Projeter les données dans un espace de dimension supérieure où un hyperplan linéaire peut les séparer. Modèles linguistiques neuronaux Limitations des Réseaux Feed-forward Définition : Les réseaux feed-forward propagent les informations dans une seule direction, de l'entrée vers la sortie, sans boucles. Limitations : Incapables de traiter des séquences de données dans le temps ou de maintenir un état interne pour gérer des contextes ou des dépendances temporelles. Fiche Langage naturel 9 Réseaux d'Elman Définition : Type de RNN simple où chaque neurone reçoit une entrée des données actuelles ainsi que des informations de l'état précédent. Application : Modélisation de séquences, où la connaissance du passé immédiat est cruciale pour prédire l'élément suivant de la séquence. Modélisation du Langage avec les RNN Objectif : Apprendre la probabilité conditionnelle d'observer un mot donné les mots précédents dans une phrase. Utilisation : Prédiction de mots, génération de texte, et autres tâches de traitement du langage naturel (NLP). Rétropropagation dans le Temps (BPTT) Concept : Adaptation de la rétropropagation pour les RNN, permettant d'ajuster les poids en tenant compte des dépendances temporelles. Défi : Peut conduire à des problèmes de disparition ou d'explosion des gradients, limitant la capacité du réseau à apprendre de longues dépendances. Application à la Classification de Texte Exemple : Analyse de sentiments, où le réseau doit comprendre le contexte émotionnel d'une phrase ou d'un document pour classer le sentiment comme positif ou négatif. Application à la Génération de Texte Méthode : Après entraînement sur un corpus de texte, le RNN peut générer du texte lettre par lettre ou mot par mot, imitant le style et la structure du texte d'origine. Autres Architectures de RNN RNN Bidirectionnels : Permettent au réseau d'accéder à des contextes passés et futurs pour une meilleure compréhension du texte. RNN Empilés (Stacked) : Superposition de plusieurs couches de RNN pour augmenter la capacité de modélisation et traiter des informations à différents niveaux d'abstraction. Fiche Langage naturel 10 Traitement du langage naturel 1. Rappel sur les réseaux de neurones feedforward Graphe dirigé acyclique : Le graphe est composé de nœuds V représentant des neurones ou unités neuronales, et d'arêtes E représentant les connexions entre ces neurones. Fonction de poids : La fonction w associe à chaque arête un poids réel, indiquant l'importance de la connexion entre les neurones correspondants. Neurones : Les nœuds V correspondent aux neurones. Chaque neurone peut être considéré comme une fonction différentiable f:X→Y, où X a une dimension n et Y a une dimension 1. Fonction d'un neurone : Un neurone prend en entrée soit des données, soit la sortie d'autres neurones, effectue un calcul sur ces entrées et produit une seule sortie. La fonction f représente cette transformation. Notation de la fonction : La fonction f est souvent écrite comme f:X→Y, indiquant qu'elle prend des entrées de dimension n et produit une sortie de dimension 1, avec sigma la fonction d’activation. f(x) = σ(∑ wi gi (x)) i 2. Théorème d'approximation universelle Le Théorème d'approximation universelle énonce que, sous certaines conditions, un réseau de neurones à une seule couche cachée peut approximer avec précision n'importe quelle fonction continue définie sur un sous-ensemble borné de R^n. La condition essentielle est d'utiliser une fonction d'activation non constante dans la couche cachée. Ce théorème démontre la puissance expressive des réseaux de neurones pour représenter une large gamme de fonctions. 3. Entraînement des réseaux de neurones feedforward Objectif: Estimer les matrices de poids W de chaque couche. Données d'entraînement: Ensemble de vecteurs d'entrée x et de sorties attendues y. Fiche Langage naturel 11 Fonction de perte: Mesure la différence entre les sorties du réseau et les sorties attendues. Descente de gradient stochastique et rétropropagation: Méthodes utilisées pour minimiser la fonction de perte. Fiche Langage naturel 12