
- •1.Описание предметной области
- •Склонение имен прилагательных
- •Склонение имен числительных
- •2. Аналоги
- •«Морфер» 2.0
- •Падеж. Версия "Крохотулька"
- •Склонение фамилий, имен и отчеств по падежам. Aka Padeg.Dll
- •Техническое задание на автоматизированную систему «Веб-служба автоматизированного склонения существительных, прилагательных и числительных» (ieee 830-1998)
- •1. Введение
- •2. Полное описание
- •. Перспектива изделия
Склонение имен числительных
Все числительные разделяются на склоняемые и несклоняемые. К несклоняемым относятся слова мало и немало, к склоняемым – все остальные числительные. Категория падежа у числительных – это словоизменительная морфологическая категория, представленная шестью рядами падежных форм, по флексиям совпадающих с падежными формами существительных или прилагательных.
Количественные и собирательные числительные изменяются по падежам, т. е. склоняются. Склонение числительных не имеет единого образца, оно представлено несколькими типами:
1) склонение числительных два, три, четыре;
2) склонение числительных от пяти до десяти и числительных на - дцать (одиннадцать, двенадцать и т. д.) и - десят (пятьдесят, шестьдесят
и т.д.);
3) склонение числительных двести, триста, четыреста и всех числительных на -сот;
4) склонение числительных сорок, девяносто, сто и числительных полтора и полтораста;
5) склонение числительных оба, трое, четверо, немного, много, столько, сколько, несколько.
2. Аналоги
«Морфер» 2.0
Веб-сервис реализует функции склонения по падежам слов и словосочетаний на русском и украинском языках, определение рода (пола). Функцию «сумма прописью» в любом падеже (сто рублей, ста рублей, о ста рублях) для любой единицы (не только денежной) и согласование единицы измерения с предшествующим числительным (1 новое письмо, 2 новых письма, 5 новых писем...).
Пример вызова функции склонения через HTTP GET:
http://morpher.ru/WebService.asmx/GetXml?s=Соединенное%20королевство
В ответ получим:
<?xml version="1.0" encoding="utf-8" ?>
<xml>
<Р>Соединенного королевства</Р>
<Д>Соединенному королевству</Д>
<В>Соединенное королевство</В>
<Т>Соединенным королевством</Т>
<П>Соединенном королевстве</П>
<П-о>о Соединенном королевстве</П-о>
<род>Средний</род> Тег <род>
<множественное>
<И>Соединенные королевства</И>
<Р>Соединенных королевств</Р>
<Д>Соединенным королевствам</Д>
<В>Соединенные королевства</В>
<Т>Соединенными королевствами</Т>
<П>Соединенных королевствах</П>
<П-о>о Соединенных королевствах</П-о>
</множественное>
<где>в Соединенном королевстве</где> Теги <где>, <куда> и <откуда>
<куда>в Соединенное королевство</куда>
<откуда>из Соединенного королевства</откуда>
</xml>
s – строка для склонения – должна быть в кодировке UTF-8 и перед вставкой в URL должна быть закодирована при помощи URL Encoding.
Если у слова нет какой-либо формы, то соответствующий тег будет пустой, например: теля, мзда. Если у слова нет множественного числа или оно уже во множественном, то тег <множественное> будет отсутствовать: сутки, ножницы. Множественное число не выдается также для фамилий, имен и отчеств.
Украинский вариант функции склонения называется GetXmlUkr:
http://morpher.ru/WebService.asmx/GetXmlUkr?s=Крутько%20Катерина%20Володимирiвна
<?xml version="1.0" encoding="utf-8" ?>
<GetXmlUkrResult>
<Р>Крутько Катерини Володимирівни</Р>
<Д>Крутько Катерині Володимирівні</Д>
<З>Крутько Катерину Володимирівну</З>
<О>Крутько Катериною Володимирівною</О>
<М>Крутько Катерині Володимирівні</М>
<К>Крутько Катерино Володимирівно</К>
<рід>Жіночий</рід> Тег <рід>
</GetXmlUkrResult>
Украинская версия лучше всего справляется с именами, фамилиями и отчествами. Работа над другими типами словосочетаний ведется. Множественное число пока не строится.
Пропись чисел и согласование с числом (метод Propis)
Метод Propis (PropisUkr) решает две родственные задачи: получение прописи числа (тысяча сто двадцать пять) и согласование единицы измерения с предшествующем числом (1 попугай, 2 попугая, 5 попугаев):
http://morpher.ruWebService.asmx/Propis?n=235&unit=рубль (PropisUkr) <?xml version="1.0" encoding="utf-8" ?>
<PropisResult>
<n>
<И>двести тридцать пять</И>
<Р>двухсот тридцати пяти</Р>
<Д>двумстам тридцати пяти</Д>
<В>двести тридцать пять</В>
<Т>двумястами тридцатью пятью</Т>
<П>двухстах тридцати пяти</П>
</n>
<unit>
<И>рублей</И>
<Р>рублей</Р>
<Д>рублям</Д>
<В>рублей</В>
<Т>рублями</Т>
<П>рублях</П>
</unit>
</PropisResult> <?xml version="1.0" encoding="utf-8" ?>
<PropisUkrResult>
<n>
<Н>двісті тридцять п'ять</Н>
<Р>двохсот тридцяти п'яти</Р>
<Д>двомстам тридцяти п'яти</Д>
<З>двісті тридцять п'ять</З>
<О>двомастами тридцятьма п'ятьма</О>
<М>двохстах тридцяти п'яти</М>
</n>
<unit>
<Н>рублів</Н>
<Р>рублів</Р>
<Д>рублям</Д>
<З>рублів</З>
<О>рублями</О>
<М>рублях</М>
</unit>
</PropisUkrResult>
Комбинируя соответствующие падежные формы n и unit, можно получить вывод «суммы прописью»:
235 рублей
Двести тридцать пять рублей
235 (двести тридцать пять) рублей и т.п.
Комбинировать имеет смысл только соответствующие падежные формы n и unit – именительный с именительным, родительный с родительным и т.д. Например, для получения фразы "в размере N рублей (долларов, евро...)", берем родительный падеж (<Р>): в размере + двухсот тридцати пяти + рублей.
Примеры
1С
Пример внешней обработки: Morpher.epf. Чтобы открыть обработку, просто перетащите Morpher.epf в 1С:Предприятие.
Версия 1С Работоспособность примера
8.2.9.365 Не работает
8.2.15.300 Работает
C#
Для работы с веб-сервисом из .NET рекомендуется библиотека Morpher.API.dll. Она изолирует от излишних подробностей работы с веб-сервисом, представляя функции склонения в виде обычных классов и методов.
PHP и другие языки
В комментариях к старой версии веб-сервиса есть несколько примеров вызова из PHP и Delphi.
Ограничения бесплатной версии
Бесплатное использование веб-сервиса имеет следующие ограничения:
Отсутствуют теги <П-о>, <где>, <куда>, <откуда> и <род>.
Максимум 1000 запросов в сутки. Эта число может быть изменено в будущем – следите за сообщениями внизу данной страницы. Функция GetDailyQueryLimit возвращает действующее на данный момент значение.
Относительно ограничений на количество запросов в сутки следует заметить, что неудачные запросы (отклоненные по причине превышения лимита) также учитываются при расчете суточного количества. Поэтому если продолжать посылать запросы после превышения лимита, вы можете так никогда и не получить доступ. Подождите сутки и доступ сам собой восстановится.
Чтобы снять эти ограничения, нужно зарегистрироваться.
Регистрация
Чтобы снять ограничения бесплатной версии, нужно:
Зарегистрироваться
Войти в раздел Мой Морфер и оплатить доступ по одному из нижеперечисленных тарифов.
Добавить к запросу к веб-сервису ваше имя пользователя, указанное при регистрации, и пароль (см. ниже).
Имеются следующие тарифы:
Тариф «Бейсик» – снимаются только ограничения на теги, до 1000 запросов в сутки, 300 руб/мес.
Тариф «Профессионал» – снимаются ограничения на теги, до 10 000 запросов в сутки, 500 руб/мес.
Тариф «Анлимитед» – без ограничений, 1000 руб/мес.
Недостатки: для полного списка возможностей нужна регистрация и оплата услуг. В бесплатной версии весьма ограниченный функционал.