Natural Language Processing (NLP) - Une introduction Georges-André Silber 23 février 2023 - mines.paris

La page est créée Clément Perrot
 
CONTINUER À LIRE
Natural Language Processing (NLP) - Une introduction Georges-André Silber 23 février 2023 - mines.paris
Natural Language Processing (NLP)
                                           Une introduction

                                          Georges-André Silber

                                          École des mines de Paris

                                            23 février 2023

GAS (École des mines de Paris)                      NLP              23/2/2023   1 / 80
Natural Language Processing (NLP) - Une introduction Georges-André Silber 23 février 2023 - mines.paris
Sommaire

1 Introduction                        4 Les techniques du NLP
2 Les données du NLP                  5 Apprentissage automatique
3 Langages formels et NLP             6 Logiciels pour le NLP

   GAS (École des mines de Paris)   NLP                       23/2/2023   2 / 80
Natural Language Processing (NLP) - Une introduction Georges-André Silber 23 février 2023 - mines.paris
Introduction

Théorie et pratique

    The best theory is inspired by practice.
    The best practice is inspired by theory.
                                                                             – Donald Knuth

    En théorie, la théorie et la pratique, c’est pareil. En pratique, c’est pas vrai.
                                                                                 – Yogi Berra

    Il est temps de mettre les points cédilles et les barres obliques.
                                                                              – Jean Perron 1

 1. http://www.increvables.com/perronismes.htm
    GAS (École des mines de Paris)                 NLP                         23/2/2023        3 / 80
Natural Language Processing (NLP) - Une introduction Georges-André Silber 23 février 2023 - mines.paris
Introduction

Science des données (S. Mallat)

    Objectif : méthodes effectives d’extraction de connaissance des données
    Rencontre entre les maths app. et l’informatique
    Mathématiques : statistiques, probabilités, analyse harmonique, géométrie, groupes, ...
    Informatique : IA, langages, bases de données, calcul parallèle, ...
    Données : images, sons, textes, mesures physiques, ...
    3 grands sous domaines : traitement du signal, modélisation (apprentissage non
    supervisé), prédiction (apprentissage supervisé).
    Très grandes dimension pour les deux derniers domaines.
    Importance des informations a priori (données + "modèle").

   GAS (École des mines de Paris)                 NLP                      23/2/2023          4 / 80
Natural Language Processing (NLP) - Une introduction Georges-André Silber 23 février 2023 - mines.paris
Introduction

Natural Language Processing ?

   Création d’automates qui « comprennent » les langues.
   On emploie ici automate au sens informatique du terme : « machine à traiter de
   l’information ».
   En France, distinction artificielle entre traitement automatique des langues (TAL) et
   linguistique informatique, principalement pour des raisons historiques.
   Challenges principaux du NLP : compréhension de texte et génération de texte, à la
   manière d’un humain.

   GAS (École des mines de Paris)               NLP                      23/2/2023        5 / 80
Natural Language Processing (NLP) - Une introduction Georges-André Silber 23 février 2023 - mines.paris
Introduction

Histoire sélective

    1937, machine de Turing
    1950, traduction automatique (contexte de guerre froide)
    1950, Computing Machinery and Intelligence (Turing)
    1954, expérience Georgetown-IBM, traduction de phrases du russe vers l’anglais
    1966, ELIZA (Joseph Weizenbaum)        Lab

    1968, SHRDLU (PhD de Terry Winograd au MIT)         Lab

    1970–2000, « ontologies conceptuelles »
    2018, BERT (Google)
    2020, GPT-3 (OpenAI)
    2023, ChatGPT (OpenAI)

    GAS (École des mines de Paris)               NLP                     23/2/2023   6 / 80
Introduction

Polish Sausage

   GAS (École des mines de Paris)              NLP   23/2/2023   7 / 80
Introduction

Baby’s Zippered Laundry Bag

   GAS (École des mines de Paris)              NLP   23/2/2023   8 / 80
Introduction

Not microwave safe

   GAS (École des mines de Paris)              NLP   23/2/2023   9 / 80
Introduction

Machine Wash Cold

   GAS (École des mines de Paris)              NLP   23/2/2023   10 / 80
Introduction

Mixed Nuts

   GAS (École des mines de Paris)              NLP   23/2/2023   11 / 80
Introduction

Fixer la date

    GAS (École des mines de Paris)              NLP   23/2/2023   12 / 80
Introduction

Insert CD and Run Wizard

   GAS (École des mines de Paris)              NLP   23/2/2023   13 / 80
Introduction

Snow Pusher

   GAS (École des mines de Paris)              NLP   23/2/2023   14 / 80
Les données du NLP

Les données en NLP sont des caractères

   Le NLP manipule des documents formés de caractères.
   Sur un ordinateur, un caractère est un entier positif.
   Cet entier positif représente un caractère dans une table donnée.
   Si on ne connaît pas la table, on ne peut pas connaître le caractère.
   Croyance populaire : 1 caractère = 1 octet (ASCII).
   Réalité : 1 caractère = 1, 2, 3 ou 4 octets (Unicode).
   En NLP, les données manipulées sont des suites d’entiers.

   GAS (École des mines de Paris)                    NLP                   23/2/2023   15 / 80
Les données du NLP

Émile Baudot (1845–1903)

                                                           Code sur 5 bits téléscripteurs (1878)
                                                           Baud (Bd) : unité de modulation
                                                           56 kbit/s (8000 Bd)
                                                           Stateful

   GAS (École des mines de Paris)                    NLP                         23/2/2023         16 / 80
Les données du NLP

Code Baudot (ITA2)

 Lab

       GAS (École des mines de Paris)                    NLP   23/2/2023   17 / 80
Les données du NLP

EBCDIC (1964)

                       Extended Binary Coded Decimal Interchange Code (8 bits)
   GAS (École des mines de Paris)                      NLP                  23/2/2023   18 / 80
Les données du NLP

Fortran codé en EBCDIC

 Lab

       GAS (École des mines de Paris)                    NLP   23/2/2023   19 / 80
Les données du NLP

US ASCII (1963)

                     American Standard Code for Information Interchange (7 bits)

   GAS (École des mines de Paris)                     NLP                    23/2/2023   20 / 80
Les données du NLP

US-ASCII (IANA)

 Lab
       GAS (École des mines de Paris)                    NLP   23/2/2023   21 / 80
Les données du NLP

Caractères pour une autre partie du monde : ISO 8859

       Ajouts aux 96 caractères affichables de l’US-ASCII
       Encodage sur 8 bits
       128 nouveaux caractères (utilisation du bit restant d’un octet)
       16 parties différentes (de 8859-1 à 8859-16)
       Pas utilisable pour certaines langues d’Asie (CJCV)
 Lab

       GAS (École des mines de Paris)                    NLP             23/2/2023   22 / 80
Les données du NLP

Caractères pour le monde entier : Unicode

       Développé depuis 1991 (première version).
       Standard Unicode 13 (mars 2020) : 144 697 caractères.
       Relié à la norme ISO/CEI 10646 (un sous-ensemble du standard Unicode).
       Un caractère ISO/CEI 10646 : couple nom unique / numéro unique (point de code).
       245 000 points de codes assignés dans un espace pouvant contenir 1 114 112 codes
       différents (21 bits).
       17 zones de 65 536 points de code : « plans de code ».
       Chaque plan de code est divisé en 4096 « colonnes de code » de 16 points de code.
       Codes : de 0 à 0x10FFFF (1 114 112 - 1).
       De 0x0 à 0xFF : ISO/CEI 8859-1.
 Lab

       GAS (École des mines de Paris)                    NLP               23/2/2023       23 / 80
Les données du NLP

UTF-8

       Universal Character Set Transformation Format - 8 bits.
       Encodage de ISO/CEI 10646 sur 8 bits, compatible avec l’US-ASCII (0x0 à 0x7F).
       Stockage d’un point de code sur 1 à 4 octets consécutifs.
       Le décodage des strings devient stateful.
       Souvent compatible avec le code existant, insensible à l’endianness.

 Lab

       GAS (École des mines de Paris)                    NLP                  23/2/2023   24 / 80
Les données du NLP

UTF-16 et UTF-32

    UTF-16 : codage sur 2 ou 4 octets (16 ou 32 bits).
    UTF-32 : codage fixe sur 4 octets (32 bits).
    Codages sensibles à l’endianness.
    Utilisation d’un BOM 2 , 0xFFFE (little endian) ou 0xFEFF (big endian).
    Dans certains fichiers UTF-8 (par ex. CSV généré par Excel) utilisation d’un BOM pour
    indiquer que le fichier est UTF-8.
    Il existe également un format UTF-5 3 (unicode sur téléscripteur).

 2. https://fr.wikipedia.org/wiki/Indicateur_d%27ordre_des_octets
 3. https://datatracker.ietf.org/doc/html/draft-jseng-utf5-01
    GAS (École des mines de Paris)                    NLP                23/2/2023     25 / 80
Les données du NLP

Formats de fichier

    Format texte
    Comma-Separated Values (CSV)
    eXtensible Markup Language (XML)
    JavaScript Object Notation (JSON) 4
    YAML Ain’t Markup Language
    Portable Document Format (PDF)

 4. https://fr.wikipedia.org/wiki/JavaScript_Object_Notation
    GAS (École des mines de Paris)                    NLP      23/2/2023   26 / 80
Langages formels et NLP

Informatique et langages

    Informatique = science du traitement automatique des données.
    Données = suite d’informations représentées dans un certain langage.
    Théorie des langages formels : étude des structures internes formelles des langages
    (niveau syntaxique).
    Auparavant, les systèmes d’analyse syntaxique utilisaient principalement des grammaires
    formelles, aidées éventuellement par des statistiques.
    Aujourd’hui, dans ces systèmes, les grammaires formelles sont complétées, voire
    remplacées, par des techniques d’apprentissage automatique.

   GAS (École des mines de Paris)                         NLP              23/2/2023      27 / 80
Langages formels et NLP

Langage formels, Hiérarchie de Chomsky

Hiérarchie des grammaires formelles de N. Chomsky et M. P. Schützenberger :
    les grammaires de type 3 génèrent la famille des langages rationnels ou langages réguliers.
    Ce sont les langages reconnaissables par les automates finis ;
    les grammaires de type 2 génèrent la famille des langages algébriques. Ce sont les
    langages reconnaissables par les automates à pile ;
    les grammaires de type 1 génèrent la famille des langages contextuels. Ce sont
    exactement les langages reconnaissables par les automates linéairement bornés ;
    les grammaires de type 0, dites grammaires générales, génèrent la famille des langages
    récursivement énumérables. Ce sont exactement les langages reconnaissables par une
    machine de Turing.
Chaque famille de grammaire englobe la précédente.

    GAS (École des mines de Paris)                         NLP             23/2/2023         28 / 80
Langages formels et NLP

Langages rationnels

       A : ensemble fini de symboles (alphabet) ;
       A∗ : ensemble des mots que l’on peut former avec A ;
       Partie de A∗ : un langage ;
       Opérations rationnelles, avec X et Y deux parties de A∗ :
              Concaténation : XY
                                              {ab, c}{ba, c} = {abba, abc, cba, cc}
              Union : X ∪ Y
                                                  {ab, c} ∪ {ba, c} = {ab, ba, c}
                                          ∗
              Étoile de Kleene (notée X ) : le plus petit langage contenant ϵ, X et qui est clos pour
              l’opération de concaténation.

                                           {a, ab}∗ = {ϵ, a, aa, ab, aaa, ababaa, ...}

Application pratique : expressions régulières par génération d’un automate fini (Ken
Thompson). lex, analyseur lexical.
 Lab

       GAS (École des mines de Paris)                         NLP                        23/2/2023      29 / 80
Langages formels et NLP

Grammaires algébriques

    Grammaires non-contextuelles / hors-contexte
    Règles de la forme X → α où α est un terminal ou un non terminal
    Un langage est algébrique si il ∃ une grammaire algébrique le décrivant
    La plupart des langages de programmation ont une grammaire algébrique
    Peuvent être décrits sous la forme Backus-Naur (BNF) 5
    Exemples de langages algébriques (et non rationnels) :

                                                            S → aSb | ϵ

                                                          {an b n | n ≥ 0}
                                     S → x | y | z | S + S | S − S | S ∗ S | S/S | (S)
    Outils : YACC (LALR), ANTLR (LL)

 5. https://fr.wikipedia.org/wiki/Forme_de_Backus-Naur
    GAS (École des mines de Paris)                             NLP                       23/2/2023   30 / 80
Langages formels et NLP

Grammaires algébriques (2)

    Panini, un grammairien de l’Inde antique a formalisé une grammaire du Sanskrit (IVe
    siècle avant J.C.), avec près de 4000 dans une notation proche de la BNF.
    Langages de Dyck : ensemble des mots bien parenthésés sur un ensemble fini de
    parenthèses ouvrantes et fermantes.

Définition (Morphisme alphabétique)
h : A∗ → B ∗ avec A et B des monoïdes libres et h un morphisme. h est alphabétique si l’image
d’une lettre de A est une lettre de B ou ϵ.

Théorème (Chomsky–Schützenberger)
Un langage L est algébrique ssi il existe un langage de Dyck D, un langage rationnel K et un
morphisme alphabétique h tels que
                                          L = h (D ∩ K )

    GAS (École des mines de Paris)                         NLP            23/2/2023       31 / 80
Langages formels et NLP

Grammaires algébriques (3)

   Soit la grammaire :
                                                       S → S + S |a|1
   Dérivations de 1 + a + a

                  Dérivation gauche                                     Dérivation droite

                                    S                                               S
                               S +S                                            S +S
                               1+S                                             S +a
                        1+S +S                                             S +S +a
                         1+a+S                                             S +a+a
                         1+a+a                                              1+a+a

   GAS (École des mines de Paris)                             NLP                   23/2/2023   32 / 80
Langages formels et NLP

Langages contextuels

⇔ Machine de Turing non déterministe linéairement bornée (avec n la taille de l’entrée, ruban
de taille kn où k est une constante indépendante de n).

                                             L = {an b n c n | n ≥ 1}

    GAS (École des mines de Paris)                         NLP            23/2/2023       33 / 80
Langages formels et NLP

La machine de Turing

Objet mathématique abstrait composé :
    d’une bande infinie découpé en cases pouvant contenir un symbole ;
    d’une tête de lecture pouvant à chaque étape lire un symbole, écrire un symbole, puis se
    déplacer sur la bande d’une case à gauche ou à droite ;
    un registre fini d’états dans lesquels peut se trouver la machine ;
    une table d’action indiquant pour un état et un symbole l’action à effectuer.

    GAS (École des mines de Paris)                         NLP            23/2/2023       34 / 80
Langages formels et NLP

La machine de Turing

Une machine de Turing déterministe est un septuplet M = ⟨Q, Γ, b, Σ, δ, q0 , F ⟩ où :
     Q est l’ensemble fini non vide des états ;
     Γ est l’ensemble fini non vide des symboles de la bande ;
     b ∈ Γ est le symbole blanc ;
     Σ ⊆ Γ \ {b} est l’ensemble des symboles d’entrée, les seuls symboles autorisés
     initialement sur la bande ;
     δ : (Q \ F ) × Γ ̸→ Q × Γ × {←, →} est la fonction partielle de transition. Si δ n’est pas
     définie sur l’état courant et le symbole courant, la machine s’arrête ;
     q0 ∈ Q est l’état initial ;
     F ⊆ Q est l’ensemble des états acceptants : le contenu initial de la bande est accepté par
     M si elle s’arrête dans un état de F .
Exemple de partie de δ : δ(q1 , x ) = (q2 , y , ←) indique que dans l’état q1 quand x est lu sur la
bande, on passe en état q2 , on écrit y et on se déplace à ←.

    GAS (École des mines de Paris)                         NLP                 23/2/2023        35 / 80
Langages formels et NLP

La machine de Turing non déterministe

Une machine de Turing non déterministe est un septuplet M = ⟨Q, Γ, b, Σ, δ, q0 , F ⟩ où :
    Q est l’ensemble fini non vide des états ;
    Γ est l’ensemble fini non vide des symboles de la bande ;
    b ∈ Γ est le symbole blanc ;
    Σ ⊆ Γ \ {b} est l’ensemble des symboles d’entrée, les seuls symboles autorisés
    initialement sur la bande ;
    δ ⊆ (Q \ F × Γ) × (Q × Γ × {←, →}) est la relation de transition ;
    q0 ∈ Q est l’état initial ;
    F ⊆ Q est l’ensemble des états acceptants : le contenu initial de la bande est accepté par
    M si une branche s’arrête dans un état de F .

    GAS (École des mines de Paris)                         NLP              23/2/2023       36 / 80
Langages formels et NLP

Machine de Turing déterministe vs non-déterministe

   GAS (École des mines de Paris)                         NLP   23/2/2023   37 / 80
Les techniques du NLP

Tokens

   Byte pair encoding
   https://github.com/google/sentencepiece
   https://github.com/openai/tiktoken

   GAS (École des mines de Paris)                       NLP   23/2/2023   38 / 80
Les techniques du NLP

Racinisation (stemming)

Regroupement des mots ayant une racine commune et appartenant au même champ lexical.
Par exemple, pêche, pêcher, pêcheur ont la même racine, mais ni la pêche (le fruit), ni le
péché, ne font partie du même champ lexical.

                                         continu               continu
                                         continua              continu
                                         continuait            continu
                                         continuant            continu
                                         continuation          continu
                                         continuations         continu
                                         continue              continu

    GAS (École des mines de Paris)                       NLP             23/2/2023       39 / 80
Les techniques du NLP

Lemmatisation (lemmatization)

Regroupement des mots d’une même famille dans un texte, afin de réduire ces mots à leur
forme canonique (le lemme), comme petit, petite, petits, et petites. Certaines conjugaisons
peuvent rendre cette tâche complexe pour des ordinateurs, comme retrouver la forme
canonique « avoir » depuis « eussions eu ». En revanche, « des avions » et « nous avions »
n’ont pas le même lemme.
                                     continu               continu
                                     continua              continuer
                                     continuait            continuer
                                     continuant            continuer
                                     continuation          continuation
                                     continuations         continuation
                                     continue              continu | continuer

    GAS (École des mines de Paris)                         NLP                   23/2/2023    40 / 80
Les techniques du NLP

Analyse morpho-syntaxique (POS)

Étiquetage morpho-syntaxique de chacun des mots d’un texte (POS), comme dans un arbre
syntaxique. Certaines phrases ambiguës peuvent être interprétées de plusieurs manières
différentes, comme « je regarde l’homme avec les jumelles », qui peut signifier « je regarde
l’homme en utilisant des jumelles », ou « je regarde l’homme qui a des jumelles », ou « je
regarde l’homme qui est accompagné de sœurs jumelles ».

    GAS (École des mines de Paris)                       NLP             23/2/2023       41 / 80
Les techniques du NLP

Délimitation d’une phrase

Séparation des phrases d’un texte. À l’écrit, la ponctuation ou la casse permet en général de
séparer les phrases, mais des complications peuvent être causées par les abréviations utilisant
un point, ou les citations comportant des ponctuations à l’intérieur d’une phrase, etc.

    GAS (École des mines de Paris)                       NLP                 23/2/2023       42 / 80
Les techniques du NLP

Séparation des mots

Dans la langue parlée, les phrases ne sont qu’une chaîne de phonèmes, où l’espace
typographique n’est pas prononcé. Par exemple, « un bon appartement chaud » et « un
Bonaparte manchot » sont identiques d’un point de vue phonétique.

    GAS (École des mines de Paris)                       NLP           23/2/2023      43 / 80
Les techniques du NLP

Traduction automatique

Il s’agit de l’un des problèmes les plus complexes, dit IA-complet, qui nécessite de nombreuses
connaissances, non seulement linguistiques, mais aussi concernant le monde. Il s’agit de la
première application de recherche, active dès les années 1950.

    GAS (École des mines de Paris)                       NLP                23/2/2023       44 / 80
Les techniques du NLP

Génération automatique de textes

Écriture de textes syntaxiquement et sémantiquement corrects, pour produire par exemple des
bulletins météo ou des rapports automatisés.

    GAS (École des mines de Paris)                       NLP            23/2/2023       45 / 80
Les techniques du NLP

Résumé automatique de texte

Reformulation et paraphrasage : Extraction du contenu pertinent d’un texte, détection des
informations les plus importantes, des redondances, afin de générer un texte cohérent
humainement crédible.

    GAS (École des mines de Paris)                       NLP              23/2/2023         46 / 80
Les techniques du NLP

Désambiguïsation lexicale

Problème encore non résolu, consistant à déterminer le sens d’un mot dans une phrase,
lorsqu’il peut avoir plusieurs sens possibles, selon le contexte général.

    GAS (École des mines de Paris)                       NLP             23/2/2023      47 / 80
Les techniques du NLP

Correction orthographique

Outre une comparaison aux mots du dictionnaire et une recherche approximative afin de
proposer des corrections, il existe les correcteurs grammaticaux qui utilisent la sémantique et le
contexte afin de corriger les homophonies.

    GAS (École des mines de Paris)                       NLP                  23/2/2023        48 / 80
Les techniques du NLP

Agents conversationnels

Systèmes de questions-réponses : Combinaison d’une étape de compréhension du langage puis
une étape de génération de texte.

    GAS (École des mines de Paris)                       NLP           23/2/2023       49 / 80
Les techniques du NLP

Détection de coréférences et résolution d’anaphore

Détection de la liaison entre plusieurs mots d’une phrase faisant référence à un même sujet.

    GAS (École des mines de Paris)                       NLP               23/2/2023           50 / 80
Les techniques du NLP

Bobby Lapointe

   Mon père est marinier dans cette péniche
   Ma mère dit : « la paix niche dans ce mari niais ».
   Mon père est habile mais l’habile est ta mère,
   Mon père et ses verres, ont les pieds fragiles.

   GAS (École des mines de Paris)                       NLP   23/2/2023   51 / 80
Les techniques du NLP

OCR

Reconnaissance de l’écriture manuscrite, reconnaissance optique de caractères et lecture
automatique de document : système d’analyse et de traitement des images, couplés à des
règles linguistiques permettant d’évaluer la probabilité d’apparition des lettres et mots décodés.

    GAS (École des mines de Paris)                       NLP                  23/2/2023        52 / 80
Les techniques du NLP

Reconnaissance automatique de la parole

Analyse acoustique, association entre segments élémentaires sonore et des éléments lexicaux,
puis correspondance des motifs obtenus avec des mots courant, ou des suites de mots
apparaissant fréquemment.

    GAS (École des mines de Paris)                       NLP              23/2/2023        53 / 80
Les techniques du NLP

Synthèse vocale

Une translation vers l’alphabet phonétique est la plus souvent utilisée, mais la catégorie
grammaticale est aussi à prendre en compte ; par exemple, il faut reconnaître le second
« -ent » comme muet dans l’exemple « Les présidents président ». Les mots dont la
prononciation est irrégulière doivent être stockés. De plus, l’intonation et la prosodie sont
également à prendre en compte afin d’obtenir un effet naturel.

    GAS (École des mines de Paris)                       NLP                  23/2/2023         54 / 80
Les techniques du NLP

Détection des langues et dialectes

Détection des langues et des dialectes : tant à partir de textes qu’à partir d’énoncés parlés.

    GAS (École des mines de Paris)                       NLP                 23/2/2023           55 / 80
Les techniques du NLP

Fouille de textes

Recherche d’informations spécifiques dans un corpus de documents donnés, qui utilise
l’indexation de contenu.

    GAS (École des mines de Paris)                       NLP            23/2/2023     56 / 80
Les techniques du NLP

Recherche d’information

Sous-domaine de la fouille de texte. L’application la plus connue concerne les moteurs de
recherche, qui passent également par l’analyse des méta-données et des liens entre les pages
elles-mêmes.

    GAS (École des mines de Paris)                       NLP               23/2/2023       57 / 80
Les techniques du NLP

Reconnaissance d’entités nommées

Détermination dans un texte des noms propres, tels que des personnes ou des endroits, ainsi
que les quantités, valeurs, ou dates.

    GAS (École des mines de Paris)                       NLP              23/2/2023       58 / 80
Les techniques du NLP

Classification de documents

Activité qui consiste à classer de façon automatique des ressources documentaires,
généralement en provenance d’un corpus.

    GAS (École des mines de Paris)                       NLP              23/2/2023   59 / 80
Les techniques du NLP

Analyse de sentiments

Vise à extraire le ressenti d’un texte (généralement positif ou négatif) en fonction des mots et
du type de langage utilisé, d’indices typographiques ou de la personne qui l’a écrit.

    GAS (École des mines de Paris)                       NLP                23/2/2023        60 / 80
Les techniques du NLP

Recommandation automatique de documents

Consiste à extraire l’information importante d’une base de documents afin de les relier en
« séries », afin de proposer ses éléments aux personnes intéressées par d’autres éléments de
cette série.

    GAS (École des mines de Paris)                       NLP               23/2/2023          61 / 80
Apprentissage automatique

WordNet

WordNet est une base de données lexicale développée par des linguistes du laboratoire des
sciences cognitives de l’université de Princeton depuis une vingtaine d’années. Son but est de
répertorier, classifier et mettre en relation de diverses manières le contenu sémantique et
lexical de la langue anglaise. Des versions de WordNet pour d’autres langues existent, mais la
version anglaise est cependant la plus complète à ce jour.
https://fr.wikipedia.org/wiki/WordNet

    GAS (École des mines de Paris)                           NLP           23/2/2023        62 / 80
Apprentissage automatique

Stanford Question Answering Dataset (SQuAD)

Stanford Question Answering Dataset (SQuAD) is a reading comprehension dataset, consisting
of questions posed by crowdworkers on a set of Wikipedia articles, where the answer to every
question is a segment of text, or span, from the corresponding reading passage, or the
question might be unanswerable.
https://rajpurkar.github.io/SQuAD-explorer/

    GAS (École des mines de Paris)                           NLP         23/2/2023       63 / 80
Apprentissage automatique

Représentations des mots

   Fréquence des termes (Bag-of-Words)
   TF-IDF
                                                                                      N
                                    tfidf(t, d, D) = tf(t, d) · log
                                                                             1 − |{d ∈ D : t ∈ d}|
   Okapi BM25

                                              ∑
                                              n
                                                                                f (qi , D) · (k1 + 1)
                        score(D, Q) =                IDF(qi ) ·                          (                      )
                                                                                                         |D|
                                               i=1                    f (qi , D) + k1 · 1 − b + b ·     avgdl
                                                               (                         )
                                                                      N − n(qi ) + 0.5
                                           IDF(qi ) = ln                               +1
                                                                        n(qi ) + 0.5
   Plongement de mots (word embeddings) : word2vec

   GAS (École des mines de Paris)                                  NLP                                  23/2/2023   64 / 80
Apprentissage automatique

BERT

   Bidirectional Encoder Representations from Transformers (BERT).
   Modèle de langage, Google en 2018 (Devlin, 2018). Version française CamemBERT 6 ,
   développée en 2020 (Martin, 2020).

6. https://camembert-model.fr
   GAS (École des mines de Paris)                           NLP      23/2/2023         65 / 80
Apprentissage automatique

GPT-3 I

   Generative Pre-trained Transformer 3
   Modèle de langage pour notamment générer du texte réaliste en anglais. Mai 2020.
   Papier NeurIPS (Brown, 2020).
   Utilise la notion de Transformer (Vaswani, 2017), cas particulier d’un modèle
   auto-régressif (Graves, 2013).
   À l’instar d’autres modèles concurrents : BERT de Google, ou XLM-R de Facebook,
   GPT-3 n’est pas capable de raisonnement, par exemple de raisonnement par analogie ; en
   effet, il n’a pas de représentation du monde.
   Noam Chomsky : « It’s not a language model. It works just as well for impossible
   languages as for actual languages. It is therefore refuted, if intended as a language model,
   by normal scientific criteria. [...] Perhaps it’s useful for some purpose, but it seems to tell
   us nothing about language or cognition »s

   GAS (École des mines de Paris)                           NLP             23/2/2023         66 / 80
Logiciels pour le NLP

SciKit Learn

https://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_
data.html

   GAS (École des mines de Paris)                       NLP   23/2/2023   67 / 80
Logiciels pour le NLP

PyTorch

https://pytorch.org/tutorials/beginner/deep_learning_nlp_tutorial.html

   GAS (École des mines de Paris)                       NLP   23/2/2023   68 / 80
Logiciels pour le NLP

TensorFlow

https://www.tensorflow.org/hub/tutorials/tf2_text_classification?hl=en

   GAS (École des mines de Paris)                       NLP   23/2/2023   69 / 80
Logiciels pour le NLP

spaCy

https://spacy.io

   GAS (École des mines de Paris)                       NLP   23/2/2023   70 / 80
Annexes

Code Baudot

$ python encode_hello.py
***.**
* *.
   . *
* .*
* .*
** .
  *.
* .**
** .
 * .*
* .*
 * . *
** .**
 **. *
Voir labs/baudot              Retour

    GAS (École des mines de Paris)           NLP   23/2/2023   71 / 80
Annexes

Code EBCDIC

$ python fortran.py
I -> 0xc9
F -> 0xc6
  -> 0x40
C -> 0xc3
A -> 0xc1
R -> 0xd9
T -> 0xe3
A -> 0xc1
( -> 0x4d
X -> 0xe7
) -> 0x5d
...

Voir labs/ebcdic              Retour

    GAS (École des mines de Paris)           NLP   23/2/2023   72 / 80
Annexes

Code ASCII

#include 
int main(int ac, char *av[])
{
        printf("hell\x08o\n");
}

Voir labs/ascii             Retour

    GAS (École des mines de Paris)         NLP   23/2/2023   73 / 80
Annexes

Code ISO-8859-1

(nlp) cervinia:latin1 gasilber$ cat latin1.py
s="Hé ôh"
with open("doc.txt", "w", encoding="iso-8859-1") as f:
    f.write(s)
(nlp) cervinia:latin1 gasilber$ python latin1.py
(nlp) cervinia:latin1 gasilber$ hexdump -C doc.txt
00000000 48 e9 20 f4 68                                  |H. .h|
00000005
(nlp) cervinia:latin1 gasilber$ cat doc.txt
H? ?h

Voir labs/latin1              Retour

    GAS (École des mines de Paris)           NLP         23/2/2023   74 / 80
Annexes

Unicode

(nlp) cervinia:unicode gasilber$ python wat.py
ê == ê -> False
(nlp) cervinia:unicode gasilber$ python unicode.py
--> Aéêê 5
0 0041 Lu LATIN CAPITAL LETTER A
1 00e9 Ll LATIN SMALL LETTER E WITH ACUTE
2 00ea Ll LATIN SMALL LETTER E WITH CIRCUMFLEX
3 0065 Ll LATIN SMALL LETTER E
4 0302 Mn COMBINING CIRCUMFLEX ACCENT
(nlp) cervinia:unicode gasilber$ python spaces.py
0x2000 ’\u2000’ EN QUAD Zs ’ ’
0x2001 ’\u2001’ EM QUAD Zs ’ ’
0x2002 ’\u2002’ EN SPACE Zs ’ ’
0x2003 ’\u2003’ EM SPACE Zs ’ ’
https://docs.python.org/fr/3/howto/unicode.html
Voir labs/unicode Retour
   GAS (École des mines de Paris)         NLP        23/2/2023   75 / 80
Annexes

UTF-8

(nlp) cervinia:utf8 gasilber$ python count.py
...
0 feff Cf ZERO WIDTH NO-BREAK SPACE
1 0048 Lu LATIN CAPITAL LETTER H
2 00e9 Ll LATIN SMALL LETTER E WITH ACUTE
(nlp) cervinia:utf8 gasilber$ wc -c Classeur1.csv
      XX Classeur1.csv

Q : quelle est la taille en octets de Classeur1.csv ?
Voir labs/utf8 Retour

    GAS (École des mines de Paris)             NLP      23/2/2023   76 / 80
Annexes

ELIZA

Voir labs/eliza.             Retour

    GAS (École des mines de Paris)          NLP   23/2/2023   77 / 80
Annexes

SHRDLU / Adventure

                                                ETAOIN SHRDLU (fréquences
                                                décroissantes)
                                                Un des premiers programmes de
                                                compréhension du langage
                                                Écrit en LISP (λ-calcul, Church 1932)
                                                Manipulation de cubes
                                                Père spirituel de nombreux jeux
                                                Voir labs/adventure
                                                 Retour

   GAS (École des mines de Paris)         NLP                       23/2/2023       78 / 80
Annexes

Expressions régulières

#define      MAX_URI_COUNTRY 3
#define      MAX_URI_CORPUS 5
#define      MAX_URI_NATURE 70
#define      MAX_URI_YEAR 5
#define      MAX_URI_MONTH 3
#define      MAX_URI_DAY 3
#define      MAX_URI_NUMBER 30
#define      MAX_URI_VERSION 9
#define      MAX_URI 256

MAX_(\w+)
$1_MAX

https://regexcrossword.com
 Retour

     GAS (École des mines de Paris)         NLP   23/2/2023   79 / 80
Annexes

Origines des documents I

   Emile_Baudot.jpg Par Engraving by A. Delzers (1873-1943) - Published by the
   International Telecommunication Union, Domaine public,
   https://commons.wikimedia.org/w/index.php?curid=1359614
   ita2.png CC BY-SA 3.0,
   https://commons.wikimedia.org/w/index.php?curid=179771
   traduct*.jpg http://www.increvables.com/perronismes.htm
   Blue-punch-card-front-horiz.png Par Blue-punch-card-front.png : Gwernderivative
   work : agr (talk), Domaine public,
   https://commons.wikimedia.org/w/index.php?curid=8511203
   punchcard_minesparis.png Collection personnelle de l’auteur.
   USASCII_code_chart.png By an unknown officer or employee of the United States
   Government - http://archive.computerhistory.org/resources/text/GE/GE.
   TermiNet300.1971.102646207.pdf (document not in link given), Public Domain,
   https://commons.wikimedia.org/w/index.php?curid=63485656

   GAS (École des mines de Paris)         NLP                       23/2/2023    80 / 80
Vous pouvez aussi lire