2013-02-26 3 views
2

Мне нужно написать код, который переводит числа с английского на французский (от 1 до 999) с использованием формализма DCG Prolog. Должен ли я записывать два отдельных правила грамматики (один для английского и один для французского) или нет? Может ли эта часть кода, найденная в Интернете, помочь мне? https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.prolog/ZF8p5cs4q0U Пожалуйста, помогите.Перевод с английского на французский с помощью DCG

+1

Не ясно, что именно вам нужно достичь. Приведу пример. –

ответ

3

Вы можете сделать это в два этапа (английский на номер, номер на французский), или вы можете попробовать сделать это напрямую с английского на французский. Двухэтапная опция является более общей (т. Е. Позволит вам конвертировать ее в обоих направлениях, и вы можете легко расширить ее, чтобы поддерживать больше языков), и у вас уже есть рабочий код (тот, который указан в связанной теме), поэтому я предлагаю следуя этому маршруту.

Просто помните, что так же, как правило DCG позволяет вам анализировать какой-либо текст, он также позволяет сгенерировать его. Как связана тема показывает:

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

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

Если заменить вторую часть с phrase(number_fr(127), L), используя правила, которые выполнены, вы бы номер, который вы разобранным ранее высказанный на французском.

Смежные вопросы