Vous êtes sur la page 1sur 5

TP : Conception d’une application de TALN

(activité d’équipe)

Faculté de sciences et de génie


Département d’informatique et de génie logiciel
IFT-2003 Intelligence artificielle I

1
Travail pratique : interrogation d’une base de connaissances en LN
Ce travail compte pour 5% de la note finale.
Échéance : le 17 décembre 2017 (23h59)

Obj
ect
if
sd’
appr
ent
is
s e:
ag

Àl
’is
suedec etra vail,uné tudiantde vraitêtrec apablede:
• résoudre un problème concret de traitement automatique du langage naturel;
• identifier les enjeux du traitement du langage naturel sur un problème concret;
• analyser les limites d’une solution à un problème concret de traitement du langage naturel.

De scri
pt i
onduc onte xtedut ravai lpr atique:
Le but du travail est de développer un module de TALN pour un système de questions/réponses en
langage naturel permettant à un utilisateur d’interagir avec une base de connaissances écrite en langage
Prolog. La base de connaissances à utiliser est la suivante :
% l'anglais habite la maison rouge :

habite(rouge, anglais).

% l'espagnol a un chien
animal(espagnol, chien).

% dans la maison verte on boit du café :


boit(verte, cafe).

% l'ukrainien boit du thé :


boit(the, ukrainien).

% la maison verte est immédiatement à droite de la maison blanche :


est_a_droite_de(verte, blanche).

% le sculpteur élève des escargots :


occupation(sculpteur, escargots).

% le diplomate habite la maison jaune :


habite(jaune, diplomate).

% le violoniste boit du jus d'orange :


boit(jus_orange, violoniste).

% le japonais est acrobate :


occupation(japonais, acrobate).

Par exemple, l’utilisateur pourrait poser la question suivante « Qui habite dans la maison rouge? », le
programme développé devra répondre « anglais ».

2
Tr
avai
làf
air
e:

1- Créer votre équipe de travail avant le 10 décembre 2017 (23h59).

2- Identifier un ensemble de questions (au moins 5 différentes), en langage naturel, auxquelles votre
système sera capable de répondre en se basant sur les connaissances données. Noter qu’une même
interprétation sémantique peut correspondre à plusieurs questions en langage naturel. Décrire les
patrons (formats) des interprétations sémantiques de chaque question proposée de manière à
pouvoir aller chercher la réponse dans la base de connaissances. Avec la question donnée en
exemple, l’interprétation sémantique retiendra les éléments «habite» et «rouge».

3- Construire la grammaire capable d’analyser les questions choisies. Implanter cette grammaire en
langage Prolog à l’aide d’un prédicat interpreter/2 dont le 1 e argument est la question (liste de mots
en lettres minuscules) et le 2 argument correspond au sens trouvé dans la question.
Par exemple :
?- interpreter( [qui, habite, la, maison, rouge], S).
L’argument S contiendra les éléments «habite» et «rouge» selon le format proposé en (2).

4- Implanter un autre prédicat en Prolog repondre/2 dont le 1 e argument est le sens trouvé dans la
question (2e argument de interpreter/2) et le 2e argument est la réponse à afficher. Par exemple : ?-
interpreter([quels, sont, les, sports, collectifs], S), repondre(S, R).
La réponse n’est pas à donner en langage naturel mais devra être affichée de manière plus
compréhensible que celle donnée par Prolog. Des exemples de réponses sont : « oui », « non », « la
réponse est : a, b, c ».

5- Implanter un prédicat « lancer/0 » qui permet de démarrer l’interprétation des questions et utilise
les prédicats interpreter/2 et repondre/2. L’utilisateur saisit une question en langage naturel et
l’interpréteur lui donne une réponse. Pour transformer une une phrase en liste de mots et vice versa,
vous pouvez utiliser le prédicat suivant :
% Le prédicat lire/2 lit une chaîne de caractères Chaine entre apostrophes
% et terminée par un point.
% Resultat correspond à la liste des mots contenus dans la phrase.
% Les signes de ponctuation ne sont pas gérés.
lire(Chaine,Resultat):- write('Entrer la phrase '), read(Chaine),
name(Chaine, Temp), chaine_liste(Temp, Resultat),!.

% Prédicat de transformation de chaîne en liste


chaine_liste([],[]).
chaine_liste(Liste,[Mot|Reste]):- separer(Liste,32,A,B), name(Mot,A),
chaine_liste(B,Reste).

% Sépare une liste par rapport à un élément


separer([],X,[],[]):-!.
separer([X|R],X,[],R):-!.
separer([A|R],X,[A|Av],Ap):- X\==A, !, separer(R,X,Av,Ap).

3
6- Évaluer les résultats.
 Faire des tests pour montrer le niveau d’interprétation des questions.
 Discuter les résultats obtenus : Êtes-vous satisfait de votre travail ? Comment pourriez-vous
l’améliorer ? Est-ce que de nouvelles questions pourraient-elles facilement être interprétées ?

7- Autoévaluer votre travail. Ne pas oubli


erde va
li
derv
otr
etr
ava
ilà l
’ai
de de l
a gr
il
le
d’
autoévaluat
ionfournieàlafindel'é
noncé.

Tr
avai
làr
eme
tte:
r

1.Pa rti
el ogici
elle(tousle sprédi ca
tsdel apa rt
iel ogi
ciell
edoi ventê t
redoc ume nt
és )(en1s e ulfi-
c hier.PL) .
2. Partie rapport (en .PDF), paginé, accompagné d’une page couverture et d’une table des ma-
tières :
 une introduction;
 les questions choisies avec les patrons sémantiques choisis et les réponses à obtenir pour
chacune des questions;
 l agramma ir
eq uipe rme td'
analyse rl
esq ues
ti
ons ;
 l estest
sré al
isés,lesrés ul
tat
sobt enuse tleurdiscussion;
 unec onclusion.

Ces deux parties sont à remettre dans la boite de dépôt prévue à cet effet dans le Portail des cours. Pour
le détail de l’évaluation (pourcentage), voir la grille d’autoévaluation jointe.

4
Grille d'autoévaluation
Conception et implantation (75%)
Au moins 5 questions sont Seulement 4 questions sont Seulement 2 questions sont
Identification des Aucune question n’a été
identifiées et utilisés par le identifiées et utilisés par le identifiées et utilisés par le
questions (10%) identifiée.
programme. programme. programme.
Une grammaire attribuée La grammaire attribuée Une grammaire attribuée est Aucune grammaire n’est
Analyse des
est proposée et permet proposée ne permet pas proposée mais ne permet proposée pour analyser
questions (10%)
d’analyser les questions. d’analyser toutes les questions. d’analyser aucune des questions. les questions.
Les patrons sémantiques et Les patrons sémantiques et les Les patrons sémantiques et les Aucun patron sémantique,
Identification des
les réponses sont donnés réponses sont donnés pour plus réponses sont donnés pour moins ni réponse ne sont donnés
résultats (10%)
pour toutes les questions. de la moitié des questions. de la moitié des questions. pour les questions.
Implantation de
Le prédicat est implanté et Le prédicat est implanté mais Le prédicat est implanté mais ne Le prédicat n’est pas
interpreter/2
fonctionne sans erreur. fonctionne avec erreur. fonctionne pas du tout. implanté.
(20%)
Implantation de Le prédicat est implanté et Le prédicat est implanté mais Le prédicat est implanté mais ne Le prédicat n’est pas
repondre/2 (20%) fonctionne sans erreur. fonctionne avec erreur. fonctionne pas du tout. implanté.
Implantation de Le prédicat est implanté et Le prédicat est implanté mais Le prédicat est implanté mais ne Le prédicat n’est pas
lancer/0 (5%) fonctionne sans erreur. fonctionne avec erreur. fonctionne pas du tout. implanté.
Résultats (15%)
Exemples de Plusieurs exemples sont Plusieurs exemples sont Pas d’exemple ou un seul
Un seul exemple est présenté et
questions présentés et les résultats présentés mais les résultats ne exemple est présenté mais
discuté.
/réponses (10%) sont discutés. sont pas discutés. non discuté.
Plusieurs améliorations Plusieurs améliorations sont Une seule amélioration est
Améliorations Aucune amélioration n’est
possibles sont proposées et proposées mais plus ou moins proposée et plus ou moins
possibles (5%) proposée.
illustrées par des exemples illustrées. illustrée.
Appréciation globale (10%)
Le rapport ne contient
Expression écrite Le rapport ne contient pas Le rapport ne contient pas plus de Le rapport contient plus
aucune faute (vocabulaire,
(5%) plus d’une dizaine de fautes. 5 fautes par page. de 5 fautes par page.
grammaire, syntaxe, etc.).
Tous les éléments demandés
Tous les éléments demandés
sont présents, mais le
Présentation du sont présents et le rapport Il y a au moins 2 éléments
rapport n’est pas paginé ou Il manque 1 élément demandé.
rapport (5%) est paginé et contient une demandés manquants
ne contient pas de page de
page de garde.
garde.