
- chisla.jpg (52.88 КБ) 29838 просмотров
Словарь склонения числительных
muk79, evilone
В словаре используются правила на основе регулярных выражений. Данный словарь предназначен для работы в TTS-программах при чтении и записи в аудиофайл текстовых файлов с использованием пакетов речевых функций SAPI4\SAPI5).
Словарь предназначен для склонения порядковых и целых числительных. Склоняются любые числа от одного до четырёх знаков в т.ч. римские (кроме упрощенной формы) путём дописывания к числу нужного окончания или специальной падежной метки определяющей правило склонения числа.
Для использования достаточно применить шаблон который будет добавлять к числу нужное окончание, например:
Код: Выделить всё
в начале XIX века= в начале XIX-ого века
в начале девятнадцатого века
Код: Выделить всё
в 1991 году=в 1991-м году
в одна тысяча девятьсот девяносто первом годУ
Код: Выделить всё
в 2-х этажном= в 2-ом этажном
в двухэтажном
и т.д.
Структура словаря:
Римские цифры
преобразование римских чисел в арабские и шаблоны склонения
здесь же до строки <рим\.ч\.>= можно использовать замены специфические только для римских чисел, например Петр I, Генрих IV и т.п.
Время
преобразование и шаблоны склонения времени записанных в сокращенном виде 21:45\21:45:18\21.45 для использования в шаблонах падежного склонения используйте метку падежа
Даты
преобразование и шаблоны склонения различных дат записанных в сокращенном виде 01.01.01\01.01.2001 8мар 1апр для использования в шаблонах падежного склонения используйте метку падежа
Длина
преобразование и шаблоны склонения различных длин записанных в сокращенном виде 1м 100км для использования в шаблонах падежного склонения используйте метку падежа
Вес
преобразование и шаблоны склонения различного веса записанных в сокращенном виде 1т 100кг для использования в шаблонах падежного склонения используйте метку падежа
Объем
преобразование и шаблоны склонения различных объемов записанных в сокращенном виде 1л 100мл для использования в шаблонах падежного склонения используйте метку падежа
Валюта
преобразование и шаблоны склонения различных валют записанных в сокращенном виде 10$ 100руб. для использования в шаблонах падежного склонения используйте метку падежа
Координаты
преобразование и шаблоны склонения координат (градусы и минуты) записанных в сокращенном виде 40°31' для использования в шаблонах падежного склонения используйте метку падежа
Биты и байты
преобразование и шаблоны склонения бит и байт записанных в сокращенном виде 100Гб 5Mb для использования в шаблонах падежного склонения используйте метку падежа
Общие шаблоны
здесь возможно добавление новых шаблонов для замен по тексту
Сокращения
добавление текстовых сокращений
Цифровые окончания
сам словарь замен
Использование метки падежа при составлении шаблонов склонения
Метка падежа
t служит для быстрой записи необходимого падежного склонения для числительного и стоящего рядом с ним слова.
Формат записи для определения падежа числительного:
число<t@#>
число-абв
Формат записи для определения падежа стоящего рядом слова:
время:
часы <hr>
минуты <min>
секунды <sec>
дата:
день <dd>
неделя <wek>
месяц <mm>
месяц <mnth>
год <yy>
длина:
метр <mt>
вес:
грамм <gr>
тонна <tn>
объем:
литры <lt>
валюта:
доллар <usd>
цент <cnt>
рубль <rub>
гривна <grn>
копейка <cop>
евро <eur>
евроцент <ecn>
координаты:
градус <gra>
процент <per>
минута <min>
биты и байты:
биты <bit>
байты <byt>
степени:
тысячи <tis>
миллионы <mln>
миллиарды <mlrd>
где #(падеж) число от 1 до 6
@ числовая группа (род число и одушевленность) - латинская буква
В шаблоне при записи отдельно можно использовать как метку с числительным, с указанием группы числа, так и буквенное окончание. Использовать метку для стоящего рядом слова можно использовать без указания группы числа. Отдельно использовать метку только для стоящего рядом слова нельзя.
Например:
18 мин=18<t1><min>
около 18=около 18<tb2>
около 18=около 18-го

- letters1.jpg (79.77 КБ) 29838 просмотров

- letters2.jpg (48.47 КБ) 29838 просмотров
По определённой причине словарь обновляться не будет.
Если кто хорошо понимает регулярные выражения, то по шаблонам сможет исправить\пополнить.
wasyaka писал(а):Дополненый, кой-где поправленный... но в dic
Отредактированный словарь склонения числительных
wasyaka
► Показать
в rex:
# 9-миллиметрового
(\d+)\s?(\-)\s?([а-яё]+)?(метр)([а-яё]+)=$1-го del_space$3$4$5
#
(\bмм\b)\s(\bкамера\b)=миллиметровая $2
(\bмм\b)\s(\bкамер\b)=миллиметровых $2
(\bмм\b)\s(\bкамеры\b)=миллиметровой $2
#(\bмм\b)\s(\bкамеры\b)=миллиметровые $2
(\bмм\b)\s(\bкамерам\b)=миллиметровым $2
(\bмм\b)\s(\bкамерами\b)=миллиметровыми $2
(\bмм\b)\s(\bкамерах\b)=миллиметровых $2
(\bмм\b)\s(\bкамере\b|\bкамерой\b|\bкамерою\b)=миллиметровой $2
(\bмм\b)\s(\bкамеру\b)=миллиметровую $2
# 5-звездочных
то же, но в dic:
// 9-миллиметрового
#(\d+)\s?(\-)\s?([а-яё]+)?(метр)([а-яё]+)=$1-го del_space$3$4$5
//
#(\d+)(\s?|\-)\b(см|сантиметровых)\b\s\b(береговых|гаубиц)=$1<tb2> сантиметровых $4
#(\d+)(\-)\b(дюйм|см)\b=$1 $3
#(\d+)\s?(\bсм\b)\s\b(калибр|парк)\b=$1<ta6> сантиметровый $3
#(\d+)(\-)(\bсантиметровых\b)=$1<tb2> $3
#(?i)(?<=\bот.?)(\d+)(.?-мм)=$1 миллиметров
#(\d+)(\s?|\-)\b(мм|миллиметровый)\b(\s[а-яё\-]+)?\s\b(калибр|миномёт|пистолет|пулемёт)\b=$1<ta6> миллиметровый $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметрового)\b(\s[а-яё\-]+)?\s\b(калибра|миномёта|пистолета|пулемёта|орудия)\b=$1<ta2> миллиметрового $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметрового)\b(\s[а-яё\-]+)?\s\b(калибра|миномёта|орудия|пистолета|пулемёта|снаряда)\b=$1<ta6> миллиметрового $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровым)\b(\s[а-яё\-]+)?\s\b(батареям|гаубицам|калибрам|калибром|камерам|миномётам|пистолетам|пулемётам|орудиям)\b=$1<ta6> миллиметровым $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровыми\b)(\s[а-яё\-]+)?\s\b(батареями|гаубицами|калибрами|камерами|миномётами|орудиями|пистолетами|пулемётами|скорострелками)\b=$1<ta6> миллиметровыми $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровых)\b(\s[а-яё\-]+)?\s\b(батарей|гаубиц|калибрах|калибров|камер|камерах|миномётов|орудий|пистолетов|противоминных|пулемётов|пушек|пушечек)\b=$1<th2> миллиметровых $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровом)\b(\s[а-яё\-]+)?\s\b(калибре|пистолете|пулемёте|орудии)\b=$1<ta6> миллиметровом $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровому)\b(\s[а-яё\-]+)?\s\b(калибру|пистолету|пулемётуорудию)\b=$1<ta6> миллиметровому $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровые)\b(\s[а-яё\-]+)?\s\b(гаубицы|калибры|камеры|пистолеты|пулемёты|пушки|орудия|установки)\b=$1<ta6> миллиметровые $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровая)\b(\s[а-яё\-]+)?\s\b(батарея|бронепалуба|гаубица|камера|пушка|установка)\b=$1<ta6> миллиметровая $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровое)\b(\s[а-яё\-]+)?\s\b(орудие)\b=$1<ta6> миллиметровое $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровой)\b(\s[а-яё\-]+)?\s\b(батарее|броне|камер(е|ы|ой|ою)|пушк(и|ой)|установкой)\b=$1<ta6> миллиметровой $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровую)\b(\s[а-яё\-]+)?\s\b(батарею|броню|гаубицу|камеру|пушку|установку)\b=$1<ta6> миллиметровую $4 $5
#(\d+)(\s?|\-)\b(мм|миллиметровые)\b(\s[а-яё\-]+)?\s\b(батареи|гаубицы|камеры|орудия|пушки|снаряды|установки)\b=$1<ta6> миллиметровые $4 $5
// 1 дюйм
#(?i)(калибров|калибром)\s(\d+)\,\s(\d+)\s?(\-|\bи\b|\bили\b)\s?(\d+)=$1 $2<tg1> $3<tg1> $4 $5<tg1>
#(?i)(калибров|калибром)\s(\d+)\s?(\-|\bи\b|\bили\b)\s?(\d+)=$1 $2<tg1> $3 $4<tg1>
#(?i)(крупповских)\s(\d+)\-(мм)=$1 $2<th2> миллиметровых
#(\d+)\s?\-\s?(\d+)(\")\s(и)\s(\d+)\s?\-\s?(\d+)(\")\s(орудиями|снарядами|фугасами)=$1<tb6> $2 дюймовыми $4 $5<tb6> $6 дюймовыми $8
#(\d+)(\")(?=[^\.,!?-]{0,25}(стреляют))=$1 дюймовки
#(\d+)(\")(\s[а-яё\-]+)?\s(снаряд)\b=$1 дюймовый $3 $4
#(\d+)(\s?|\-)(дюймовый)(\s[а-яё\-]+)?\s(бронебойный|снаряд)\b=$1 дюймовый $4 $5
#(\d+)(\")(\s[а-яё\-]+)?\s(орудия|снаряды|фугасы)=$1 дюймовые $3 $4
#(\d+)(\s?|\-)(дюймовые)(\s[а-яё\-]+)?\s(орудия|снаряды|фугасы)=$1 дюймовые $4 $5
#(\d+)(\")(\s[а-яё\-]+)?\s(батареи|башн(е|и))=$1 дюймовой $3 $4
#(\d+)(\")(\s[а-яё\-]+)?\s(батарею|башню)=$1<th2> дюймовую $3 $4
#(\d+)(\")(\s[а-яё\-]+)?\s(батарей|башен|кормовых|орудий|пушек)=$1<th2> дюймовых $3 $4
#(?i)(\d+)(\")(?=[^\.,!?-]{0,25}(бомбовом|левом|погребе))=$1 дюймовом
#(\d+)(\")=$1 дюйм
#(?i)(\d+)\s(\bдюймов\b)\s(\bброни\b)=$1<tg1> $2 $3
#(?i)\b(и)\s(\d+)\s(\bдюймов\b)=$1 $2<tg1> $3
#(?i)(\d+)\s(\bдюймов\b)\s(\bу\b)=$1<th3> $2 $3
#(?i)(\d+)(?=.?(вольтами|дюйм|фугасный))=$1<ta2>
#(?i)(\d+)\-\b(и)\s(дюйм)=$1
// 5-звездочных