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

Веб-сервис склонения «Морфер»

Внимание! Это устаревшая версия веб-сервиса, новая версия здесь.

Веб-сервис предназначен для склонения слов и словосочетаний на русском языке.

Подробнее о технологии склонения

Пример вызова через HTTP GET:

http://morpher.ru/Webservices/Morpher.asmx/
GetForms?s=%d0%92%d0%b0%d1%81%d1%8f+
%d0%9f%d1%83%d0%bf%d0%ba%d0%b8%d0%bd

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

В ответ получаем массив из 5 падежных форм:

  <?xml version="1.0" encoding="utf-8" ?>
  <ArrayOfString xmlns="http://morpher.ru/webservices/" ...>
0    <string>Васи Пупкина</string>
1    <string>Васе Пупкину</string>
2    <string>Васю Пупкина</string>
3    <string>Васей Пупкиным</string>
4    <string>Васе Пупкине</string>
 <ArrayOfString>

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

  <?xml version="1.0" encoding="utf-8" ?>
  <ArrayOfString xmlns="http://morpher.ru/webservices/" ...>
0    <string>яблока</string>
1    <string>яблоку</string>
2    <string>яблоко</string>
3    <string>яблоком</string>
4    <string>о яблоке</string>
5    <string>в яблоке</string>
6    <string>ЕдинСред</string>
7    <string>яблоки</string>
8    <string>яблок</string>
9    <string>яблокам</string>
10    <string>яблоки</string>
11    <string>яблоками</string>
12    <string>о яблоках</string>
13    <string>в яблоках</string>
 <ArrayOfString>

Возможные значения рода и числа (строка 6):

  • ЕдинМуж
  • ЕдинЖен
  • ЕдинСред
  • Множ

Если входное словосочетание не имеет множественного числа или уже стоит во множественном числе, то строки 7-13 будут отсутствовать, т.е. массив будет содержать всего 7 строк.

Предлог «о» (строки 4 и 12) когда нужно заменяется на «об» в соответствии с правилами русского языка («об апельсинах»).

Предлог «в» (строки 5 и 13) может заменяться предлогом «на» так, чтобы получившаяся падежная форма корректно отвечала на вопрос «где?»: в комнате – на кухне, на площади – в сквере, в Сибири – на Урале.

В случае ошибки в массиве будет одна строка – описание ошибки:

  <?xml version="1.0" encoding="utf-8" ?>
  <ArrayOfString xmlns="http://morpher.ru/webservices/" ...>
0    <string>Описание ошибки.</string>
 <ArrayOfString>

Тестовая форма и подробное описание форматов сообщений для вызовов через HTTP GET, HTTP POST и HTTP SOAP:

http://morpher.ru/webservices/Morpher.asmx?op=GetForms

Согласование с числом

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

Число Единица измерения Результат
5 комментарий комментариев
3 новое письмо новых письма
100 доллар США долларов США
Форма онлайн-тестирования функции согласования с числом

В API веб-сервиса эта функция называется Soglasovat.

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

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

  • Максимум 1000 запросов в сутки. Эта число может быть изменено в будущем – следите за сообщениями внизу данной страницы. Функция GetDailyQueryLimit возвращает действующее на данный момент значение.
  • Максимум 100 одинаковых запросов в сутки. Данное ограничение не действует на запросы с параметром s равным "тест".

Зарегистрированные пользователи этих ограничений не имеют.

Работа с веб-сервисом из C#

Пошаговая инструкция создания минимальной программы на C#, использующей веб-сервис, при помощи Visual Studio 2005/2008/2010:

  • Создайте проект Console Application с названием WebServiceSample.

  • Добавьте в проект Web Reference:

    • Кликните правой кнопкой на проекте, выберите Add Web Reference.

    • В открывшемся диалоге введите URL:
      http://morpher.ru/webservices/Morpher.asmx

    • Нажмите Add Reference.

  • Вставьте в Program.cs следующий код:

     
    using System;
     
    namespace WebServiceSample
    {
        using ru.morpher;
     
        static class Program
        {
            static void Main ()
            {
                foreach (string s in new Morpher ().GetForms ("привет"))
                {
                    Console.WriteLine (s);
                }
            }
        }
    }

  • Запустите проект (Ctrl-F5).

Пример на Delphi

    ShowMessage (UTF8toAnsi (IDHttp1.Get (
        'http://morpher.ru/Webservices/Morpher.asmx/GetForms?s='
        + AnsiToUTF8 ('слово'))));

За пример спасибо пользователю AlDelta.



 

Библиотеки

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

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