语音合成技术和文本语音转换 - Synthetic voice and Text to Speech technology - Синтетический голос и технологии преобразования текста в речь
 
TTS книги  Проверялка  ФорумФорум  RSS  ПоискПоиск  РегистрацияРегистрация  ВходВход  

Генератор склонений

Предыдущая тема Следующая тема Перейти вниз
АвторСообщениеГенератор склонений
bot
Гость


Сообщений : 317
Репутация : 12

 bot :: Пн Дек 07 2009, 22:46
Пн Дек 07 2009, 22:46



Модификация генератора, использующая оригинальный механизм настройки через внешний файл с набором правил склонения.
Автор: Алексей Салихов
31 Генератор склонений (CaseGen) v 0.51b

Описание алгоритма генерации и синтаксиса скрипт-языка
Алгоритм работает по принципу _согласования_ _правил_ в Пролог-системе, так что если вы знакомы с программированием на Прологе, то быстро во всём разберетесь O:)

Синтаксис алгоритма склонения для падежа <падеж>:
#<падеж>
<правило>; [<правило>; ... ]
#конец

вместо #конец можно начать новый #падеж

падежи:
именительный | родительный | дательный | винительный | творительный | предложный

Для каждого падежа программа последовательно просматривает _правила_, пытаясь найти _применимые_ к данному слову. Правило _применимо_ к слову, если _маска окончания_, задаваемая правилом, согласуется с окончанием слова. Если применимое правило нашлось, окончание слова изменяется в соответствии с _маской нового окончания_, и программа переходит к следующему слову/падежу. Если правило _неприменимо_, программа переходит к рассмотрению следующего правила. Если все правила просмотрены, а соответствия не нашлось, слово не изменяется.

Синтаксис _правила_:
[<строка условных символов>] <маска окончания> <маска нового окончания>;

Каждое правило заканчивается символом ';' (точкой с запятой)

<строка условных символов> - Необязательный элемент. Один или несколько условных символов. Если условие, задаваемое символом, не выполняется, правило считается _неприменимым_, и программа переходит к рассмотрению следующего правила.

условные символы (все буквы - латинские прописные):
M - слово мужского рода (англ masculine)
F - слово женского рода (англ feminine)
N - слово среднего рода (англ neuter)
S - слово ед. числа (англ single)
P - слово мн. числа (англ plural)
I - слово не одушевлено (англ inanimated)
A - слово одушевлено (англ animated)
L - слово - последнее в строке (по этому принципу программа различает прилагательные и существительные)
U - безударное окончание (пока что выставляется для всей фразы, что не очень удобно, но это пока...)

<маска окончания> - маска, которую программа сравнивает с окончанием слова, пытаясь применить правило. Состоит из букв, цифр, и символа '_'.
Буквы - согласуются с соответствующими буквами.
Символ '_' - согласуется с любой буквой.
Цифры - согласуются с любой буквой, входящей в соответствующую строку букв. Соответствие строк и цифр задается директивой

#строка <цифра> <строка букв>

В файле имеет смысл только одна директива для каждой цифры, т. к. программа все равно использует только последнюю встретившуюся.

Если маска окончания длиннее слова, правило неприменимо.

<маска нового окончания> - маска, согласно которой программа изменяет окончание слова, если правило применимо. Состоит из букв и символа '_'. Изменение начинается с той же буквы слова, с которой сравнивался первый символ _маски окончания_.
Буквы - буква слова заменяется на соответствующую букву.
Символ '_' - "прозрачка", оставляет соответствующую букву без изменения. (если встретится после конца слова, результат непредсказуем!)

В текст алгоритма можно вставлять комментарии:
1) В отдельной строке, начинающеися с '#' и пробела.
2) В любой строке, после символов '//' или '##':

################################## - это комментарий
# это комментарий
це ца; 6е _я; //это комментарий в остатке строки
#это неизвестная директива 'это' - приведет к ошибке

Вернуться к началу Перейти вниз
lev55
Участник «online словари»
avatar


Сообщений : 384
Репутация : 45

 lev55 :: Пн Дек 07 2009, 23:13
Пн Дек 07 2009, 23:13

Большое спасибо!
Такие программы очень интересеы, и в утилитарном смысле, и как заложенные вних идеи для других апрограмм.
Спасибо.

Вернуться к началу Перейти вниз

Генератор склонений

Предыдущая тема Следующая тема Вернуться к началу
Генератор склонений
Страница 1 из 1Страница 1 из 1
Этот сайт не предоставляет электронные версии программного обеспечения и полнотекстовых электронных изданий, а занимается лишь
подборкой и каталогизацией ссылок, присылаемых и публикуемых на форуме нашими читателями.

Создать форум | ©phpBB | Бесплатный форум поддержки | Сообщить о нарушении
Создать форум | © phpBB | Бесплатный форум поддержки | Сообщить о нарушении | Создать ваш бесплатный блог