LOGIQUE ET LANGAGE NATUREL des anciennes connexions aux applications récentes Christian Retoré Équipe Texte, LIRMM, Université de Montpellier Visite ÉNS Lyon 20-21 novembre 2014 A Traitement automatique des langues A.1. Famille de problèmes à traiter Deux tâches classiques (traduction= A puis B) A analyse automatique (de texte, de parole, annoté ou non) résultat ? B génération automatique (de texte, de parole) à partir de quoi ? Domaine propre (recherche d’information) mais aussi utile pour A et B ci-dessus — fouille, acquisition (des données pour les autre tâches ou RI) A.2. Applications Traduction automatique, aide à la traduction The flesh is weak but the spirit is willing. (russian) The meat is rotten but the vodka is strong. Aide à la traduction : domaine spécifique, bonne représentation des connaissances, reformation, interaction avec l’utilisateur. Correcteurs orthographiques (Word(Synapse) : vert : grammaires rouge : lexique) (1) QuelS livreS crois-tu qu’il sait que je pense que tu as luS ? Dialogue homme machine (2) Quels sont les films des années cinquante qui passent actuellement à Bordeaux ? (3) Les enfants prendront une pizza. Résumé automatique Réponse à des questions (question answering cf. text entailment) Geach était il l’élève de Wittgenstein ? Domaine relié : recherche d’information différence : Big Data, beaucoup de données, analyse superficielle, méthodes statistiques, machine learning "ici, on ne vend pas de CD seulement des vinyles" "production laitière / production de lait" mais "production minière / production de mine(s)" B Les niveaux d’analyse de la langue & leurs méthodes B.1. B.1.a Les sons : phonétique/phonologie Phonétique Acoustique / système phonatoire/auditif Traitement du signal / médecine B.1.b Phonologie Les sons abstraits : systéme discret (dans un continu) (4) Bali / Paris indistincts pour un japonais Automates et transducteurs B.2. B.2.a Les mots : morphologie Morphologie dérivationnelle changement de catégorie possible allumer/allumage témoigner/témoignage maquiller/maquillage garer/garage égarer/égarement aménager/aménagement maison /maisonnette camion /camionnette carpe/carpette B.2.b Morphologie flexionnelle pas de changement de catégorie (automates et transducteurs) cheval → chevaux aller → allons aller → va aller → irons B.2.c Étiquetage grammatical nom, verbe, déterminant etc. Automates ou probas (modèles de Markov cachés) B.3. Analyse de la phrase (arbre) : syntaxe (5) Réparer fais les la le. (6) *Je fais la réparer (7) (8) Je la fais réparer * [[Pierre [mange une]] pomme] (9) Pierre [mange [une pomme]] Grammaires formelles (CFG, TAG etc) Déduction formelle (cf. ci-après) Arbres satisfaisant des contraintes (par ex. "le sujet précède le verbe") B.4. B.4.a Le sens : sémantique Le sens d’un mot : sémantique lexicale Sens, restrictions de sélection, mots associés (logique, probabilités, graphes (petit monde), jeux) Rôle télique : être lu, informer, cultiver, Rôle constitutif : pages, couvertures Rôle agentif : imprimeur, auteur, B.4.b Le sens d’une phrase : semantique compositionnelle, formelle Phrase -> formule logique Sens : ensemble des mondes possible dans lequel la phrase est vraie (ces 2 approches sont compatibles mais ne coïncident pas forcément) B.5. L’interprétation en en contexte (discours, dialogue) : pragmatique Prise en compte du contexte linguistique et extra linguistique (10) (11) a. b. a. b. Il est tombé. Quelqu’un l’a poussé. "l"="il" + causalité Allons plutôt dans ce restaurant. "nous" ? "ce" ? B.6. Deux notions de sémantique De quoi ça parle (analyse de texte, par des méthodes statistiques). Qui fait quoi, ce qui est affirmé et réfuté (analyse de quelques phrases par des méthodes logiques). Geach était il l’élève de Wittgenstein ? Wikipédia : En 1941, IL épousa la philosophe Elizabeth Anscombe, grâce à LAQUELLE IL entra en contact avec Ludwig Wittgenstein. Bien qu’IL N’ait JAMAIS suivi l’enseignement académique de CE DERNIER, cependant IL EN éprouva fortement l’influence. Dans cet exposé : syntaxe (déductive) et sémantique (logique) de la phrase et des mots. C Logique et langage : historique C.1. Syntaxe/grammaire et sémantique/logique phrase = proposition qui peut être vrai ou fausse les propositions des syllogismes sont formulées en langage naturel. Baroco tout conducteur montpelliérain est pressé (A) certains conducteurs ne sont pas pressés (O) donc certains conducteurs ne sont pas des conducteurs montpelliérains (O) verbe intransitif = prédicat à un argument (=sujet) verbe transitif = prédicat à deux arguments nom commun = prédicat adjectif = propriété ou propriété de propriété ? ? Les étudiants sont des musiciens. Les étudiants lyonnais sont de(s) musiciens lyonnais. Les bons étudiants sont des bons musiciens. C.2. Quelques questions issues de la scolastique Lecture de re et de dicto (Thomas d’Aquin, Ockham) (12) a. James Bond croit qu’un chercheur du LIRMM est un espion. b. Il a vu Laurent refermer son tiroir. (de re) c. Il a trouvé un code sur un papier qui traînait. (de dicto) Sens/dénotation (Abélard,Frege) (13) a. L’étoile du matin (Vénus). b. L’étoile du berger. (Vénus) D Analyse logique du sens d’une phrase D.1. Syntaxe catégorielle : principe catégories S : phrase, np : noun phrase (groupe nominal), n : nom commun si w : B/A alors w suivi de u : A donne wu : B réciproquement, si w suivi de n’importe quoi (une variable) de type A est de type B alors w est de type B/A au moins deux hypothèses A hypothèse la plus à gauche ... [A] ... ... ·· · B \i — l’hyp. A est annulée A\B Γ ∆ ·· ·· · · A A\B \e B D.2. A\B même chose, mais A est à gauche au moins deux hyp. libres A hyp. libre la plus à droite ... ... [A] ... ·· · B /i — l’hyp. A est annulée B/A Γ ∆ ·· ·· · · B/A A /e B D.3. Analyse syntaxique = déduction (parsing as deduction) Une phrase est correcte si on peut assigner à chaque mot une catégorie de sorte que la suite des catégories dérive S. m1 ... mn est une phrase ssi : ∀i∃ci ∈ Lex(mi ) c1 ... cn ` S D.4. Sémantique compositionnelle : principes Le sens d’une expression composée est fonction du sens de ses parties (Frege) et de leur assemblage syntaxique (Montague) (Catégorie syntaxique)∗ = Type sémantique S∗ = t une phrase est une proposition np ∗ = e un groupe nominal est une entité/individu n∗ = e → t un nom commun est une propriété des entités (A\B)∗ = (B/A)∗ = A → B propage la traduction D.5. Des constantes pour les opérations logiques Constant ∃ ∀ ∧ ∨ ⊃ Type (e → t) → t (e → t) → t t → (t → t) t → (t → t) t → (t → t) D.6. Des constantes pour les prédicats du langage La dénotation des mots requiert des prédicats : aime λ xλ y (aime y ) x x : e, y : e, aime : e → (e → t) « aime » est un prédicat binaire Garance λ P (P Garance) P : e → t, Garance : e « Garance » est décrite comme les propriétés de « Garance » D.7. Sémantique à la Montague : algorithme 1. analyse syntaxique preuve de S 2. conversion en lambda terme de type t sur e et t 3. insertion des lambda terme lexicaux (même type) 4. réduction → terme de type t = formule logique = sens de la phrase analysée D.8. Exemple de calcul sémantique : les enfants prendront une pizza mot les une enfant(s) pizza prendront catégorie syntaxiqueu type sémantique u ∗ sémantique : λ -term of type u ∗ x v signifie x (variable, constante) de type v (S/(np\S))/n (subject) ((S/np)\S)/n (object) (e → t) → ((e → t) → t) λ P e→t λ Q e→t (∀(e→t)→t (λ x e (⇒t→(t→t) (P x)(Q x)))) ((S/np)\S)/n (object) (S/(np\S))/n (subject) (e → t) → ((e → t) → t) λ P e→t λ Q e→t (∃(e→t)→t (λ x e (∧t→(t→t) (P x)(Q x)))) n e →t λ x e (enfante→t x) n e →t λ x e (pizzae→t x) (np\S)/np e → (e → t) λ y e λ x e ((prendronte→(e→t) x)y ) D.9. Analyse syntaxique ∃∀ Il y a deux analyse syntaxique possibles. Une : ∃∀ (S/(np\S))/n (S/(np\S)) n /e S S/np (np\S)/np (np\S) [np]1 /e /i (1) /e ((S/np)\S)/n (S/np)\S S n \e \e D.10. Syntaxe → λ -terme sémantique de la phrase ∃∀ les (e→t)→(e→t)→t enfants (e→t) →e (e→t)→t t e→t o [e]1 prendront e→e→t e→t →e →e →i (1) (e→t)→t t Le λ -terme correspondant est : ∃∀ = (une pizza)(λ o e (les enfants)(prendront o)) Il faut encore : 1. insérer les lambda terme lexicaux et 2. réduire/calculer une (e→t)→(e→t)→t pizza (e→t) →e →e D.11. Calculs, par étapes 1/2 (une pizza) = (λ P e →t λ Q e →t (∃(e →t )→t (λ x e (∧t →(t →t ) (P x)(Q x)))))(λ z e (pizzae →t z)) = (λ Q e →t (∃(e →t )→t (λ x e (∧t →(t →t ) ((λ z e (pizzae →t z)) x)(Q x))))) = (λ Q e →t (∃(e →t )→t (λ x e (∧t →(t →t ) ((pizzae →t x)))(Q x)))) (les enfants) = (λ P e →t λ Q e →t (∀(e →t )→t (λ x e (⇒t →(t →t ) (P x)(Q x)))))(λ u e (enfante →t u)) = (λ Q e →t (∀(e →t )→t (λ x e (⇒t →(t →t ) ((λ u e (enfante →t u)) x)(Q x))))) = (λ Q e →t (∀(e →t )→t (λ x e (⇒t →(t →t ) (enfante →t x)(Q x))))) (les enfants)(prendront o) = (λ Q e →t (∀(e →t )→t (λ w e (⇒t →(t →t ) (enfante →t w )(Q w )))))((λ y e λ x e ((prendronte →(e →t ) x) = (λ Q e →t (∀(e →t )→t (λ w e (⇒t →(t →t ) (enfante →t w )(Q w )))))(λ x e ((prendronte →(e →t ) x) o)) = ∀(e →t )→t (λ w e (⇒t →(t →t ) (enfante →t w )((λ x e ((prendronte →(e →t ) x) o)) w ))) = ∀(e →t )→t (λ w e (⇒t →(t →t ) (enfante →t w )(((prendronte →(e →t ) w ) o)))) D.12. Calculs, par étapes 2/2 (une pizza)(λ o (les enfants)(prendront o)) = (λ Q e →t (∃(e →t )→t (λ x e (∧t →(t →t ) ((pizzae →t x)))(Q x)))) (λ o∀(e →t )→t (λ w e (⇒t →(t →t ) (enfante →t w )(((prendronte →(e →t ) w ) o))))) = (∃(e →t )→t (λ x e (∧t →(t →t ) ((pizzae →t x))) ((λ o∀(e →t )→t (λ w e (⇒t →(t →t ) (enfante →t w )(((prendronte →(e →t ) w ) o))))) x))) = (∃(e →t )→t (λ x e (∧t →(t →t ) ((pizzae →t x))) (∀(e →t )→t (λ w e (⇒t →(t →t ) (enfante →t w )((prendronte →(e →t ) w ) x)))))) ce qui s’écrit communément : ∃x. pizza(x) ∧ ∀w . (enfant(w ) ⇒ prendront(w , x)) D.13. Avec l’autre analyse syntaxique... ∀∃ (np\S)/np [np]1 S/np (S/(np\S)) \e ((S/np)\S)/n /i (2) /e np\S Qui correspond à l’analyse : n \e (S/np)\S \e S n S ∀∃ /e (np\S) S (S/(np\S))/n [np]2 \i (1) /e s [ e]1 prendront e→e→t e→t t les (e→t)→(e→t)→t enfants (e→t) (e→t)→t e→t o [e]2 →e une (e→t)→(e→t)→t →e →i (2) →e t t e→t →e →i (1) →e ∀∃ = (les enfants)(λ s. (une pizza)(λ o ((prendront o) s))) ((une pizza) et (les enfants) déjà faits) →e (e→t)→t λ -terme de la phrase : on insère les λ -termes lexicaux et on calcule pizza (e→t) D.14. Calculs (bis repetita placent) (une pizza)(λ o ((prendront o) s)) = (λ Q e→t (∃(e→t)→t (λ x e (∧t→(t→t) ((pizzae→t x)))(Q x)))) (λ o (((λ y e λ x e ((prendronte→(e→t) x) y )) o) s))) = (λ Q e→t (∃(e→t)→t (λ x e (∧t→(t→t) ((pizzae→t x)))(Q x)))) (λ o ((prendronte→(e→t) s) o)) = (∃(e→t)→t (λ x e (∧t→(t→t) ((pizzae→t x)))((λ o ((prendronte→(e→t) s) o)) x))) = (∃(e→t)→t (λ x e (∧t→(t→t) ((pizzae→t x)))((prendronte→(e→t) s) x))) ∀∃ = (les enfants)(λ s. (une pizza)(λ o ((prendront o) s))) = (λ Q e→t (∀(e→t)→t (λ u e (⇒t→(t→t) (enfantse→t u)(Q u))))) (λ s. (∃(e→t)→t (λ x e (∧t→(t→t) ((pizzae→t x)))((prendronte→(e→t) s) x)))) = (∀(e→t)→t (λ u e (⇒t→(t→t) (enfantse→t u) ((λ s. (∃(e→t)→t (λ x e (∧t→(t→t) ((pizzae→t x)))((prendronte→(e→t) s) x)))) u))))) = (∀(e→t)→t (λ u e (⇒t→(t→t) (enfantse→t u) (∃(e→t)→t (λ x e . (∧t→(t→t) ((pizzae→t x)))((prendronte→(e→t) u) x)))))) ce qui s’écrit communément : ∀u. enfants(u) ⇒ ∃.x pizza(x) ∧ prendront(u, x) D.15. Comment construire un lexique sémantique ? Acquisition des λ -termes lexicaux : pas facile... même avec de bonne annotations. Mots grammaticaux (prépositions, conjonctions, pronoms, etc.) à la main. Noms communs "cha" -> λ x e .chat(x) E Le sens des mots en contexte E.1. Le problème On veut bloquer l’interprétation de certaines phrases : (14) ? ? ? La chaise a gagné. Seul un ou des êtres humains "gagne" ! Alors il faut déclencher des lectures particulières : (15) Liverpool a gagné ce weekend. (16) ? ? ? Liverpool, qui est un grand port, a gagné ce weekend. E.2. Coercions issues des types et/ou des termes (λ x T .f [x])(u V ) V 6= T coercionV →T (17) livre et apparentés : objet matériel + contenu informationnel (18) a. "classe" "promotion" ensembles d’élèves b. "classe" → "salle de classe" c. "promotion" → 6 "salle de (la) promotion" E.3. Calculabilité / finitude second ordre Beaucoup de type de base (sortes d’une logique multisorte) pour exprimer les restrictions de sélection. Donc on quantifie sur les types (comme en CaML, Haskell, Scala,...) E.4. Comment construire un lexique sémantique, pour la sémantique compositionnelle lexicale bis Les informations existent cf réseau lexical JeuxDeMots construit par les Internautes qui y jouent. Comment en extraire les lambda termes et les formules F Autre application : cognition F.1. Analyse, modélisation, simulation de la faculté de langage de l’être humain Modéliser la compréhension humaine. complexité préférences (19) ? ? ? Les bateaux que le passeur auquel le chou que la chèvre que le loup a dévoré avait mangé appartenait possède sont des barges. (20) a. un numéro est attribué aux étudiants b. catégories socio-professionnelles c. numéros de place d’examen Formaliser, programmer, Comparer les prédictions à la réalité → modifier la modélisation. G Du pain sur la planche : stage, thèse, voire toute une vie Phénomènes linguistiques spécifiques : — types de base (sortes) pour les restrictions de sélection — déverbaux : allumer/allumage témoigner/témoignage maquiller/maquillage garer/garage — voyageur virtuel le sentier descend pendant 20 minutes Questions mixtes : — — — — sémantique des pluriels sémantique des noms massifs sémantique des événements lexiques et ontologies Questions logiques : — sous typage — lien théorie des types / calcul des prédicats — quantification (fonction de choix, epsilon de Hilbert)