:: Enseignements :: Master :: M1 :: 2010-2011 :: Représentation des connaissances ::
[LOGO]

1. Logique et langue naturelle - Correction


Le but de ce TD est de manipuler des formules logiques.

Exercice 1 - Traduction entre le français et la logique du premier ordre

Exercice 2 - Évaluation de formules logiques avec NLTK

Nous allons utiliser le module nltk.sem pour évaluer des formules logiques étant donné un modèle. Ce module contient deux composantes principales :
  • logic fournit un analyseur de formules de la logique du premier ordre
  • evaluate permet de vérifier la valeur de vérité d'une formule étant donné un modèle.
Les classes utilisées sont les suivantes :
  • Valuation représente l'attribution de valeurs (entités, ensembles d'entités, relations sur les entités) à des noms d'entités et de prédicats.
  • Model est un modèle fondé sur un domaine (ensemble des entités) et une valuation.
  • Assignment est une affectation de valeurs à des variables. Il faut l'initialiser même s'il n'y a aucune variable.
Documentation : http://nltk.googlecode.com/svn/trunk/doc/api/nltk.sem-module.html
  • Complétez le script modele-rer.py pour créer un modèle qui correspond aux phrases de l'exercice 1. Pour chaque nouvelle formule, déclarez les entités et prédicats nécessaires et testez l'évaluation de la formule étant donné le modèle.
  • Peut-on évaluer les formules correspondant aux phrases suivantes ?
    • Jean veut prendre le TEVU
    • Le TATI dessert Nanterre en retard
    • Si un passager insulte un conducteur, il lui parle
    En cas de difficultés, comment pourrait-on les contourner ?