2013-02-26 4 views
2

Je dois écrire du code qui traduit des nombres de l'anglais vers le français (de 1 à 999) en utilisant le formalisme DCG de Prolog. Dois-je écrire deux règles de grammaire distinctes (une pour l'anglais et une pour le français) ou non? Ce code trouvé sur Internet peut-il m'aider? https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.prolog/ZF8p5cs4q0U S'il vous plaît, aidez-nous.Prolog_Numbers traduction anglais vers français utilisant DCG

+1

Il n'est même pas clair ce que vous devez exactement atteindre. S'il vous plaît donner un exemple. –

Répondre

3

Vous pouvez le faire en deux étapes (anglais vers nombre, nombre vers français) ou vous pouvez essayer de le faire directement de l'anglais vers le français. L'option en deux étapes est plus générique (ie vous permet de la convertir dans les deux sens, et vous pouvez facilement l'étendre pour supporter plus de langues), et vous avez déjà un code de travail disponible (celui dans le sujet lié), donc je suggère suivant cette route. Souvenez-vous simplement que, de la même manière qu'une règle DCG vous permet d'analyser du texte, elle vous permet également de le générer. Comme le sujet lié montre:

?- phrase(number(N), [one, hundred, and, twenty, seven]). 
N = 127 

?- phrase(number(127), L). 
L = [one, hundred, and, twenty, seven] 

Si vous remplacez la deuxième partie avec phrase(number_fr(127), L), en utilisant les règles que vous mis en place, vous auriez le numéro analysé précédemment exprimé en français.

Questions connexes