6

Je m'intéresse à écrire un petit logiciel qui utilise une grammaire générative (française) pour générer des phrases correctes d'un point de vue syntaxique.

Cependant, pour faire cela j'ai besoin des règles de structure de la phrase qui définissent la syntaxe de base de français (Wiki en anglais). Ces règles ont généralement la forme suivante:

S -> NP VP

qui veut dire

Une phrase (S) est composée d'une expression nominale (NP) suivie d'une expression verbale (VP)

Ces règles seraient quelque chose comme:

NP -> D (AP) N (AP)

qui veut dire

Une expression nominale (NP) est composé d'un déterminant (D) suivi d'une phrase adjective (AP; optionnelle), suivi d'un nom (N), suivi d'une autre phrase adjective (AP; optionnelle)

Y-a-t-il des ressources qui décrivent cette syntaxe dans cette forme (l’approche scolaire)?

J'ai trouvé quelques sources qui montrent la syntaxe en exemple (e.g. Lingolia), mais je cherche la représentation scolaire comme je l'ai décrite.


I'm interested in writing a small piece of software that uses a (French) generative grammar to generate syntactically-valid sentences in French.

However, in order to do that I need phrase structure rules that define the (basic) syntax of French (Wiki in English). Phrase structure rules generally have the following form:

S -> NP VP

meaning

A sentence (S) is composed of a noun phrase (NP) followed by a verb phrase (VP)

Subsequent rules would be something like:

NP -> D (AP) N (AP)

meaning

A noun phrase (NP) is composed of a determiner (D) followed by an adjective phrase (AP; optional), followed by a noun (N), followed by another adjective phrase (AP; optional)

Are there any resources that describe this syntax in this form (the formal approach)?

I have found sources which show the syntax by example (e.g. Lingolia), but I'm looking for the formal representation as I have described it.

  • 3
    Pardon d'avance pour cette auto-référence qui, en plus, ne répond pas vraiment à la question. Mais si tu t'intéresses toi aussi à la génération de structures grammaticales, tu trouveras peut-être un intérêt à ceci ? (notamment, en déployant le panneau d'options tu peux voir les structures de phrases en détail) (et à titre indicatif, l'outil est capable de générer plus de 200 000 structures de phrases différentes et valides) – RomainValeri May 29 '15 at 19:14
  • @RomainVALERI Aha, ça fait plus qu'un an que j'ai vu ton site web! Je l'avais visité par hasard quand j'étais en France, mais je l'ai oublié après quelques semaines car en ce temps-là, je ne m'intéressait pas trop à ce genre de choses. En fait, ton générateur est exactement ce que je voulais créer, pour mieux apprendre la syntaxe du français, pour avoir un projet de présenter sur mon CV, et aussi pour pratiquer une langage de programmation. Bref, est-il possible que l'on peut plus en parler par email? Je m'intéresse beaucoup à la linguistique computationnelle, spécialement pour le français :) – Chris Cirefice May 29 '15 at 19:51
  • Hello, je suis vraiment nul, j'n'ai pas tout compris à ce que tu essaies de faire, j'ai essayé, mais j'ai senti quelques neurones mourir, j'ai donc arrêté. Mais j'ai peut-être ce lien qui pourrait peut-être avoir un semblant de rapport... lien (si je suis à côté de la plaque, désolé) – Pimento Web May 29 '15 at 21:49
  • @YenneInfo Je pense que t'as bien compris, car cette structure est ce que je cherche. Cependant, le lien que tu m'as donné n'est pas exactement ce dont j'ai besoin; le problème est que ton lien ne contient pas de formalisme, ce qui est nécessaire pour mettre en oeuvre dans une application. Je suppose que c'est bien possible de formuler ces règles moi-même après avoir lu plusieurs livres de grammaire, mais mon projet doit être simple et j'imagine que ces règles ont été déjà écrit (comme en anglais), mais je ne pourrais pas les trouver. Donc peut-être un francophone saura où ils se trouvent! – Chris Cirefice May 29 '15 at 22:06
  • 1
    If you're looking for rules in formal form, rather than in natural language, maybe you'd rather look in the source of software similar to yours, rather than in the work of linguists (or natural people for that matter). E.g. github.com/rali-udem/SimpleNLG-EnFr/tree/master/src/simplenlg/… or nlp.stanford.edu/software/lex-parser.shtml, that build on llf.cnrs.fr/Gens/Abeille/French-Treebank-fr.php. – Nikana Reklawyks May 30 '15 at 15:04
6

Dans le cadre du traitement automatique des langues, l'opération qui vise à obtenir des grammaires formelles à partir de textes annotés s'appelle inférence grammaticale, à ce propos tu peux lire l'excellent ouvrage Grammatical Inference: Learning Automata and Grammars de Colin de Higuera, Chez Cambridge University Press.

Maintenant, si tu veux obtenir cette grammaire formelle de manière manuelle, ce que tu peux faire est d'analyser un bloc de texte (tu peux prendre un corpus annoté, comme celui du CNRS (Corpus annoté du français) ou alors prendre un texte à toi et l'analyser avec un outil comme TreeTagger, en prévoyant une étape de vérification et d'éventuelles corrections) et essayer de faire en sorte que ta grammaire soit capable de l'analyser.

Un outil très convivial pour vérifier si une grammaire analyse correctement une phrase est le package NLTK de Python. Dans un cours que je donne à Télécom Bretagne, j'ai un TP où l'on fait exactement cela.

  • Super réponse! C'est un peu malheureux que ces règles n'existent pas encore, mais au fait je viens de trouver un article par Christopher Gledhill à propos de la syntaxe de français. Avec cet article, le Parser de Stanford, le CNRS, et peut-être le NLTK, j'imagine que je pourrais réaliser les règles, au moins d'un niveau de base. Malheureusement je voulais que ce projet soit un peu plus simple ;) – Chris Cirefice Jun 8 '15 at 15:50
  • 2
    La beauté du traitement automatique de langue réside précisément dans le fait qu'un projet est aussi complexe que l'objet étudié, à l'occurrence la langue française. Il n'y a pas de complication gratuite, toute difficulté correspond à une particularité de la langue et est donc amplement justifiée… Un proverbe arabe dit كلّ لسانٍ الحقيقةِ إنسانٌ (toute langue est en réalité un être humain), c'est dire à quel point toute langue est précieuse et sa complexité souhaitable… – yannis Jun 9 '15 at 18:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.