Natural Language Processing (NLP) - Une introduction Georges-André Silber 23 février 2023 - mines.paris
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
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 / 80Sommaire 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
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 / 80Introduction
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 / 80Introduction 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
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 / 80Introduction 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 / 80Introduction 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 / 80Les données du NLP
Code Baudot (ITA2)
Lab
GAS (École des mines de Paris) NLP 23/2/2023 17 / 80Les 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 / 80Les données du NLP
Fortran codé en EBCDIC
Lab
GAS (École des mines de Paris) NLP 23/2/2023 19 / 80Les 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 / 80Les données du NLP
US-ASCII (IANA)
Lab
GAS (École des mines de Paris) NLP 23/2/2023 21 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Langages 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 / 80Langages 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 / 80Langages 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 / 80Langages 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 / 80Langages 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 / 80Langages 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 / 80Langages 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 / 80Langages 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 / 80Langages 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 / 80Langages 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 / 80Langages 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Les 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 / 80Apprentissage 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 / 80Apprentissage 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 / 80Apprentissage 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 / 80Apprentissage 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 / 80Annexes
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 / 80Annexes
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 / 80Annexes
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 / 80Annexes 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 / 80Annexes
ELIZA
Voir labs/eliza. Retour
GAS (École des mines de Paris) NLP 23/2/2023 77 / 80Annexes
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 / 80Annexes
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 / 80Annexes 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