Веб‑сервіс «Морфер» 3.0
Веб‑сервіс призначений для відмінювання слів і словосполучень
українською та казахською мовами.
Він безкоштовний (з обмеженнями),
а для великих обсягів є платний доступ.
Веб‑сервіс реалізує такі функції:
Російською мовою:
Українською мовою:
Казахською мовою:
Також на цій сторінці:
Якщо з якоїсь причини для вас недоступний ws3.morpher.ua,
спробуйте дзеркало
ws3.morpher.me.
Відмінювання за відмінками російською мовою
Приклад виклику функції відмінювання через HTTP GET:
https://ws3.morpher.ua/russian/declension?s=Соединенное%20королевство
У відповідь отримаємо:
<xml>
<Р>Соединенного королевства</Р>
<Д>Соединенному королевству</Д>
<В>Соединенное королевство</В>
<Т>Соединенным королевством</Т>
<П>Соединенном королевстве</П>
<П_о>о Соединенном королевстве</П_о>
<род>Средний</род> <!-- [Тег <род>](#rod) -->
<множественное>
<И>Соединенные королевства</И>
<Р>Соединенных королевств</Р>
<Д>Соединенным королевствам</Д>
<В>Соединенные королевства</В>
<Т>Соединенными королевствами</Т>
<П>Соединенных королевствах</П>
<П_о>о Соединенных королевствах</П_о>
</множественное>
<где>в Соединенном королевстве</где> <!-- [Теги <где>, <куда> і <откуда>](#locative) -->
<куда>в Соединенное королевство</куда>
<откуда>из Соединенного королевства</откуда>
</xml>
XSD відповіді
У разі JSON‑запиту:
{
"Р": "Соединенного королевства",
"Д": "Соединенному королевству",
"В": "Соединенное королевство",
"Т": "Соединенным королевством",
"П": "Соединенном королевстве",
"П_о": "о Соединенном королевстве",
"род": "Средний",
"множественное" : {
"И": "Соединенные королевства",
"Р": "Соединенных королевств",
"Д": "Соединенным королевствам",
"В": "Соединенные королевства",
"Т": "Соединенными королевствами",
"П": "Соединенных королевствах",
"П_о": "о Соединенных королевствах",
},
"где": "в Соединенном королевстве",
"куда": "в Соединенное королевство",
"откуда": "из Соединенного королевства"
}
s – рядок для відмінювання – має бути в кодуванні UTF‑8
і перед вставленням до URL має бути закодований за допомогою
URL Encoding.
Якщо слово не має якоїсь форми, відповідний тег буде порожнім, наприклад:
теля,
мзда.
Якщо слово не має множини або воно вже у множині, тег <множественное>
буде відсутній:
сутки,
ножницы.
Множина також не надається для прізвищ, імен та по батькові.
Тег <род>
містить автоматично визначений рід.
Можливі значення тега:
Тег <род>
доступний лише на
платних тарифах.
Якщо вхідне словосполучення стоїть у множині, тег буде порожнім:
<род/>
.
Прапорці для розв’язання неоднозначностей
Є слова, які можуть відмінюватися по‑різному, наприклад:
-
прізвище Резник російською мовою відмінюється у чоловіків і не відмінюється у жінок;
-
Ростов в орудному відмінку буде Ростовым, якщо це прізвище, і Ростовом, якщо це місто;
-
тестер у знахідному відмінку буде
тестера, якщо це людина, і
тестер, якщо мається на увазі прилад.
Для підвищення якості відмінювання
ви можете повідомити веб‑сервісу додаткову інформацію через прапорці:
Докладніше:
Зняття неоднозначності додатковими ознаками
Таблиця підтримуваних прапорців для russian/declension:
Прапорець
|
Опис
|
feminine |
Жіночий рід
|
masculine |
Чоловічий рід
|
animate |
Істота
|
inanimate |
Неістота
|
common |
Загальна назва
|
name |
ПІБ
|
Кілька прапорців можна передати через кому:
https://ws3.morpher.ua/russian/declension?s=Слепов Сергей Николаевич&flags=name,masculine
Місцевий відмінок
Місцевий відмінок подано у трьох варіантах:
-
<П>
— без прийменника
-
<П_о>
— з прийменником «о/об/обо», прийменник обирається автоматично
-
<где>
— з прийменником В/ВО/НА: в Москве, во Франции, в Крыму, на Урале.
Рекомендації щодо вибору варіанта місцевого відмінка
Теги <где>, <куда> і <откуда>
Містять прийменниково‑відмінкові форми, що відповідають на відповідні запитання. Використовуються переважно для відмінювання географічних назв, наприклад:
<где> |
<куда> |
<откуда> |
в Москве |
в Москву |
из Москвы |
в Израиле |
в Израиль |
из Израиля |
во Франции |
во Францию |
из Франции |
на Урале |
на Урал |
с Урала |
Розподіл рядка на прізвище, ім’я та по батькові
Якщо вхідний рядок розпізнано як ПІБ, то функція declension видає тег <ФИО>
,
що містить розбиття рядка на прізвище, ім’я та по батькові:
https://ws3.morpher.ua/russian/declension?s=Александр%20Пушкин
<xml>
<Р>Александра Пушкина</Р>
<Д>Александру Пушкину</Д>
<В>Александра Пушкина</В>
<Т>Александром Пушкиным</Т>
<П>Александре Пушкине</П>
<ФИО>
<Ф>Пушкин</Ф>
<И>Александр</И>
<О/>
</ФИО>
</xml>
Ім’я, по батькові та прізвище можуть фігурувати у вхідному рядку в будь‑якому порядку.
Якщо якийсь із цих компонентів відсутній, відповідний тег буде порожнім
(як <О/>
у прикладі вище).
Функція russian/declension може повертати такі помилки
(див. також Обробка помилок):
Код |
Статус |
Значение |
Пример |
4 |
495 |
Склонение числительных в declension не поддерживается. Используйте метод spell. |
?s=три |
5 |
496 |
Не найдено русских слов. |
?s=waffle |
6 |
400 |
Не указан обязательный параметр: s. |
?s= |
12 |
494 |
Указаны неправильные флаги. |
?s=кошка&flags=invalid |
Прописом чисел та узгодження з числом (spell)
Функція russian/spell вирішує дві споріднені задачі:
отримання запису числа словами (тисяча сто двадцять п’ять)
та узгодження одиниці виміру з попереднім числом (1 папуга, 2 папуги, 5 папуг):
https://ws3.morpher.ua/russian/spell?n=235&unit=рубль
<PropisResult>
<n>
<И>двести тридцать пять</И>
<Р>двухсот тридцати пяти</Р>
<Д>двумстам тридцати пяти</Д>
<В>двести тридцать пять</В>
<Т>двумястами тридцатью пятью</Т>
<П>двухстах тридцати пяти</П>
</n>
<unit>
<И>рублей</И>
<Р>рублей</Р>
<Д>рублям</Д>
<В>рублей</В>
<Т>рублями</Т>
<П>рублях</П>
</unit>
</PropisResult>
XSD відповіді
Комбінуючи відповідні відмінкові форми n і unit, можна отримати вивід «суми прописом» на будь‑який смак:
-
235 рублів
-
Двісті тридцять п’ять рублів
-
235 (двісті тридцять п’ять) рублів тощо
Комбінувати має сенс лише відповідні відмінкові форми n і unit —
називний з називним, родовий з родовим тощо.
Наприклад, щоб отримати фразу «в размере N рублей (долларов, евро...)»,
беремо родовий відмінок (<Р>
):
в размере + двухсот тридцати пяти + рублей.
Див. також приклади в описі функції Пропись
із Morpher.dll для .NET, яка лежить в основі цього веб‑сервісу.
Функція russian/spell може повертати такі помилки:
Прописом порядкових числівників (spell-ordinal)
Функція russian/spell-ordinal подібна до функції russian/spell, але повертає запис числа у формі порядкового числівника:
https://ws3.morpher.ua/russian/spell-ordinal?n=5&unit=колесо
<PropisResult>
<n>
<И>пятое</И>
<Р>пятого</Р>
<Д>пятому</Д>
<В>пятое</В>
<Т>пятым</Т>
<П>пятом</П>
</n>
<unit>
<И>колесо</И>
<Р>колеса</Р>
<Д>колесу</Д>
<В>колесо</В>
<Т>колесом</Т>
<П>колесе</П>
</unit>
</PropisResult>
XSD відповіді
Функція russian/spell-ordinal може повертати такі помилки:
Прописом дат (spell-date)
Функція russian/spell-date відмінює за відмінками дату, задану у форматі РРРР‑ММ‑ДД:
https://ws3.morpher.ua/russian/spell-date?date=2019-06-29
<PropisResult>
<И>двадцать девятое июня две тысячи девятнадцатого года</И>
<Р>двадцать девятого июня две тысячи девятнадцатого года</Р>
<Д>двадцать девятому июня две тысячи девятнадцатого года</Д>
<В>двадцать девятое июня две тысячи девятнадцатого года</В>
<Т>двадцать девятым июня две тысячи девятнадцатого года</Т>
<П>двадцать девятом июня две тысячи девятнадцатого года</П>
</PropisResult>
XSD відповіді
Функція russian/spell-date може повертати такі помилки:
Код |
Статус |
Значение |
Пример |
6 |
400 |
Не указан обязательный параметр: date. |
?date=+++ |
8 |
499 |
Дата указана в некорректном формате. |
?date=01-01-2020 |
Відмінювання прикметників за родами (russian/genders)
Функція russian/genders відмінює поданий їй прикметник, перетворюючи його з чоловічого роду на жіночий, середній та у множину:
https://ws3.morpher.ua/russian/genders?s=уважаемый
<AdjectiveGenders>
<feminine>уважаемая</feminine>
<neuter>уважаемое</neuter>
<plural>уважаемые</plural>
</AdjectiveGenders>
XSD відповіді
Вимоги до вхідного прикметника:
-
Воно має бути в чоловічому роді, в однині.
-
Воно має бути повним, тобто «повний», а не «повен».
-
Воно має бути одним словом. Усередині слова допустимі дефіс і апостроф:
рабоче-крестьянский, Кот-д'Ивуарский.
Навколо слова допустимі пробіли, лапки та інші знаки.
Якщо хоча б одна з цих вимог не виконується,
то функція повертає рядок ERROR
у всіх трьох тегах — feminine, neuter, plural.
Цю функцію можна використати для побудови таких фраз, як:
-
Шановний Ігоре Івановичу
-
Шановна Анастасіє Петрівно
-
в особі директора Петрова А.В., який діє на підставі...
-
в особі директора Петрової А.В., яка діє на підставі...
де рід прикметника (уважаемый) або дієприкметника (який/яка діє) пов’язаний зі статтю названої особи.
Стать можна визначити за допомогою функції визначення роду (статі).
Функція russian/genders може повертати такі помилки:
Код |
Статус |
Значение |
Пример |
6 |
400 |
Не указан обязательный параметр: s. |
?s=+++ |
Утворення прикметників від назв міст і країн (russian/adjectivize)
Функція adjectivize
утворює прикметники від назв міст і країн:
Москва – московський,
Ростов – ростовський,
Швеція – шведський,
Греція – грецкий грецький.
Приклад виклику функції:
https://ws3.morpher.ua/russian/adjectivize?s=Мытищи
XSD відповіді
Функція повертає масив рядків. Що вони означають, описано тут.
Функція russian/adjectivize може повертати такі помилки:
Код |
Статус |
Значение |
Пример |
6 |
400 |
Не указан обязательный параметр: s. |
?s=+++ |
Розстановка наголосів у текстах
POST-запрос russian/addstressmarks
расставляет ударения в текстах на русском языке:
Три деви́цы под окно́м
Пря́ли по́здно вечерко́м.
Ударение отмечается символом с кодом U+0301, который вставляется сразу после ударной гласной.
Односложные слова не получают знака ударения, за исключением случаев, когда предлог или частица
несет на себе ударение: за́ руку, не́ за что.
Варианты прочтения разделяются вертикальной чертой, например, предложение "Белки питаются белками"
превратится в "Бе́лки|Белки́ пита́ются бе́лками|белка́ми".
Текст посылается в теле запроса с заголовком Content-Type: text/plain; charset=utf-8
Результат возвращается в виде XML:
<?xml version="1.0" encoding="utf-8"?>
<string>Бале́т Петра́ Чайко́вского "Щелку́нчик"<string>
или JSON:
"Бале́т Петра́ Чайко́вского \"Щелку́нчик\""
Код |
Статус |
Значение |
6 |
400 |
Текст должен передаваться в теле запроса.
|
Тарификация этой функции имеет особенности.
Склонение по падежам на украинском языке
Эндпойнт ukrainian/declension предназначен для склонения ФИО на украинском:
GET https://ws3.morpher.ua/ukrainian/declension?s=Крутько%20Катерина%20Володимирiвна
В ответ получаем XML:
<GetXmlUkrResult>
<Р>Крутько Катерини Володимирівни</Р>
<Д>Крутько Катерині Володимирівні</Д>
<З>Крутько Катерину Володимирівну</З>
<О>Крутько Катериною Володимирівною</О>
<М>Крутько Катерині Володимирівні</М>
<К>Крутько Катерино Володимирівно</К>
<рід>Жіночий</рід> <!-- [Тег <рід>](#rid) -->
</GetXmlUkrResult>
XSD ответа
Или JSON (выбор формата ответа):
{
"Р": "Крутько Катерини Володимирівни",
"Д": "Крутько Катерині Володимирівні",
"З": "Крутько Катерину Володимирівну",
"О": "Крутько Катериною Володимирівною",
"М": "Крутько Катерині Володимирівні",
"К": "Крутько Катерино Володимирівно",
"рід": "Жіночий"
}
Множественное число не строится.
Тег <рід>
содержит автоматически определенный род.
Возможные значения тега:
Средний род пока не поддерживается.
Прапорці для розв’язання неоднозначностей
Є слова, які можуть відмінюватися по‑різному, наприклад,
прізвище Мельник відмінюється у чоловіків і не відмінюється у жінок.
Для підвищення якості відмінювання
ви можете повідомити веб‑сервісу додаткову інформацію через прапорці:
Таблиця підтримуваних прапорців для ukrainian/declension:
Прапорець
|
Опис
|
feminine |
Жіночий рід
|
masculine |
Чоловічий рід
|
Функція ukrainian/declension може повертати такі помилки:
Код |
Статус |
Значение |
Пример |
5 |
496 |
Не найдено украинских слов. |
?s=waffle |
6 |
400 |
Не указан обязательный параметр: s. |
?s= |
12 |
494 |
Указаны неправильные флаги. |
?s=кішка&flags=invalid |
Пропись чисел и согласование с числом (ukrainian/spell)
Функция (ukrainian/spell) решает две родственные задачи:
получение прописи числа (тысяча сто двадцать пять)
и согласование единицы измерения с предшествующим числом (1 попугай, 2 попугая, 5 попугаев):
https://ws3.morpher.ua/ukrainian/spell?n=235&unit=рубль
<PropisUkrResult>
<n>
<Н>двісті тридцять п'ять</Н>
<Р>двохсот тридцяти п'яти</Р>
<Д>двомстам тридцяти п'яти</Д>
<З>двісті тридцять п'ять</З>
<О>двомастами тридцятьма п'ятьма</О>
<М>двохстах тридцяти п'яти</М>
<К>двісті тридцять п'ять</К>
</n>
<unit>
<Н>рублів</Н>
<Р>рублів</Р>
<Д>рублям</Д>
<З>рублів</З>
<О>рублями</О>
<М>рублях</М>
<К>рублів</К>
</unit>
</PropisUkrResult>
XSD ответа
Комбинируя соответствующие падежные формы n и unit,
можно получить вывод «суммы прописью» на любой вкус:
- 235 рублів
- Двісті тридцять п'ять рублів
- 235 (двісті тридцять п'ять) рублів и т.п.
Комбинировать имеет смысл только соответствующие падежные формы n и unit –
именительный с именительным, родительный с родительным и т.д.
Например, для получения фразы «у розмірі N рублів (доларів, євро...)»,
берем родительный падеж (<Р>
):
у розмірі + двохсот тридцяти п’яти + рублів.
Функция ukrainian/spell может возвращать следующие ошибки:
Код |
Статус |
Значение |
Пример |
6 |
400 |
Не указан обязательный параметр: unit. |
?n=100&unit=+++ |
Склонение по падежам, числам и лицам на казахском языке
https://ws3.morpher.ua/qazaq/declension?s=бас%20маманы
<declension xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<A>бас маман</A>
<І>бас маманның</І>
<Б>бас маманға</Б>
<Т>бас маманды</Т>
<Ш>бас маманнан</Ш>
<Ж>бас маманда</Ж>
<К>бас маманмен</К>
<менің>
<A>бас маманым</A>
<І>бас маманымның</І>
<Б>бас маманыма</Б>
<Т>бас маманымды</Т>
<Ш>бас маманымнан</Ш>
<Ж>бас маманымда</Ж>
<К>бас маманыммен</К>
</менің>
<сенің>
<A>бас маманың</A>
<І>бас маманыңның</І>
<Б>бас маманыңа</Б>
<Т>бас маманыңды</Т>
<Ш>бас маманыңнан</Ш>
<Ж>бас маманыңда</Ж>
<К>бас маманыңмен</К>
</сенің>
<сіздің>
<A>бас маманыңыз</A>
<І>бас маманыңыздың</І>
<Б>бас маманыңызға</Б>
<Т>бас маманыңызды</Т>
<Ш>бас маманыңыздан</Ш>
<Ж>бас маманыңызда</Ж>
<К>бас маманыңызбен</К>
</сіздің>
<оның>
<A>бас маманы</A>
<І>бас маманының</І>
<Б>бас маманына</Б>
<Т>бас маманын</Т>
<Ш>бас маманынан</Ш>
<Ж>бас маманында</Ж>
<К>бас маманымен</К>
</оның>
<біздің>
<A>бас маманымыз</A>
<І>бас маманымыздың</І>
<Б>бас маманымызға</Б>
<Т>бас маманымызды</Т>
<Ш>бас маманымыздан</Ш>
<Ж>бас маманымызда</Ж>
<К>бас маманымызбен</К>
</біздің>
<сендердің>
<A>бас мамандарың</A>
<І>бас мамандарыңның</І>
<Б>бас мамандарыңа</Б>
<Т>бас мамандарыңды</Т>
<Ш>бас мамандарыңнан</Ш>
<Ж>бас мамандарыңда</Ж>
<К>бас мамандарыңмен</К>
</сендердің>
<сіздердің>
<A>бас мамандарыңыз</A>
<І>бас мамандарыңыздың</І>
<Б>бас мамандарыңызға</Б>
<Т>бас мамандарыңызды</Т>
<Ш>бас мамандарыңыздан</Ш>
<Ж>бас мамандарыңызда</Ж>
<К>бас мамандарыңызбен</К>
</сіздердің>
<олардың>
<A>бас мамандары</A>
<І>бас мамандарының</І>
<Б>бас мамандарына</Б>
<Т>бас мамандарын</Т>
<Ш>бас мамандарынан</Ш>
<Ж>бас мамандарында</Ж>
<К>бас мамандарымен</К>
</олардың>
<көпше>
<A>бас мамандар</A>
<І>бас мамандардың</І>
<Б>бас мамандарға</Б>
<Т>бас мамандарды</Т>
<Ш>бас мамандардан</Ш>
<Ж>бас мамандарда</Ж>
<К>бас мамандармен</К>
<менің>
<A>бас мамандарым</A>
<І>бас мамандарымның</І>
<Б>бас мамандарыма</Б>
<Т>бас мамандарымды</Т>
<Ш>бас мамандарымнан</Ш>
<Ж>бас мамандарымда</Ж>
<К>бас мамандарыммен</К>
</менің>
<сенің>
<A>бас мамандарың</A>
<І>бас мамандарыңның</І>
<Б>бас мамандарыңа</Б>
<Т>бас мамандарыңды</Т>
<Ш>бас мамандарыңнан</Ш>
<Ж>бас мамандарыңда</Ж>
<К>бас мамандарыңмен</К>
</сенің>
<сіздің>
<A>бас мамандарыңыз</A>
<І>бас мамандарыңыздың</І>
<Б>бас мамандарыңызға</Б>
<Т>бас мамандарыңызды</Т>
<Ш>бас мамандарыңыздан</Ш>
<Ж>бас мамандарыңызда</Ж>
<К>бас мамандарыңызбен</К>
</сіздің>
<оның>
<A>бас мамандары</A>
<І>бас мамандарының</І>
<Б>бас мамандарына</Б>
<Т>бас мамандарын</Т>
<Ш>бас мамандарынан</Ш>
<Ж>бас мамандарында</Ж>
<К>бас мамандарымен</К>
</оның>
<біздің>
<A>бас мамандарымыз</A>
<І>бас мамандарымыздың</І>
<Б>бас мамандарымызға</Б>
<Т>бас мамандарымызды</Т>
<Ш>бас мамандарымыздан</Ш>
<Ж>бас мамандарымызда</Ж>
<К>бас мамандарымызбен</К>
</біздің>
<сендердің>
<A>бас мамандарың</A>
<І>бас мамандарыңның</І>
<Б>бас мамандарыңа</Б>
<Т>бас мамандарыңды</Т>
<Ш>бас мамандарыңнан</Ш>
<Ж>бас мамандарыңда</Ж>
<К>бас мамандарыңмен</К>
</сендердің>
<сіздердің>
<A>бас мамандарыңыз</A>
<І>бас мамандарыңыздың</І>
<Б>бас мамандарыңызға</Б>
<Т>бас мамандарыңызды</Т>
<Ш>бас мамандарыңыздан</Ш>
<Ж>бас мамандарыңызда</Ж>
<К>бас мамандарыңызбен</К>
</сіздердің>
<олардың>
<A>бас мамандары</A>
<І>бас мамандарының</І>
<Б>бас мамандарына</Б>
<Т>бас мамандарын</Т>
<Ш>бас мамандарынан</Ш>
<Ж>бас мамандарында</Ж>
<К>бас мамандарымен</К>
</олардың>
</көпше>
</declension>
Функция qazaq/declension может возвращать следующие коды ошибок:
Код |
Статус |
Значение |
Пример |
6 |
400 |
Не указан обязательный параметр: s. |
?s=+++ |
5 |
496 |
Не найдено казахских слов. |
?s=waffle |
Пропись чисел на казахском языке
Пример запроса:
https://ws3.morpher.ua/qazaq/spell?n=111&useOne=false
Пример ответа:
<string>жүз он бір</string>
Параметр useOne указывает, следует ли выдавать слово бір (один) в начале,
если речь идет об одной сотне, одной тысяче и т.д.
По умолчанию true:
https://ws3.morpher.ua/qazaq/spell?n=111
<string>бір жүз он бір</string>
Образование порядковых числительных на казахском языке
Функция преобразует количественные числительные (бір — один) в порядковые (бірінші — первый).
Пример запроса:
https://ws3.morpher.ua/qazaq/ordinal?cardinal=бір
Пример ответа:
<string>бірінші</string>
Пропись дат на казахском языке
Пример запроса:
https://ws3.morpher.ua/qazaq/spell-date?date=2011-11-11
Пример ответа:
<string>екі мың он бірінші жылғы он бірінші қараша</string>
Пропись числа и месяца на казахском языке
Пример запроса:
https://ws3.morpher.ua/qazaq/spell-day-month?day=8&month=3
Пример ответа:
<string>наурыздың сегізі</string>
Веб-сервис позволяет получить ответ в формате XML или JSON. Указать формат ответа можно:
По умолчанию возвращается XML.
Обработка ошибок
В случае ошибки веб-сервис возвращает код ошибки и текстовое сообщение.
Пример запроса и ответа:
https://ws3.morpher.ua/russian/declension?s=waffle
<error>
<code>5</code>
<message>Не найдено русских слов.</message>
</error>
XSD ответа
Следующие ошибки может вернуть любая функция сервиса "Морфер":
Код |
Статус |
Значение |
1 |
402 |
Превышен лимит на количество запросов в сутки. Перейдите на следующий тарифный план. |
3 |
403 |
IP заблокирован. |
9 |
498 |
Данный токен не найден. |
10 |
497 |
Неверный формат токена. |
Кроме того, отдельные функции могут возвращать специфичные для них ошибки.
Исправление ошибок склонения
В программу склонения вложены годы программирования и несколько многотысячных словарей.
Однако одних только географических названий существуют миллионы, не говоря о личных именах, названиях фирм, торговых марок и других именах собственных.
Далеко не все слова и словосочетания подчиняются общим закономерностям и учет нюансов склонения различных наименований – задача весьма трудоемкая.
Просто просмотреть один миллион слов и при необходимости исправить ошибки склонения (в среднем, скажем, по одной минуте на слово) займет более 10 лет работы одного человека (8-часовой рабочий день, 5 рабочих дней в неделю).
К счастью, мы живем в эру интернета и можем решить эту задачу сообща. Никто не призывает вас исправлять ошибки по восемь часов в день.
Но если вы встретили ошибку в склонении, вы можете легко ее исправить на странице исправления ошибок.
Более того, веб-сервис сразу же начнет выдавать новое склонение, но только для вас.
Остальные пользователи увидят ваше исправление, как только его проверит модератор.
Для этого вы должны быть зарегистрированным пользователем. Это бесплатно.
Страница «Работа над ошибками»
Пользовательский словарь (russian/userdict, ukrainian/userdict)
Веб-сервис поддерживает исправление склонения по требованию пользователя.
Для этого имеются 3 метода:
Функция |
Метод |
Значение |
/russian/userdict
/ukrainian/userdict
|
[GET] |
Получить список всех добавленных исправлений |
/russian/userdict
/ukrainian/userdict |
[POST] |
Добавить или изменить исправление |
/russian/userdict
/ukrainian/userdict |
[DELETE] |
Удалить исправление |
Все функции пользовательского словаря требуют указания токена
и при его отсутствии возвращают ошибку с кодом 25 и статусом 400 или ошибку с кодом 9 и статусом 498, если указанный токен не найден.
Исправления видны только пользователю с указанным токеном.
Добавить или изменить исправление [POST]
Для добавления или изменения исправления нужно отправить POST запрос на /russian/userdict
(/ukrainian/userdict для украинского языка соответственно).
Тело запроса должно быть представлено в формате
application/x-www-form-urlencoded,
который используется по умолчанию для POST-запросов.
Например, если мы хотим изменить дательный падеж для слова "Кошка",
то тело запроса будет иметь вид:
Для русского языка:
И=Кошка&Д=Пантере
Для украинского языка:
Н=Кiшка&Д=Пантерi
Для добавления исправления обязательно нужно указывать именительный падеж и хотя бы еще одну падежную форму.
Названия параметров (russian/userdict)
Параметр |
Падеж |
И |
Именительный |
Р |
Родительный |
Д |
Дательный |
В |
Винительный |
Т |
Творительный |
П |
Предложный с предлогом О/ОБ/ОБО или без |
М |
Местный без предлога |
М_И |
Именительный (множественное число) |
М_Р |
Родительный (множественное число) |
М_Д |
Дательный (множественное число) |
М_В |
Винительный (множественное число) |
М_Т |
Творительный (множественное число) |
М_П |
Предложный (множественное число) с предлогом О/ОБ/ОБО или без |
М_М |
Местный (множественное число) без предлога |
Названия параметров (ukrainian/userdict)
Параметр |
Падеж |
Н |
Називний |
Р |
Родовий |
Д |
Давальний |
З |
Знахiдний |
О |
Орудний |
М |
Мiсцевий |
К |
Кличний |
Повторный вызов метода с уже существующим исправлением добавит или изменит текущее исправление.
Если мы захотим к нашему исправлению "Кошка" добавить еще родительный падеж, нам достаточно будет передать "И=Кошка&Р=Пантеры".
В итоге останется старое исправление на дательный падеж и добавится новое на родительный.
Если мы вызовем метод еще раз с дательным или родительным падежом, мы изменим текущее исправление для этих падежей.
Метод POST может возвращать следующие ошибки:
Код |
Статус |
Значение |
6 |
400 |
Не указан обязательный параметр: И. |
6 |
400 |
Нужно указать хотя бы одну косвенную форму. |
Получить список исправлений [GET]
Для того чтобы получить список всех исправлений, нужно послать GET запрос на
/russian/userdict
или
/ukrainian/userdict, указав токен.
Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<dictionary>
<Entry>
<singular>
<И>Кошка</И>
<Р>Пантеры</Р>
<Д>Пантере</Д>
</singular>
</Entry>
<dictionary>
XSD схема ответа на russian/userdict
: Russian.xsd
XSD схема ответа на ukrainian/userdict
: Ukrainian.xsd
Удаление исправления [DELETE]
Для того чтобы удалить исправление, достаточно передать DELETE запрос вида:
/russian/userdict?s="Строка в именительном падеже"
Например, чтобы удалить все исправления для слова "Кошка", нужно передать:
/russian/userdict?s=Кошка
Для украинского языка:
/ukrainian/userdict?s=Кiшка
Метод DELETE может возвращать следующие ошибки:
Код |
Статус |
Значение |
6 |
400 |
Не указан обязательный параметр: s. |
Ограничения бесплатной версии
Бесплатное использование веб-сервиса имеет следующие ограничения:
- Отсутствуют теги
<П_о>
, <где>
, <куда>
, <откуда>
и <род>.
- Максимум 100 запросов в сутки.
Лимит на запросы восстанавливается в 00:00 UTC.
Функция get-queries-left возвращает остаток запросов на данный момент.
Платный доступ
Если вам нужно склонение больших объемов, зарегистрируйтесь и оплатите подходящий вам тарифный план:
Примечание 1: при оплате любого тарифа снимаются ограничения на тэги.
Примечание 2: тарификация функции russian/addstressmarks
осуществляется по следующему принципу:
каждые 20 символов исходного текста эквивалентны 1 запросу. Если в теле вызова функции russian/addstressmarks указан текст,
длиной до 20 символов, то такой вызов функции russian/addstressmarks считается эквивалентным 1 запросу к веб-сервису.
Здесь под символом текста подразумеваются не только буквы русского алфавита, но также любые цифры, знаки препинания, пробелы, прочие знаки и буквы других алфавитов.
При этом следует иметь в виду, что один перенос текста на новую строку может являться двумя символами, если он передан в Windows-стиле, т.е. как пара символов CR LF (см. статью в Википедии на эту тему).
Чтобы стать платным пользователем, вам нужно:
Регистрация
Зачем нужна регистрация? Даже если вы пользуетесь веб-сервисом бесплатно, вам все равно рекомендуется зарегистрироваться, потому что:
- Зарегистрированные пользователи имеют возможность исправлять ошибки склонения.
- Регистрация поможет вам избежать неожиданной блокировки сервиса.
Дело в том, что при отсутствии в запросе токена веб-сервис считает всех пользователей с одним внешним IP одним пользователем,
что может привести к скорому исчерпанию лимита на количество запросов в сутки.
Этой проблемы можно избежать, просто зарегистрировавшись и добавив в запрос ваш токен.
Передача веб-сервису токена
Чтобы индентифицировать себя как зарегистрированного пользователя, необходимо передать веб-сервису токен,
который вы можете получить в личном кабинете. Есть два способа это сделать:
Вызов веб-сервиса из различных языков программирования
Python
Node.js
PHP
.NET (C#)
Java
1С
-
Поддержка веб-сервиса «Морфер.ру» встроена в Платформу 1С.
Для ее активации достаточно поставить галочку в настройках:
видео.
-
В некоторых случаях вам может потребоваться написать код на
языке 1С для вызова функций веб-сервиса.
Как это сделать, описано в
этой статье
на infostart.ru.
- Другие варианты
Новости
Получать новости о веб-сервисе склонения можно через наш Телеграм-канал.
(Раньше работала Google-группа.)