Описание технологии склонения
Алгоритм «Морфер» предназначен для склонения слов и словосочетаний на русском языке.
Учитывает множество синтаксических конструкций, включая ФИО и произвольные именные словосочетания.
Например:
По данной форме именительного падежа строятся формы всех остальных падежей единственного и множественного числа.
Достоинства
- Скорость – основное преимущество компьютера перед человеком.
Любой русский справится с задачей склонения, но не со скоростью несколько тысяч ФИО в секунду.
- Простота.
Программа не требует настройки, обучения склонению неизвестных слов,
поддержания словаря исключений и т.п.
- Полнота охвата лексики.
Программа учитывает особенности склонения большинства общеизвестных слов,
сама распознает их род и одушевленность.
- Склонение «по аналогии».
Малоизвестные и придуманные слова программа способна
просклонять по аналогии с известными ей словами.
В большинстве случаев результат совпадает с ожидаемым.
- Корректная работа с буквой Ё.
Пользователь может ставить или не ставить
точки над Ё по своему усмотрению – программа примет любой вариант.
В то же время, программа различает случаи, когда точки над Ё имеют значение.
Например, слова все и всё, пометы и помёты,
Королева и Королёва склоняются по-разному.
При этом если дан контекст, позволяющий различить омографы, то
программа это с успехом делает. Сравните:
все наше
и
все наши.
-
Исправление латинских букв.
Если вы случайно в фамилии Сидоров наберете латинскую букву C,
программу это не смутит, и при склонении она будет заменена на русскую С.
Преобразование в именительный падеж можно использовать для замены латинских букв
на похожие по начертанию русские.
Правда, иногда программа может перестараться. Например, английское слово HACK
она просклоняла НАСКИ, НАСКОВ, НАСКАМИ, О НАСКАХ...
- Полная поддержка Юникода.
«Понимает» различные виды кавычек, дефисов, тире и даже греческие буквы, например:
β-версия,
γ-излучение.
Ограничения
- При попытке просклонять принципиально несклоняемое слово (например, глагол)
программа не выдает ошибку, а пытается просклонять его как сможет: например,
глагол давать будет склоняться подобно существительному кровать.
- Не реализовано склонение числительных, в основном из-за
низкой востребованности этой функции.
- Для ФИО формы множественного числа не выдаются.
- Не всегда правильно склоняются словосочетания с наречиями
(в будущем планируется устранить это ограничение).
- Для слов из разряда singularia tantum
программа строит несуществующее множественное число: молоко.
- Сочетания «нарицательное + собственное» пока не поддерживаются, например:
программист Петров, город Калининград. Склоняйте их отдельно.
Особенности национального склонения
Русский язык богат всевозможными двусмысленностями, которые затрудняют задачу склонения.
Например, слово банки может склоняться как банок или банков – смотря что имелось в виду.
Имя Карен может склоняться или не склоняться в зависимости от того, принадлежит оно мужчине,
или женщине.
Для разрешения подобного рода неоднозначностей предусмотрена возможность указания пола.
Бывает, что имена собственные становятся нарицательными. Например, месяц август получил свое
название в честь римского императора Октавиана Августа. И наоборот, «обычные» слова
становятся именами – как всем известные Вера, Надежда и Любовь.
Такие «заимствования» порождают наоднозначности, например, Любовь – Любови, но любовь – любви.
Программа делает все возможное, чтобы угадать, что имелось в виду. Попробуйте, например, просклонять:
Как видно из примеров, в сомнительных случаях программа ориентируется на заглавные буквы.
Но что делать, если, например, пользователи вашего сайта любят вводить свои имена и ники
маленькими буквами? Для этого есть возможность указать программе, что
входная строка содержит ФИО или псевдоним, а не что-то другое. Таким образом неоднозначность будет устранена.
Рекомендации по выбору варианта предложного падежа
Большинство версий модуля склонения предлагают три варианта предложного падежа – с предлогом О/ОБ/ОБО, с предлогом В/НА и без предлога.
В каком случае какой вариант больше подходит?
Вообще предложного падежа без предлога не бывает (на то он и предложный), поэтому первое, что нужно решить – это оставить предлог в несклоняемой части или поручить выбор программе?
Рассмотрим такой случай. Даны названия языков: русский язык, английский язык, иврит, хинди и т.д. Нужно получить сочетания с предлогом НА: на русском языке, на английском языке, на иврите, на хинди...
Здесь предлог всегда НА, поэтому берем вариант «предложный без предлога» и сами добавляем в начале НА: "на " + Предложный ("русский язык").
Другой пример. Ваша программа составляет именной гороскоп, заменяя названия знаков зодиака на заданные имена. Например, предложение «Телец — домашнее животное, чего определенно нельзя сказать об Овне»
превращается в следующее: «Оля — домашнее животное, чего определенно нельзя сказать о Сергее» (т.е. «Телец» заменяется на «Оля», а «Овен» на «Сергей» с соблюдением падежей).
Так как в данном случае предлог изменяется (об Овне – о Сергее), уместно использовать форму «предложный с предлогом О/ОБ/ОБО», оставив выбор предлога программе:
"... чего не скажешь " + ПредложныйО ("Овен").
Однако следует иметь в виду, что выбор предлога (О, ОБ или ОБО) полностью определяется следующим за ним словом. Поэтому если между предлогом и склоняемым словом есть другое слово, например
«Преданным Рыбам нравится заботиться о романтичном Овне», то в данном случае лучше использовать «предложный без предлога», оставив предлог в неизменяемой части:
" ... о романтичном " + Предложный ("Овен").
И наконец, третий пример, когда форма предложного падежа является обстоятельством и отвечает на вопрос «где?»
Например, в текстовой части геодезического плана необходимо подставить топоним в предложение «Объект расположен (где?)» – в доме, на участке, в саду, на улице Вернадского и т.п.
В данном случае уместно доверить выбор предлога программе в зависимости от подставляемого слова – дом, участок, сад, улица Вернадского... и использовать «предложный с предлогом В/НА»:
"Объект расположен " + ПредложныйВ ("участок №1"). Результат будет: "Объект расположен на участке №1".