morpher.ru 8 (499) 647 86 54
nowhere@morpher.ru
 
 
Мой морфер

Веб-сервис склонения по падежам «Морфер» 3.0

Веб-сервис предназначен для склонения по падежам слов и словосочетаний на русском и украинском языках. Он бесплатный (с ограничениями), а для бизнес-пользователей предусмотрен платный доступ.

Веб-сервис может быть использован для автоматизации следующих задач:

Склонение по падежам

Пример вызова функции склонения через HTTP GET:

http://ws3.morpher.ru/russian/declension?s=Соединенное%20королевство

В ответ получим:

  • <xml>
    • <Р>Соединенного королевства</Р>
    • <Д>Соединенному королевству</Д>
    • <В>Соединенное королевство</В>
    • <Т>Соединенным королевством</Т>
    • <П>Соединенном королевстве</П>
    • <П-о>о Соединенном королевстве</П-о>
    • <род>Средний</род> Тег <род>
    • <множественное>
      • <И>Соединенные королевства</И>
      • <Р>Соединенных королевств</Р>
      • <Д>Соединенным королевствам</Д>
      • <В>Соединенные королевства</В>
      • <Т>Соединенными королевствами</Т>
      • <П>Соединенных королевствах</П>
      • <П-о>о Соединенных королевствах</П-о>
    • </множественное>
    • <где>в Соединенном королевстве</где> Теги <где>, <куда> и <откуда>
    • <куда>в Соединенное королевство</куда>
    • <откуда>из Соединенного королевства</откуда>
  • </xml>

В случае json запроса:

  • {
    • "Р": "Соединенного королевства",
    • "Д": "Соединенному королевству",
    • "В": "Соединенное королевство",
    • "Т": "Соединенным королевством",
    • "П": "Соединенном королевстве",
    • "П-о": "о Соединенном королевстве",
    • "род": "Средний",
    • "множественное" : {
      • "И": "Соединенные королевства",
      • "Р": "Соединенных королевств",
      • "Д": "Соединенным королевствам",
      • "В": "Соединенные королевства",
      • "Т": "Соединенными королевствами",
      • "П": "Соединенных королевствах",
      • "П-о": "о Соединенных королевствах",
    • },
    • "где": "в Соединенном королевстве",
    • "куда": "в Соединенное королевство",
    • "откуда": "из Соединенного королевства"
  • }

s – строка для склонения – должна быть в кодировке UTF-8 и перед вставкой в URL должна быть закодирована при помощи URL Encoding.

Если у слова нет какой-либо формы, то соответствующий тег будет пустой, например: теля, мзда. Если у слова нет множественного числа или оно уже во множественном, то тег <множественное> будет отсутствовать: сутки, ножницы. Множественное число не выдается также для фамилий, имен и отчеств.

Украинский вариант функции склонения ukrainian/declension:

http://ws3.morpher.ru/ukrainian/declension?s=Крутько%20Катерина%20Володимирiвна
  • <GetXmlUkrResult>
    • <Р>Крутько Катерини Володимирівни</Р>
    • <Д>Крутько Катерині Володимирівні</Д>
    • <З>Крутько Катерину Володимирівну</З>
    • <О>Крутько Катериною Володимирівною</О>
    • <М>Крутько Катерині Володимирівні</М>
    • <К>Крутько Катерино Володимирівно</К>
    • <рід>Жіночий</рід> Тег <рід>
  • </GetXmlUkrResult>

Украинская версия лучше всего справляется с именами, фамилиями и отчествами. Работа над другими типами словосочетаний ведется. Множественное число пока не строится.

Тег <род> (в украинском варианте <рід>) содержит автоматически определенный род. Возможные значения тега:

<род> <рід>
Мужской Чоловічий
Женский Жіночий
Средний (пока не поддерживается)

Тег <род> доступен только на платных тарифах.

Если входное словосочетание стоит во множественном числе, то тег будет пустым: <род/>.

Предложный падеж

Предложный падеж представлен в трех вариантах:

  • <П> – без предлога
  • <П-о> – с предлогом О/ОБ/ОБО, предлог выбирается автоматически
  • <где> – с предлогом В/ВО/НА: в Москве, во Франции, в Крыму, на Урале.

Рекомендации по выбору варианта предложного падежа

Теги <где>, <куда> и <откуда>

Содержат предложно-падежные формы, отвечающие на соответствующие вопросы. Используются в основном для склонения географических названий, например:

<где> <куда> <откуда>
в Москве в Москву из Москвы
в Израиле в Израиль из Израиля
во Франции во Францию из Франции
на Урале на Урал с Урала

Разделение строки на фамилию, имя и отчество

Если входная строка распознана как ФИО, то функция declension выдает тег <ФИО>, содержащий разбивку строки на фамилию, имя и отчество:

http://ws3.morpher.ru/russian/declension?s=Александр%20Пушкин
  • <xml>
    • <Р>Александра Пушкина</Р>
    • <Д>Александру Пушкину</Д>
    • <В>Александра Пушкина</В>
    • <Т>Александром Пушкиным</Т>
    • <П>Александре Пушкине</П>
    • <ФИО>
      • <Ф>Пушкин</Р>
      • <И>Александр</И>
      • <О/>
    • </ФИО>
  • </xml>

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

Пропись чисел и согласование с числом (метод Spell)

Метод russian/spell (ukrainian/spell) решает две родственные задачи: получение прописи числа (тысяча сто двадцать пять) и согласование единицы измерения с предшествующем числом (1 попугай, 2 попугая, 5 попугаев):

http://ws3.morpher.ru/russian/spell?n=235&unit=рубль (ukrainian/spell)
  • <PropisResult>
    • <n>
      • <И>двести тридцать пять</И>
      • <Р>двухсот тридцати пяти</Р>
      • <Д>двумстам тридцати пяти</Д>
      • <В>двести тридцать пять</В>
      • <Т>двумястами тридцатью пятью</Т>
      • <П>двухстах тридцати пяти</П>
    • </n>
    • <unit>
      • <И>рублей</И>
      • <Р>рублей</Р>
      • <Д>рублям</Д>
      • <В>рублей</В>
      • <Т>рублями</Т>
      • <П>рублях</П>
    • </unit>
  • </PropisResult>
  • <PropisUkrResult>
    • <n>
      • <Н>двісті тридцять п'ять</Н>
      • <Р>двохсот тридцяти п'яти</Р>
      • <Д>двомстам тридцяти п'яти</Д>
      • <З>двісті тридцять п'ять</З>
      • <О>двомастами тридцятьма п'ятьма</О>
      • <М>двохстах тридцяти п'яти</М>
    • </n>
    • <unit>
      • <Н>рублів</Н>
      • <Р>рублів</Р>
      • <Д>рублям</Д>
      • <З>рублів</З>
      • <О>рублями</О>
      • <М>рублях</М>
    • </unit>
  • </PropisUkrResult>

Комбинируя соответствующие падежные формы n и unit, можно получить вывод «суммы прописью» на любой вкус:

  • 235 рублей
  • Двести тридцать пять рублей
  • 235 (двести тридцать пять) рублей и т.п.

Комбинировать имеет смысл только соответствующие падежные формы n и unit – именительный с именительным, родительный с родительным и т.д. Например, для получения фразы "в размере N рублей (долларов, евро...)", берем родительный падеж (<Р>): в размере + двухсот тридцати пяти + рублей.

См. также примеры в описании функции Пропись из Morpher.dll для .NET, которая лежит в основе этого веб-сервиса.

Склонение прилагательных по родам

Функция russian/genders склоняет данное ей прилагательное, преобразуя его из мужского рода в женский, средний и во множественное число:

http://ws3.morpher.ru/russian/genders?s=уважаемый
  • <AdjectiveGenders>
    • <feminine>уважаемая</feminine>
    • <neuter>уважаемое</neuter>
    • <plural>уважаемые</plural>
  • </AdjectiveGenders>

Требования к входному прилагательному:

  • Оно должно быть в мужском роде, в единственном числе.
  • Оно должно быть полным, т.е. "полный", а не "полон".
  • Оно должно быть одним словом.

Данная функция может быть использована для построения таких фраз как:

  • Уважаемый Игорь Иванович
  • Уважаемая Анастасия Петровна
  • в лице директора Петрова А.В., действующего на основании...
  • в лице директора Петровой А.В., действующей на основании...

где род прилагательного (уважаемый) или причастия (действующий) связан с полом названного лица. Пол можно определить с помощью функции определения рода (пола).

Функция образования прилагательных russian/adjectivize

Функция GetAdjectives образует прилагательные от названий городов и стран: Москва – московский, Ростов – ростовский, Швеция – шведский, Греция – грецкий греческий.

Пример вызова функции: http://ws3.morpher.ru/russian/adjectivize?s=Мытищи

Функция возвращает массив строк. Что они означают, описано здесь.

Выбор формата ответа (XML или JSON)

Веб-сервис позволяет получить ответ в формате XML или JSON. Указать формат ответа можно:

По умолчанию возвращается XML.

Обработка ошибок

В случае ошибки веб-сервис возвращает код ошибки и текстовое сообщение. Пример запроса и ответа:

http://ws3.morpher.ru/russian/declension?s=waffle
  • <error>
    • <code>5</code>
    • <message>Не найдено русских слов.</message>
  • </error>

Cписок кодов ошибок:

Код Значение
1 Превышен лимит на количество запросов в сутки. Перейдите на следующий тарифный план.
3 IP заблокирован.
4 Склонение числительных в declension не поддерживается. Используйте метод spell.
5 Не найдено русских слов.
6 Не указан обязательный параметр s.
7 Необходимо оплатить услугу.
9 Данный token не найден.
10 Неверный формат токена.

Исправление ошибок склонения

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

К счастью, мы живем в эру интернета и можем решить эту задачу сообща. Никто не призывает вас исправлять ошибки по восемь часов в день. Но если вы встретили ошибку в склонении, вы можете легко ее исправить на странице исправления ошибок. Более того, веб-сервис сразу же начнет выдавать новое склонение, но только для вас. Остальные пользователи увидят ваше исправление, как только его проверит модератор. Для этого вы должны быть зарегистрированным пользователем. Это бесплатно.

Ограничения бесплатной версии

Бесплатное использование веб-сервиса имеет следующие ограничения:

  • Отсутствуют теги <П-о>, <где>, <куда>, <откуда> и <род>.
  • Максимум 1000 запросов в сутки. Это число может быть изменено в будущем – следите за сообщениями внизу данной страницы. Функция get_queries_left_for_today возвращает остаток запросов на данный момент.
  • Лимит на запросы восстанавливается в 00:00 UTC.

Платный доступ

Если вам нужно склонение больших объемов, зарегистрируйтесь и оплатите подходящий вам тарифный план:

  • Тариф «Бейсик» – снимаются только ограничения на теги, до 1000 запросов в сутки, 450 руб/мес.
  • Тариф «Профессионал» – снимаются ограничения на теги, до 10 000 запросов в сутки, 750 руб/мес.
  • Тариф «Анлимитед» – без ограничений, 1500 руб/мес.

Чтобы стать платным пользователем, вам нужно:

Регистрация

Зачем нужна регистрация? Даже если вы пользуетесь веб-сервисом бесплатно, вам все равно рекомендуется зарегистрироваться, потому что:

  • Зарегистрированные пользователи имеют возможность исправлять ошибки склонения.
  • Регистрация поможет вам избежать неожиданной блокировки сервиса. Дело в том, что при отсутствии в запросе логина веб-сервис считает всех пользователей с одним внешним IP одним пользователем, что может привести к скорому исчерпанию лимита на количество запросов в сутки. Этой проблемы можно избежать, просто зарегистрировавшись и добавив в запрос ваш токен.

Передача веб-сервису токена

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

  • Добавить к строке запроса параметр token:

    http://ws3.morpher.ru/russian/declension?s=Мальдивы&token=C6F4FAA1-E738-4D94-95D4-71A0F6C6813C

  • При помощи базовой аутентификации HTTP. Для этого к запросу добавляется HTTP-заголовок вида:
    Authorization: Basic QzZGNEZBQTEtRTczOC00RDk0LTk1RDQtNzFBMEY2QzY4MTNDCg==
    Токен передается в виде строки закодированной алгоритмом BASE-64.

Новости

Получать новости о веб-сервисе склонения можно через эту группу.



 

Библиотеки

Заметили опечатку? Выделите слово мышкой и нажмите Ctrl-Enter. Система Orphus

© Сергей Слепов, 2003 - 2017. Перепечатка материалов сайта только с разрешения автора.