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 / 80
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
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
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
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
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