Склонение русских имен
15 декабря 2008 в 17:37

Склонение русских имен

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

Нашел на JS, но, во-первых, это JS, во вторых там есть некоторые ошибки. На каком-то форуме еще кто-то выкладывал, но не могу скачать.

Надо, собственно, для этого проекта:)

1510
Комментарии (18)
  • 15 декабря 2008 в 17:51 • #
    Антон Агальцов

    а переписать тот же принцип на php с js не получиться? (так из любопытсва)

    а так помоему есть в пхп функция которая берет значение ячейки и отбрасывает из него посление значение...

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

    я предлагаю сделать иначе (сам так писал)

    в форме регистрации и редактирования профиля добавить имена:
    В именительном падеже и в родительном... чтобы пользователи сами склоняли...

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

    или гибрид написать...

    вообщем на мой взгляд форма в регистрации и профиле будет куда правильней и без ошибочной....

  • 15 декабря 2008 в 17:55 • #
    Данко Алексеев

    Вряд ли ЦА этого проекта будет этим заниматься :)

    На самом деле можно переписать, конечно. Причем в этой библиотеке даже есть исключения, но они почему-то не обрабатываются, видимо ошибка где-то.

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

  • 15 декабря 2008 в 18:00 • #
    Антон Агальцов

    Данная вещь слабо распространена... я знаю Bitrix такую вещь делал... но они зашифровали Zend (если не ошибаюсь).

    Но прошу сакцентировать внимание на имена которые есть в базе (я думаю вы глянуть можите...) там далеко не подарок для склонения...
    плюс у вас везде в скобочках должность указывается... ее же тоже надо просклонять :)))))))

  • 15 декабря 2008 в 18:07 • #
    Данко Алексеев

    Не, вот должность как раз незачем :) а имя да, и то только в винительном падеже, похоже.

    Может, действительно проще самому взять список этих имен, каждое просклонять и найти какие-то правила методом тыка.

    (или найти хорошую статью об этом)

  • 15 декабря 2008 в 18:13 • #
    Антон Агальцов

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

    только вопрос на засыпку... А как Ваше имя склонять вы собираетесь? тут механическими правилами не обойдешся :)))

  • 15 декабря 2008 в 18:17 • #
    Данко Алексеев

    Да, я вообще любитель все свое писать, но тут вопрос меньше из программирования и больше из других наук.

    Я в общем-то почти уверен, что любое имя, оканчивающееся на "о", не склоняется. Если ошибаюсь, поправьте :)

  • 15 декабря 2008 в 18:23 • #
    Антон Агальцов

    http://www.nazovite.ru/sklonenie/

    здесь описаны правила склонения....
    попробуй по ним риализуй...
    я думаю будет за глаза хватать данных правил...

    Про О ты прав... перебрал все имена... не смог просклонять...

  • 15 декабря 2008 в 18:25 • #
    Данко Алексеев

    Спасибо :) попробую, если получится -- результат будет прям на главной странице.

  • 15 декабря 2008 в 20:31 • #
    Юрий Лопотецкий

    Агальцову. Идея заставить пользователя склонять имя при регистрации не очень хороша. Дело в том, что нас постоянно и на каждом шагу мучают бесконечными анкетами, высылаемыми паролями, годами рождений, фамилиями бабушек и цветом волос. Это раздражает нимоверно. Лично я часто просто ухожу с сайтов, предлагающих заморочную регистрацию. Думаю, Антон, и Вы тоже часто поступаете так же. Почему? Да потому, что плохо продуманная регистрация является визитной карточкой сайта. И если меня умучили уже при регистрации, значит и движок, и логика сайта, и степень ответственности персонала не внушают доверия.

    Сайт "Профессионал" меня приятно удивил необременительной процедурой регистрации и продуманностью интерфейса (Данко, мой респект создателям!).

    Призываю Данко не усложнять процедуру регистрации!

    Кроме того, Антон, в Сети невероятное количество полуграмотных людей. Ну нет у меня уверенности, что они правильно употребляют свое имя, а если и правильно, то введут безошибочно. Жаль, но очень часто даже хороший IT-профи не может написать и пары предложений без орфографической ошибки.

    А вот Вашу идею по поводу http://www.nazovite.ru/sklonenie/
    - поддерживаю. Я посмотрел - там все на хорошем уровне, солидно и вроде бы без ошибок. Лучше пусть Данко действительно реализует этот алгоритм.

    Другое дело, что неплохо бы, чтобы во время регистрации пользователею в соответствии в предложенным Антоном Агальцовым алгоритмом выводилась сгенерированная падежная форма его имени. И только если пользователь НЕ СОГЛАСЕН, у него должна открыться панель для коррекции имени по усмотрению пользователя.

    Как при согласии, так и при несогласии падежную форму имени можно ЗАТЕМ хранить в СУБД, привязывая его к профайлу пользователя. Т.е. в базу можно писать как имена полученные алгоритмом, так и введенные вручную при коррекции. Т.е. алгоритм работал бы лишь при регистрации. Дальше во всех других случаях - брать имена из базы.

    Через полгода Данко может слить эту базу с падежными обсклоненными именами в другой проект :)

  • 15 декабря 2008 в 21:37 • #
    Антон Агальцов

    в принципе все правильно...

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

  • 15 декабря 2008 в 18:13 • #
    Геннадий Беседин

    На вкус и цввет, как говорится, но зачем??????????????

  • 15 декабря 2008 в 18:15 • #
    Данко Алексеев

    Посмотрите на "новые события" :) там много где именя так и напрашиваются, чтобы их просклоняли.

  • 15 декабря 2008 в 18:31 • #
    Геннадий Беседин

    Я бы не стал тратить драгоценное время на такую работу. Имена бы еще пол беды. Вот ФИО... Вы споткнетесь об исключения, которыми так богат русский язык.

  • 17 декабря 2008 в 02:15 • #
    Максим Сухомлин

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

  • 17 декабря 2008 в 17:57 • #
    Дмитрий Кайсин

    Согласен, в форму ввода добавить нужный падеж и голову не ломать больше))

  • 18 декабря 2008 в 08:29 • #
    Марат Садрее

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

  • 23 декабря 2008 в 15:22 • #
    Андрей Архангельский

    Достаточно давно занимаюсь этой проблемой (около 3 лет).
    Фнукция, использующая набор правил, работать не будет. По статистике около 30% имен, фамилий имеют исключения (сужу по своей базе данных). Кроме того есть проблемы с учетом ударения. Например:

    Малин - мужская фамилия (склоняется), следовательно - Малина - женская фамилия склоняется.
    Но! есть мужская фамилия Малина, которая не склоняется, и женская фамилия будет Малина. От предыдущей отличается только ударением.
    Есть еще ряд похожих проблем.

  • 1 января 2009 в 21:32 • #
    Alexander Meinhardt

Выберите из списка
2018
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
1970