Révisions

Table of Contents 

Pour décrire la grammaire d'une langue sous une forme exploitable par un ordinateur, il est nécessaire d'être extrêmement précis et d'utiliser un formalisme syntaxique adéquat.

Le plus simple et le plus connu de ceux-ci est certainement celui des grammaires hors-contexte (CFG, Context-Free Grammars), largement utilisées pour la description des langages de programmation.

Ainsi, la grammaire jouet suivante permet déjà de traiter une infinité de phrases simples, comme "Jean/np voit/v un/det homme/nc avec/prep un/det télescope/nc". Elle définit 8 productions pour les non-terminaux S (pour Sentence) ainsi que GN (Groupe Nominal), GP (Groupe Prépositionnel), et GV (Groupe Verbal).

  1. S --> GN, GV.
  2. GN --> np.
  3. GN --> det, nc.
  4. GN --> GN, GP.
  5. GP --> prep, GN.
  6. GV --> v.
  7. GV --> v GN.
  8. GV --> GV GP.

Les CFG sont ainsi largement utilisées pour le traitement automatique des langues (TAL), mais essentiellement dans le cadre d'extraction automatique de grammaires à partir de corpus annotés syntaxiquement (treebanks). Elles sont par contre beaucoup moins adaptées pour le développement manuel de grammaires à large couverture. Outre leur manque d'expressivité pour traiter certains phénomènes, elles obligent également à multiplier le nombre de productions.

Au moins deux grandes approches ont été explorées pour promouvoir des formalismes syntaxiques de plus haut niveau, plus puissants (en terme de pouvoir d'expression) et mieux adaptés à l'écriture de larges grammaires (concision, ...).

  • La première approche regroupe les grammaires d'unification comme LFG et HSPG, qui s'appuient sur l'utilisation de décorations au niveau des mots et des non-terminaux (via des structures de traits) pour pouvoir, au travers de l'opération d'unification, propager de l'information au sein de la phrase et gérer, par exemple, des phénomènes d'accord (entre un sujet et son verbe) ou des phénomènes d'extraction (pour une relative). Ainsi, une production gérant l'accord entre un nom et son déterminant, avec décorations, pourrait ressembler à
    1. GN{ nombre => N, genre => G } -->
    2. det{ nombre => N, genre => G},
    3. nc{ nombre => N, genre => G}.
  • La seconde approche

Références