morpher.ru 8 (499) 647 86 54
nowhere@morpher.ru
 
 

Описание возможностей программы

Программа «Морфер» предназначена для склонения слов и словосочетаний на русском языке. Учитывает множество синтаксических конструкций, включая ФИО и произвольные именные словосочетания. Например:

По данной форме именительного падежа строятся формы всех остальных падежей единственного и множественного числа.

Достоинства

  • Скорость – основное преимущество компьютера перед человеком. Любой русский справится с задачей склонения, но не со скоростью несколько тысяч ФИО в секунду.
  • Простота. Программисту не нужно задумываться о выборе подходящей функции склонения. Одна и та же функция используется для всех типов словосочетаний: ФИО, фамилия с инициалами, должности, названия отделов, географические названия... со всем справляется одна функция.
  • Полнота охвата лексики. Программа учитывает особенности склонения большинства общеизвестных слов, сама распознает их род и одушевленность. В ходе работы над программой созданы не имеющие аналогов морфологические словари личных имен и географических названий.
  • Склонение «по аналогии». Малоизвестные и придуманные слова программа способна просклонять по аналогии с известными ей словами. В большинстве случаев результат совпадает с ожидаемым.
  • Корректная работа с буквой Ё. Пользователь может ставить или не ставить точки над Ё по своему усмотрению – программа примет любой вариант. В то же время, программа различает случаи, когда точки над Ё имеют значение. Например, слова все и всё, пометы и помёты, Королева и Королёва склоняются по-разному. При этом если дан контекст, позволяющий различить омографы, то программа это с успехом делает. Сравните: все наше и все наши.
  • Исправление латинских букв. Если вы случайно в фамилии Сидоров наберете латинскую букву C, программу это не смутит, и при склонении она будет заменена на русскую С. Преобразование в именительный падеж можно использовать для замены латинских букв на похожие по начертанию русские. Правда, иногда программа может перестараться. Например, английское слово HACK она просклоняла НАСКИ, НАСКОВ, НАСКАМИ, О НАСКАХ...
  • Полная поддержка Юникода. «Понимает» различные виды кавычек, дефисов, тире и даже греческие буквы, например: β-версия, γ-излучение.

Ограничения

  • При попытке просклонять принципиально несклоняемое слово (например, глагол) программа не выдает ошибку, а пытается просклонять его как сможет: например, глагол давать программа может просклонять подобно существительному кровать.
  • Не реализовано склонение числительных (три кота), однако есть функция преобразования числа, заданного цифрами, в пропись и склонения его вместе с единицей измерения, что позволяет при заданном количестве (3) и единице измерения (кот) получить словосочетание три кота, трёх котов, трём котам и т.д. во всех падежах.
  • Для ФИО формы множественного числа не выдаются.
  • Не всегда правильно склоняются словосочетания с наречиями (в будущем планируется устранить это ограничение).
  • Могут неправильно склоняться словосочетания с причастными оборотами: жаренная на масле картошка. Такие обороты практически не встречаются в названиях товаров, городов, должностей, т.е. в том материале, для склонения которого обычно используется Морфер.
  • Для слов из разряда singularia tantum программа строит несуществующее множественное число: молоко, еда.
  • Сочетания «нарицательное + собственное» лучше склонять раздельно, например: программист Петров, город Калининград.

Снятие неоднозначности дополнительными признаками

Русский язык богат всевозможными двусмысленностями, которые затрудняют задачу склонения.

Например, слово банки может склоняться как банок или банков – смотря что имелось в виду. Имя Карен может склоняться или не склоняться в зависимости от того, принадлежит оно мужчине, или женщине. Для разрешения подобного рода неоднозначностей предусмотрена возможность указания так называемых дополнительных признаков. Вот как может измениться результат склонения в зависимости от указанного признака:

Исходная строка Падеж Доп. признак Результат склонения
Карен дательный Мужской Карену
Женский Карен
Любовь дательный ФИО Любови
нарицательное Любви
Ростов творительный ФИО Ростовым
топоним Ростовом

Программа делает все возможное, чтобы угадать, что имелось в виду. Попробуйте, например, просклонять:

Как видно из примеров, в сомнительных случаях программа ориентируется на заглавные буквы. Но что делать, если, например, пользователи вашего сайта любят вводить свои имена и ники маленькими буквами? Для этого есть возможность указать программе, что входная строка содержит ФИО или псевдоним, а не что-то другое. Таким образом неоднозначность будет устранена.

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

Большинство версий модуля склонения предлагают три варианта предложного падежа – с предлогом О/ОБ/ОБО, с предлогом В/НА и без предлога. В каком случае какой вариант больше подходит?

Вообще предложного падежа без предлога не бывает (на то он и предложный), поэтому первое, что нужно решить – это оставить предлог в несклоняемой части или поручить выбор программе? Рассмотрим такой случай. Даны названия языков: русский язык, английский язык, иврит, хинди и т.д. Нужно получить сочетания с предлогом НА: на русском языке, на английском языке, на иврите, на хинди... Здесь предлог всегда НА, поэтому берем вариант «предложный без предлога» и сами добавляем в начале НА: "на " + Предложный ("русский язык").

Другой пример. Ваша программа составляет именной гороскоп, заменяя названия знаков зодиака на заданные имена. Например, предложение «Телец — домашнее животное, чего определенно нельзя сказать об Овне» превращается в следующее: «Оля — домашнее животное, чего определенно нельзя сказать о Сергее» (т.е. «Телец» заменяется на «Оля», а «Овен» на «Сергей» с соблюдением падежей). Так как в данном случае предлог изменяется (об Овне – о Сергее), уместно использовать форму «предложный с предлогом О/ОБ/ОБО», оставив выбор предлога программе: "... чего не скажешь " + ПредложныйО ("Овен"). Однако следует иметь в виду, что выбор предлога (О, ОБ или ОБО) полностью определяется следующим за ним словом. Поэтому если между предлогом и склоняемым словом есть другое слово, например «Преданным Рыбам нравится заботиться о романтичном Овне», то в данном случае лучше использовать «предложный без предлога», оставив предлог в неизменяемой части: " ... о романтичном " + Предложный ("Овен").

И наконец, третий пример, когда форма предложного падежа является обстоятельством и отвечает на вопрос «где?» Например, в текстовой части геодезического плана необходимо подставить топоним в предложение «Объект расположен (где?)» – в доме, на участке, в саду, на улице Вернадского и т.п. В данном случае уместно доверить выбор предлога программе в зависимости от подставляемого слова – дом, участок, сад, улица Вернадского... и использовать «предложный с предлогом В/НА»: "Объект расположен " + ПредложныйВ ("участок №1"). Результат будет: "Объект расположен на участке №1".

Рекомендации по склонению ФИО

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

  • Иванец Иван – Иванца Ивана
  • Иванец Иванна – Иванец Иванны

Рекомендуемая последовательность действий такова:

  1. Склеить фамилию, имя и отчество в одну строку.
  2. Просклонять получившуюся строку.
  3. Вывести результат.

Схожая ситуация возникает, когда из ФИО необходимо получить фамилию с инициалами в заданном падеже (Иванову И.И.) Если сократить имя и фамилию до инициалов перед склонением, то программа может неправильно определить род. Рекомендуется сначала просклонять полные фамилию, имя и отчество, а затем сократить имя и отчество до инициалов.

В обоих случаях идея в том, чтобы дать программе как можно больше информации о склоняемом субъекте, что обеспечит наивысшее качество склонения.

Подробнее о реализованных функциях

В программе реализованы следующие функции:

Основное назначение программы – генерация грамматически правильных текстов: отчетов, писем, веб-страниц. Яркий пример генераторов текста – социальные сети, которые неустанно заваливают нас сообщениями вида «Васе нравится фотография Маши», «Сергей прокомментировал статус Андрея», «Вам, Юленьке Андреевой и еще 15 друзьям нравится эта страница» и т. п. Здесь переменными являются имена (Вася, Маша, Сергей, Андрей...) и слова «фотография», «статус», «эта страница» – все, что может нравиться и комментироваться. На основе одного шаблона «X нравится Y Z» можно построить фразы «Кате нравится фотография Марины», «Алексею нравится статус Андрея», «Екатерине Прилежаевой нравится ссылка Васи Веселова» и т. д. Но простая подстановка имен в шаблон даст: «Вася нравится фотография Маша». Чтобы получить грамматически правильные предложения, перед подстановкой в шаблон переменные части нужно просклонять. Вот тут нам и поможет «Морфер».

Социальные сети – далеко не единственный пример генерации текстов. «Морфер» вот уже более 10 лет успешно используется на сотнях предприятий России и ближнего зарубежья для формирования договоров, писем, отчетов, технических записок и спецификаций – везде, где нужно автоматизировать рутинную письменную работу.

Популярен «Морфер» и среди веб-мастеров, помогая им формировать грамматически правильные тексты на основе шаблонов веб-страниц. Например, страницы интернет-магазина формируются из шаблона подстановкой названий товаров и категорий товаров в нужном падеже. Не секрет, что поисковые системы «любят», когда ваши ключевые слова появляются в тексте в разных падежах и продвигают сайт на более высокую позицию в поисковой выдаче.

«Морфер» используется для рассылок email- и SMS-сообщений, на сайтах о погоде и путешествиях для склонения названий городов и стран.

Для чего еще используется «Морфер», вы можете узнать на странице отзывов.

В чем отличие «Морфера» от phpMorphy, pyMorphy и других программ, называемых «морфологическими анализаторами»? Морфанализатор работает с отдельными словами, а «Морфер» – с целыми словосочетаниями:

Склонение ФИО

Ежедневно организации выпускают тысячи писем, справок и приказов в адрес сотрудников, избирателей, выпускников и участников мероприятий. Социальные сети заманивают нас письмами о том, как нам понравится новая фотография Машеньки Полуэктовой, хотя сама Машенька вводила свое имя только в именительном падеже. Как им это удается? Разумеется, склонение выполняет программа.

В отличие от аналогов, требующих четкого разделения компонентов ФИО, «Морфер» принимает на вход ФИО в любых комбинациях:

Имя необязательно должно быть трехкомпонентным. Программа учитывает «двойные» имена и фамилии, а также национальные суффиксы и служебные слова:

Склонение должностей, профессий и званий

Разумеется, программа «на ура» справляется с простыми должностями типа «генеральный директор» или «инженер-программист I категории».

Жизнь не стоит на месте, развивается и «Морфер». Словарь программы постоянно пополняется новыми профессиями: трейдер, брокер, мерчандайзер...

Не проблема для программы и длинные заковыристые наименования:

А также наименования со скобками и тире:

Определение рода (пола)

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

Вот такую нелегкую задачу решает наша программа. При этом она знает, что есть имена, по окончанию напоминающие женские, но на самом деле мужские: Данила, Никита, Илья, Кузьма. И наоборот: Гюльчатай, Чулпан, Джейн, Уитни.

Пол определяется не только по имени. Учитываются все компоненты ФИО, например:

Кстати говоря, в украинском для формирования обращения недостаточно только указать уважаемый или уважаемая, нужно еще просклонять имя, поставив его в особый падеж, звательный: шановний Антоне Вікторовичу, шановна Ірино Володимировно. Программа это тоже умеет.


Комментарии

Александр 11.05.2012 09:25 UTC

Спасибо, всё отлично, вот только хотелось бы, чтобы указывалось ударение для каждого падежа, так как в некоторых словах при склонении ударение меняется.



Алексей Коновалов 08.08.2012 22:02 UTC

Добрый день!
Подскажите, возможно ли просклонять слова, отвечая на вопрос: КОГДА.
Например: во вторник, в среду, в январе, пятнадцатого февраля и т.д.



Сергей Слепов 09.08.2012 22:09 UTC

Интересный вопрос!
В русском языке на вопрос «когда?» не отвечает какой-либо один падеж. «Во вторник, в среду» - это винительный, «в январе» - предложный, «пятнадцатого февраля» - родительный. Вопрос в том, что в этой задаче дано, «вторник, среда, январь, пятнадцатое февраля»? Или конкретная дата? Если «вторник, среда, январь...» то нужно подбирать падеж и предлог в зависимости от вида словосочетания. Тут нужен полный список возможных вариантов. Возможны ли «на прошлой неделе, через неделю, в следующем месяце, через микросекунду»? Вариантов много.

Если дана конкретная дата, то проще выразить, как она соотносится с текущей, но тут тоже возможны варианты. 15 января, через неделю и во вторник могут указывать на один и тот же день и какой вариант выбрать, дело вкуса.



Добавить комментарий


 

Библиотеки

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

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