vendredi 13 février 2009

Link Grammar Parser : Analyse syntaxique

L’analyse syntaxique vise à produire, pour chaque phrase du texte, un graphe reflétant les dépendances entre mots au sein de la phrase.

Description

Link grammar parser est un parseur syntaxique développé pour l'Anglais à l'université de Carnegie Mellon par John Lafferty , Daniel Sleator et Davy Temperley. Il est basé sur une grammaire de dépendances. Etant donné une phrase, le système lui attribue une structure syntaxique à partir de tous les liens crées localement pour des paires de mots. Chaque lien entre deux mots (dépendance) est étiqueté et répond à des contraintes décrites dans le dictionnaire.

Installation sous Linux

Pour installer Link Grammar Parser, il faut commencer par le télécharger, puis:

1-Décompresser l'archive link-4.1b.tar.gz à l'endroit de son choix
2-Vérifier la configuration du Makefile
3-Taper la commande make
4-Appliquer des patches additionnels par la commande : patch -p0

Utilisation

Link Grammar Parser prend en entrée un fichier texte qui contient une phrase par ligne.

Pour utiliser Link Grammar Parser, la syntaxe générale est:
./parse [dictionary] [-pp post-process file] [-c constituent-knowledge file] [-a affix-file]
où:
  • Post-process file est un fichier qui permet la gestion en post-traitement de l'analyse.
  • Constituent-knowledge file est un fichier qui permet la gestion en post-traitement de la construction des constituents syntaxiques (arbres de constituents)
  • Affix file est un fichier qui permet la gestion de la ponctuation et des symboles.
Il est à noter que ces fichiers sont optionnels. Le système utilise par défaut les fichiers 4.0.*

Certaines options peuvent être utilisées dans Link Grammar parser permettant de spécifier des modes de traitements et un format de sortie en définissant des valeurs pour certaines variables. Les commandes pour régler ces options commencent par "!". Lorsqu'on utilise l'analyseyur en mode commande, on le lance avec la commande ./parse, ensuite on peut spécifier les options au prompt. Lorsqu'on utilise un fichier d'entrée, la liste des commandes doit apparaître en en-tête du fichier. Certaines variables sont de type booléen (on ou off), on les modifie en tapant leur nom et d'autres peuvent être paramétrées en changeant la valeur de l'entier.

Les options ayant un effet sur le format de sortie sont essentiellement: !graphics, !links et !postscript.

Par exemple si on veut appliquer Link Grammar Parser au fichier test.txt, on tape la commande:
./parse <test.txt >resultat.txt    (les options étant spécifiées à l'en-tête du fichier test.txt)

* Avec !graphics

En effet, le mode graphique est activé par défaut pour faciliter la lecture à l'utilisateur. Le résultat obtenu a cette forme:

Opening ./data/4.0.dict
Opening ./data/words/words.n.p
.
.
.
Opening ./data/4.0.affix
linkparser> ++++Time 0.00 seconds (-0.00 total)
Found 2 linkages (2 had no P.P. violations)
Linkage 1, cost vector = (UNUSED=0 DIS=0 AND=0 LEN=18)

+----------------------------------Xp----------------------------------+
+------------Wd---------------+ +---------Ost--------+ |
| +--------DG--------+ | +--------Ds-------+ |
| | +--G--+---G---+--Ss-+ | +-----A----+--Mp-+--Jp-+ |
| | | | | | | | | | | |
LEFT-WALL the Link Grammar Parser is.v a syntactic.a parser.n of English.n .

Press RETURN for the next linkage.
linkparser>

Donc en tapant !graphics à l'en-tête du fichier, on désactive le mode graphique et le résultat sera simplement:

Opening ./data/4.0.dict
Opening ./data/words/words.n.p
.
.
.
Opening ./data/4.0.affix
linkparser> Graphical display of linkage turned off.
linkparser> ++++Time 0.00 seconds (0.00 total)
Found 2 linkages (2 had no P.P. violations)
Linkage 1, cost vector = (UNUSED=0 DIS=0 AND=0 LEN=18)
Press RETURN for the next linkage.
linkparser>

* Avec !links

On obtient plus de détails sur les relations entre deux mots et une indication sur le niveau syntaxique (m).
Ce format peut être traité par une machine mais présente de nombreuses difficultés lors de la récupérartion des données.
Le résultat a donc cette forme:

Opening ./data/4.0.dict
Opening ./data/words/words.n.p
.
.
.
Opening ./data/4.0.affix
linkparser> Graphical display of linkage turned off.
linkparser> Showing of complete link data turned on.
linkparser> ++++Time 0.00 seconds (0.00 total)
Found 2 linkages (2 had no P.P. violations)
Linkage 1, cost vector = (UNUSED=0 DIS=0 AND=0 LEN=18)

| LEFT-WALL Xp <---Xp----> Xp .
(m) LEFT-WALL Wd <---Wd----> Wd Parser
(m) the DG <---DG----> DG Parser
(m) Grammar G <---G-----> G Parser
(m) Link G <---G-----> G Grammar
(m) Parser Ss <---Ss----> Ss is.v
(m) is.v O*t <---Ost---> Os parser.n
(m) a Ds <---Ds----> Ds parser.n
(m) syntactic.a A <---A-----> A parser.n
(m) parser.n M <---Mp----> Mp of
(m) of J <---Jp----> Jp English.n
| . RW <---RW----> RW RIGHT-WALL

Press RETURN for the next linkage.
linkparser>

* Avec !postscript

Ce format est composé de deux parties. La première représente le découpage de la phrase en mots auxquels est attribuée une étiquette morphologique (.n pour nom, .v pour verbe, .a pour adjectif ...) et la deuxième décrit les relations binaires entre deux mots représentés par les deux premiers numéros correspondant à leurs places respectives dans la phrase. Entre parenthèses, on trouve l'étiquette de la relation.
Ce format est difficilement lisible pour un humain, mais permet un traitement informatique postérieur des résultats obtenus par Link Parser.
Le résultat a cette forme:

Opening ./data/4.0.dict
Opening ./data/words/words.n.p
.
.
.
Opening ./data/4.0.affix
linkparser> Graphical display of linkage turned off.
linkparser> Generate postscript output turned on.
linkparser> ++++Time 0.00 seconds (0.00 total)
Found 2 linkages (2 had no P.P. violations)
Linkage 1, cost vector = (UNUSED=0 DIS=0 AND=0 LEN=18)
[(LEFT-WALL)(the)(Link)(Grammar)(Parser)(is.v)(a)(syntactic.a)(parser.n)(of)
(English.n)(.)]
[[0 11 0 (Xp)][0 4 0 (Wd)][1 4 0 (DG)][3 4 0 (G)][2 3 0 (G)][4 5 0 (Ss)][5 8 0 (Ost)]
[6 8 0 (Ds)][7 8 0 (A)][8 9 0 (Mp)][9 10 0 (Jp)]]
[]
Press RETURN for the next linkage.
linkparser>

Licence

Compatible avec GPL

Références

S LEATOR D. D. & T EMPERLEY D. (1993). Parsing English with a link grammar. In Third International Workshop on Parsing Technologies.

http://www.link.cs.cmu.edu/link/

http://abiword.com/projects/link-grammar/dict/introduction.html

Aucun commentaire:

Enregistrer un commentaire