0 голосов
222 просмотров

Сегодня утром я понял, что можно генерировать теги с использованием литеральных строк. Однако это своего рода хакинг, поскольку он основан на знании того, что Apertium помещает теги в <>, и мне кажется, что пользователь FlexTrans действительно не должен полагаться на такие детали.
Тем не менее, это означает, что, извлекая базовую информацию из входного потока (например, класс существительного) в переменную литеральной строки (например, var v_noun_class := string ‘3’), можно сделать что-то вроде:

let var v_gloss = “<”
append var v_gloss “NPx”
append var v_gloss “_”
append var v_gloss var v_noun_class
append var v_gloss “>”

… а затем вывести var v_gloss, и результат будет синтезирован корректно (так, как если бы я вывел литеральный тег NPx_3)

В моем случае это также позволяет генерировать тег суффикса в отдельной переменной, просто заменив NPx на NSx, – что гораздо проще (и читабельнее), чем управлять большой структурой choose when … when … when … для каждого выходного аффиксного тега, содержащего информацию о классе существительного и что-то еще.

Так что, с одной стороны, это кажется уродливым хакингом, а с другой – позволяет более элегантно и читабельно генерировать сложные аффиксные теги. Что вы думаете об этом подходе?

С уважением, bruce

Переведено машиной с языка English
FLExTrans от (102 очков)
снова показан | 222 просмотров

1 ответ

0 голосов

Да, это своего рода хакинг, но кажется полезным, который в конечном итоге делает ваше правило более поддерживаемым.

Кстати, вы можете добавлять несколько элементов в переменную (или что-либо другое):

APPEND VAR v_gloss LIT_STR “<NPx_” VAR v_noun_class LIT_STR “>”

Молодец!

Переведено машиной с языка English
от (340 очков)

Похожие вопросы

0 голосов
1 ответ 301 просмотров
Какой лучший способ переводить глаголы в глагольные фразы? В языке Mato (исходный язык) есть harungia говорить против , ... , и я wondering, есть ли более простое решение?
matoxltr 130 задал вопрос июл 16, 2025
0 голосов
1 ответ 251 просмотров
Как использовать макрос? (Как повторять правила в нескольких местах?)
rmdiamondl 340 задал вопрос май 8, 2022
0 голосов
1 ответ 226 просмотров
Можно ли работать с несколькими языковыми парами в FLExTrans?
rmdiamondl 340 задал вопрос апр 22, 2022
0 голосов
1 ответ 405 просмотров
Вспомогательная информация командной строки гласит -b BOOKS, --books BOOKS Reference list to print (as in Choose Books) ... , пытаясь установить ptxprint на новой машине с Linux.)
mnjames 1,9тыс. задал вопрос май 10, 2023
0 голосов
1 ответ 114 просмотров
Как удалить слово из целевого вывода?
Sara 258 задал вопрос апр 28, 2025
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Every day they continued to meet together in the temple courts. They broke bread in their homes and ate together with glad and sincere hearts, praising God and enjoying the favor of all the people. And the Lord added to their number daily those who were being saved.
Acts 2:46-47
3,080 вопросов
6,047 ответов
5,709 комментариев
2,047 пользователей