Oui mais... ce n'est pas pour ça qu'on fait appel aux grammaires?En fait, il te faut des structures types de phrase :
...
Tu vas avoir énormément de cas à traiter.
"Un algorithme d'apprentissage basique", à quoi il ressemble?Ca dépend de l'application, mais si tu peux te permettre de traiter manuellement les cas les plus compliqués dans un premier temps, tu peux mettre en place un algorithme d'apprentissage basique pour ton moteur de règles.
Oui mais tu pourras difficilement écrire toutes les règles de grammaire en une fois. Une langue, c'est autrement plus compliqué que des langages informatiques.Oui mais... ce n'est pas pour ça qu'on fait appel aux grammaires?En fait, il te faut des structures types de phrase :
...
Tu vas avoir énormément de cas à traiter.
Bah ça peut ête très simple. A chaque fois qu'il y a une phrase qu'il ne comprend pas, tu lui rajoutes des règles pour qu'il réussisse à l'intégrer."Un algorithme d'apprentissage basique", à quoi il ressemble?Ca dépend de l'application, mais si tu peux te permettre de traiter manuellement les cas les plus compliqués dans un premier temps, tu peux mettre en place un algorithme d'apprentissage basique pour ton moteur de règles.
Oh, mais je n'ai jamais dit que je voulais écrire une seule grammaire qui reconnaîtrait plusieurs phrases. C'est pour cela que j'ai demandé comment créer "des automates" mais pas "un automate".Oui mais tu pourras difficilement écrire toutes les règles de grammaire en une fois. Une langue, c'est autrement plus compliqué que des langages informatiques.
Et pour la phrase "Le chat mange la souris", j'ai:S -> AP SENT VN PP
AP -> PRO:INT
SENT -> NOM
VN -> VER
VN -> ADV
PP -> NP
NP -> NAM
Alors pour n'importe quelle phrase, je veux trouver les noms communs (NOM) ou les noms propres (NAM) dans les groupes nominaux (NP), et les verbes (VER) dans les groupes verbaux (VN), par exemple.S -> NP VN NP
NP -> PRP NOM
VN -> VER
Voilà, c'est ce que je pensais faire. Pour chaque phrase, je crée une grammaire, et je ferai pour toutes les phrases dans mes corpus de dialogue, c'est déjà pas mal.Bah ça peut ête très simple. A chaque fois qu'il y a une phrase qu'il ne comprend pas, tu lui rajoutes des règles pour qu'il réussisse à l'intégrer.
Ca peut être très compliqué. Il a des phrases qu'il acceptera à tort et d'autres qu'il refusera à tort, et dans ce cas, tu repasses derrière lui pour lui signaler qu'il avait tort, et il faut programmer le moteur de telle manière qu'il assimile des nouvelles règles en fonction de ce que tu lui as dit. C'est pas impossible à faire mais c'est vrai que ça relève pas mal du datamining et de l'intelligence artificielle.
Oui, une grammaire pour chaque phrase. C'est comme quand on apprend le français, on doit apprendre des règles pour comprendre quelle est la différence entre une phrase et une autre, ça semble évident, non?Bah je n'ai pas compris ton problème avec ma proposition.
Et je comprends pas ton "pour chaque phrase, je crée une grammaire". Tu ne peux pas créer une grammaire à chaque phrase, sinon cela revient à tout faire manuellement.
Code : Tout sélectionner
S
/ | \
NP VN NP
/ \ | / \
DET NOM V DET NOM
| | | | |
Le chat mange la sourisHmm.. ça a l'air bien compliqué, ce dont tu parlesAvant de partir sur des choses plus avancés, revient à ce que je t'ai dit. Écrit tes grammaires ou dessine tes automates. On verra pour la suite. Car je pense qu'on pourra sûrement faire des unions ou des intersections (on est dans un langage régulier, on a de bonnes propriétés, ça se comporte bien).
Sinon, pour l'apprentissage, je conseille plutôt les réseaux de neurones, mais on est hors-sujet.
Code : Tout sélectionner
S -> NP VN NP
NP -> DET NOM
VN -> V
Code : Tout sélectionner
<s>
<VN>
Je PRO:PER je
voudrais VER:cond vouloir
</VN>
<VN>
savoir VER:infi savoir
</VN>
<NP>
le DET:ART le
temps NOM temps
</NP>
<NP>
qu' PRO:REL que
</NP>
<VN>
il PRO:PER il
va VER:pres aller
</VN>
<VN>
faire VER:infi faire
</VN>
<PP>
à PRP à
<NP>
Périgueux NOM périgueux
</NP>
</PP>
</s>
Code : Tout sélectionner
S -> VN VN NP NP VN VN PP
VN -> PRO:PER VER
VN -> VER
NP -> DET:ART NOM
NP -> PRO:REL
NP -> NOM
PP -> PRP NPCode : Tout sélectionner
[type] => temps
[ville] => Périgueux
Code : Tout sélectionner
<s>
<VN>
Je PRO:PER je
voudrais VER:cond vouloir
</VN>
<VN>
savoir VER:infi savoir
</VN>
<NP>
le DET:ART le
temps NOM temps
</NP>
<NP>
qu' PRO:REL que
</NP>
<VN>
il PRO:PER il
va VER:pres aller
</VN>
<VN>
faire VER:infi faire
</VN>
<PP>
à PRP à
<NP>
Périgueux NOM périgueux
</NP>
</PP>
</s>