• [^] # Re: Ressources utiles

    Posté par . En réponse à la dépêche Grammalecte, correcteur grammatical [2]. Évalué à 6. Dernière modification le 22 juin 2017 à 22:35.

    Merci pour les liens.

    De rien.

    Grew est intéressant, mais ça ne peut pas servir tel quel: c’est du Ocaml et rien n’est apparemment prévu pour Windows.

    C'est pas tant le logiciel Grew en lui-même que je voulais signaler, mais sa méthode d'analyse grammaticale. Sinon du code OCaml ça se compile sous Windows, ou mieux, ça se transcompile en javascript via js_of_ocaml (c'est comme ça que l'on peut tester OCaml dans son navigateur avec la boucle REPL compilée en javascript).

    Ce que fait Grew c'est de la réécriture de graphe (en) pour, par exemple, produire une analyse en grammaire de dépendance (en) dans la lignée des travaux de Lucien Tesnière. En réalité c'est un moteur qui prend en entrée un système de réécriture (une grammaire pour le français dans notre cas) comme Hunspell prend un dictionnaire. L'intérêt étant de pouvoir développer sa grammaire à part de façon modulaire.

    Je fais par exemple :

    $ echo "le chat mange la souris" | MElt -L -t > chat.melt
    $ grew -grs ~/src/POStoSSQ/grs/surf_synt_main.grs -seq full -gr chat.melt
    

    pour analyser la phrase le chat mange la souris, la grammaire du français se trouvant dans le fichier surf_synt_main.grs.

    Il y a d'autres formalismes comme les TAG, ou grammaire d'arbres adjoints, qui sont très répandues et qui utilisent des métagrammaires pour leur mise au point à la manière du logiciel FRMG.

    Toutes ces grammaires fonctionnent comme ton DAG (graphe orienté acyclique) pour le lexique, sauf qu'elles reconnaissent des langages légèrement sensibles au contexte (et non seulement des langages réguliers). Il y a des cycles dans le graphe, et l'opération d'adjonction dans les TAG permet de formaliser certains phénomènes récursifs des langues naturelles, comme dans la phrase Quel cadeau crois-tu que Jean offre à Marie ? :

    grammaire

    J’imagine que Grew part du principe qu’une phrase est (à peu près) correctement formée et que les erreurs potentielles sont des raretés. En cas d’aberration, ça envoie juste une analyse brute des mots, mais on ne peut pas le lui reprocher, ce n’est pas ce pour quoi ça a été fait.

    Non, Grew (comme FRMG) produit une analyse partielle si la phrase n'est pas reconnue par la grammaire. À l'inverse, l'ancien logiciel leopar fonctionnait comme un dictionnaire : l'entrée était reconnue ou non par la grammaire, dans ce dernier cas elle était tout simplement rejetée. Néanmoins, l'un comme l'autre ne fonctionne pas comme un correcteur orthographique (ou plutôt grammaticale) et ne propose pas une solution pour rendre l'entrée conforme à la grammaire. Il faudrait rajouter, pour cela, un autre traitement en aval du leur pour essayer de comprendre quelle peut être la source du problème (traitement qui est propre à un correcteur grammaticale comme l'est grammalecte), en tirant partie du travail d'analyse de la phase précédente.

    Pour ma part, j'ai un faible pour le formalisme des MCG (grammaires minimalistes catégorielles) parce qu'il s'inscrit, de manière large, dans le cadre de la correspondance de Curry-Howard (ou correspondance preuve-programme) à la base du lambda-calcul statiquement typé, c'est-à-dire la programmation fonctionnelle avec typage statique comme Haskell, OCaml ou Coq. Et dans ce formalisme, on voit clairement la correspondance entre analyse grammaticale et typage statique avec inférence de type comme je l'ai déjà souligné précédemment. :-)

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.