Analyser une phrase % extraire une phrase et retourner le reste

Slides:



Advertisements
Présentations similaires
Aujourd'hui, nous allons apprendre à connaître et identifier les différentes sortes de déterminants. A la fin de la séance, vous serez capables de reconnaître.
Advertisements

Sytèmes Experts (Vus à travers Prolog).
Le langage Prolog Structures de données
La Programmation Logique: PROLOG
Les pronoms relatifs Objective: Learn to use more interesting and more complex sentences in French.
Passé Composé (être ou avoir. . .)
Mise en œuvre d’un programme
Prédicats prédéfinis Prédicats de type :
Analyse et Programmation Déclarative / Prolog
Systèmes Experts implémentation en Prolog
Fonctionnement du moteur Prolog
Etude de la langue LOrthographe grammaticale. Constat Les élèves connaissent les règles. Ils savent les appliquer dans les exercices. Et pourtant ! Ils.
On parle darbre de recherche dune question *Racine de larbre : question *Nœuds : points de choix (formule à démontrer) *Passage dun nœud vers son fils.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
CPI/BTS 2 Programmation Web Introduction au PHP
Objets Opérateurs Listes
CSI2520 ?- insert(a, L, [b, a, d, a, f]). L = [b, d, a, f] ; L = [b, a, d, f] ; no Linsertion et le retrait sont 2 concepts complémentaires!
Travail fait par les élèves de 3e année Année
Observez: le pluriel (noms, adjectifs, articles)
LES REGLES DE BASE DE L’ORTHOGRAPHE
Expressions et assignations
Les types de phrases La phrase déclarative
La négation en français
Introduction à la programmation (Java)
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
Points importants de la semaine Les constantes. Les boucles. Les opérateurs relationnels Les opérateurs logiques.
CSI2520, Hiver 2007 Python Un langage de programmation par scripting et plus…
CSI2520 Représentation: g([Noeud,...],[arc(Noeud1,Noeud2,Valeur),...]). arc(g(Ns,Arcs),N1,N2,Valeur):- member(arc(N1,N2,Valeur),Arcs). % pour un graphe.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Partie II Sémantique.
CSI 1502 Principes fondamentaux de conception de logiciels
Arbres en Prolog Un arbre binaire est une structure pouvant contenir des données. Chaque élément de l'arbre contient une donnée et a au plus un 'parent'
CSI2520, Hiver 2007 Les entrées-sorties Ecriture sur l'écran ou dans un fichier Lecture à partir du clavier ou dun fichier Affichage de termes : *write(1+2)
Instructions de contrôle
CSI2520 Ecriture sur l'écran ou dans un fichier Lecture à partir du clavier ou dun fichier Affichage de termes : *write(1+2) affiche 1+2 *write(X). affiche.
Voici une méthode pour corriger votre texte.
Les verbes PRONOMINAUX
Programmation logique Le Langage PROLOG
C’est lundi, le 25 novembre 2013 Les Objectifs: NS 1.1 Students engage in conversations, provide & obtain info. Express feelings & emotions, and exchange.
Structures alternative et répétitive
C’est; ces. Exemples  a - C’est Hicham qui a marqué le but.  b - Ces garçons jouent au ballon.
Jacques Nicolas INRIA /IRISA Rennes
LES PHRASES CONDITIONELLES ce qui est possible. Une phrase conditionnelle  shows what will happen IF something else occurs  use SI…  two part sentences.
LE PASSE COMPOSE Deuxième partie.
CSI2520  cdr vers le bas, cons vers le haut (define (traite-liste L) (if (null? L) () (cons (traite (car L)) (traite-liste (cdr L)))))
Boucles et Tests For( in ) { } While( ) { } Les exécutions conditionnelles (if.. else) peuvent être évitées avec des indexations logiques. Exemples: y=numeric(length(x));
Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
CSI2520  Cette fonction permet d’attribuer une valeur à une variable (set! nombre (+ 3 4)) (set! nombre (+ 1 nombre)) En SCHEME, les fonctions dont le.
Algorithmes de tri et de recherche
Outils pour la programmation logique par contraintes
Le langage Racket (Lisp)
A, as et à A est l’auxiliaire avoir à la troisième personne du singulier. On peut le remplacer par « avait ». ex : Pierre a (avait) réussi son contrôle.
Le pluriel des articles, noms et adjectifs
Programmation annuelle: Etude de la langue
Objets Opérateurs Listes
Sélection de colonnes (la projection)
CSI2520 Un langage de programmation par scripting orienté-objet (et fonctionnel)
Les pronoms démonstratifs FSF 3U. Les pronoms démonstratifs Les pronoms démonstratifs (this one, that one, the one[s], these, those) réfèrent à une personne.
Apprendre le français.
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Les Pronoms Direct & Indirect.
Les groupes de mots dans la phrase
Les différentes sortes.
Apprendre le français.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Français I – Révision de famille, vêtements, verbes –ER Petit examen demain le 9 octobre.
DAY 21. Translate the following sentences: 1.Marie is funny and creative. 2.John is strong and nice. 3.Marc and John are timid but generous.
Flash-on-flash-off! You will see some French text in a minute but it will only be on the board for a minute then it will disappear.
Mise en train: Révision!!! Conjuguez les verbes suivants: AIMER, DÉTESTER, VOULOIR, POUVOIR & DEVOIR.
Transcription de la présentation:

Analyser une phrase % extraire une phrase et retourner le reste phrase(X,Z):- groupeDuNom(X,Y), groupeDuVerbe(Y,Z). groupeDuNom(X,Z):- determinant(X,Y), nom(Y,Z). groupeDuVerbe(X,Z):- verbe(X,Y), groupeDuNom(Y,Z). CSI2520

Vocabulaire determinant([le|Z],Z). verbe([aime|Z],Z). determinant([la|Z],Z). determinant([un|Z],Z). determinant([une|Z],Z). determinant([les|Z],Z). determinant([des|Z],Z). nom([chat|Z],Z). nom([chien|Z],Z). nom([garcon|Z],Z). nom([fille|Z],Z). verbe([aime|Z],Z). verbe([regarde|Z],Z). verbe([attaque|Z],Z). CSI2520

Exemple ?- phrase([la,fille,aime,le,chien],[]). yes CSI2520

Notation DCG (definite clause grammar) phrase --> groupeDuNom, groupeDuVerbe. groupeDuNom --> determinant, nom. groupeDuVerbe--> verbe, groupeDuNom. determinant --> [le]. determinant --> [la]. determinant --> [un];[une];[des];[les]. nom --> [fille];[garcon];[chat];[chien]. verbe --> [regarde];[attaque];[aime]. CSI2520

Singulier vs pluriel phrase --> groupeDuNom(N), groupeDuVerbe(N). groupeDuNom(N) --> determinant(N), nom(N). groupeDuVerbe(N) --> verbe(N), groupeDuNom( _ ). determinant(singulier) --> [le];[la];[un];[une]. determinant(pluriel) --> [les];[des]. nom(singulier) --> [fille];[garcon];[chat];[chien]. nom(pluriel) --> [filles];[garcons];[chats];[chiens]. verbe(singulier) --> [regarde];[attaque];[aime]. verbe(pluriel) --> [regardent];[attaquent];[aiment]. CSI2520

Construire un arbre phrase(N,ph(GN,GV)) --> groupeDuNom(N,GN), groupeDuVerbe(N,GV). groupeDuNom(N,gNom(Det,Nom)) --> determinant(N,Det), nom(N,Nom). groupeDuVerbe(N,gVerbe(Verbe,GN)) --> verbe(N,Verbe), groupeDuNom(N,GN). determinant(singulier,det(le)) --> [le]. nom(singulier,nom(chat)) --> [chat]. verbe(singulier,verbe(aime)) --> [aime]. . . . CSI2520

Exemple ?- phrase(N,Arbre,[le,chien,attaque,le,garcon]). N=singulier Arbre= ph(gN(det(le),nom(chien)),gVerbe(verbe(attaque), gNom(det(le),nom(garcon)))). CSI2520

Avec un dictionnaire determinant(N,det(Det)) --> [Det], estDeterminant(Det,N). nom(N,nom(Nom)) --> [Nom], estNom(Nom,N). verbe(N,verbe(Verbe)) --> [Verbe],estVerbe(Verbe,N).. % dictionnaire estDeterminant(le,singulier). estDeterminant(les,pluriel). estNom(chat,singulier). estVerbe(aiment,pluriel). CSI2520

Un ascenceur deplacement --> mouvement. deplacement --> mouvement,deplacement. mouvement --> [haut]. mouvement --> [bas]. ?- deplacement([haut,haut,bas,haut],X). X = [haut, bas, haut] ; X = [bas, haut] ; X = [haut] ; X = [] ; false. CSI2520

Décompte des étages deplacement(E) --> mouvement(E). deplacement(E) --> mouvement(E1), deplacement(E2), {E is E1+E2}. mouvement(1) --> [haut]. mouvement(-1) --> [bas]. 1 ?- deplacement(E,[haut,haut,bas,haut],X). E = 1, X = [haut, bas, haut] ; E = 2, X = [bas, haut] ; X = [haut] ; X = [] ; false. CSI2520

Méta-Interpréteur Prolog Un méta-Interpréteur Prolog est un programme ecrit en Prolog pour interpréter les commandes Prolog: Prolog dans Prolog! Une réalisation d’un langage L dans L est souvent considerée comme une preuve de l’aspect général du langage L. On peut avoir Java dans Java, C dans C, etc...La question est de savoir a quel point il est facile d’exprimer un langage par ce meme langage. CSI2520

Méta-Interpréteur Prolog % pour resoudre un but vrai solve0(true) :- !. % pour resoudre une liste de buts solve0 ((G, Gs)) :- !, solve0(G), solve0(Gs). % pour resoudre un but, trouver sa clause et resoudre ses conditions solve0(G) :- !, clause(G, Body), solve0(Body). CSI2520

Méta-Interpréteur Prolog ?- solve0(member(X, [a, c])). X = a ; X = c ; No ?- solve0((member(X, [a , c, f]), | member(X, [b, c, d, f, g]))). X = f ; CSI2520

Méta-Interpréteur Prolog Cet interpréteur ne marchera pas pour les opérations pré-définies (built-in). Ces opérations n’ont pas de clauses. Elles sont directement interprétées par le systeme Prolog. Une amérioration du précédent interpréteur concerne la distinction des opérations pré- définies. Aussi, nous distinguerons les faits des regles. Le prédicat builtIn permet de reconnaitre les prédicats pré-définis: builtIn(G) :- predicate_property(G, built_in). builtIn(G) :- predicate_property(G, interpreted). CSI2520

Méta-Interpréteur Prolog solve((Head :- Body)):- !, assertz((Head :- Body)). solve(true):- !. solve((G, Gs)):- !,solve(G), solve(Gs). solve(G):- builtIn(G),!, call(G). solve(G):- clause(G, Body), solve(Body). CSI2520

Méta-Interpréteur Prolog On peut également utiliser notre propre boucle d’interprétation: do :- nl, write('query: '), read(Q), Q =\= stop, do1(Q). do. %arret lorsque Q == stop CSI2520

Méta-Interpréteur Prolog do1(Q) :- solve(Q), write('yes: '), writeln(Q), write('OK? (CR or anything else) '), get0(Ans), Ans == 10, % if Ans is not CR, fail back to solve(Q) !, do. do1(_) :- writeln(no), CSI2520

Méta-Interpréteur Prolog ?- do. query: writeln(okay). yes: writeln(okay) OK? (CR or anything else) query: member(X, [a, b]). yes: member(a, [a, b]) OK? (CR or anything else) n yes: member(b, [a, b]) query: member(X, [a, b, c]), member(X, [b, c, d, e]). yes: member(b, [a, b, c]), member(b, [b, c, d, e]) yes: member(c, [a, b, c]), member(c, [b, c, d, e]) query: assert(added(one, fact)). yes: assert(added(one, fact)) CSI2520

Méta-Interpréteur Prolog query: added(X, Y). yes: added(one, fact) OK? (CR or anything else) n no query: a(1) :- true. yes: a(1):-true OK? (CR or anything else) query: a(2) :- a(1). yes: a(2):-a(1) query: a(X). yes: a(1) yes: a(2) query: stop. Yes CSI2520