Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Склонение существительных, имён и фамилий (Юрик)
Author Message
Юрик
Участник форума



Joined: 21 Nov 2003
Posts: 49
Карма: 3
   поощрить/наказать

Location: Питер

PostPosted: Mon Jun 18, 2007 10:33 pm (написано за 3 минуты 38 секунд)
   Post subject: Склонение существительных, имён и фамилий
Reply with quote

На форуме такой темы не нашёл, хотя, имхо, она достаточно актуальна.

Кто-нибудь занимался проблемой склонения имён и фамилий на PHP? В инете нашёл только модули для 1C и Дельфи. В принципе, совершенно универсальную функцию написать вряд ли получится, но довести её до ~95% эффективности по идее можно.

Скоро начну писать, но чтобы не изобретать велосипед, хотелось бы посоветоваться по алгоритму :-)
Back to top
View user's profile Send private message
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9985
   поощрить/наказать


PostPosted: Tue Jun 19, 2007 3:36 pm (спустя 17 часов 2 минуты; написано за 5 минут 13 секунд)
   Post subject:
Reply with quote

Юрик wrote:
довести её до ~95% эффективности по идее можно
Вообще-то, «эффективность» это «отношение полезного результата к затратам на его достижение». Типа, «коэффициент полезного действия».
(Ну, или: ru.wikipedia.org/wiki/%D0%AD%D1%84%D1%84%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C )

Вы, явно, имели ввиду нечто другое...
И я подозреваю, что это «другое» Вы до ~95% врядли доведёте — в русском языке женские и мужские фамилии склоняются по разным правилам.
А «определение пола» — задача, похоже, не формализуемая.
Back to top
View user's profile Send private message
Юрик
Участник форума



Joined: 21 Nov 2003
Posts: 49
Карма: 3
   поощрить/наказать

Location: Питер

PostPosted: Tue Jun 19, 2007 4:50 pm (спустя 1 час 14 минут; написано за 2 минуты)
   Post subject:
Reply with quote

Quote:
А «определение пола» — задача, похоже, не формализуемая.
Будем считать, что пол известен. Кроме того, если есть отчество в иминительном падеже, то пол определить легко (мужские оканчиваются на "ч", женские на "а")

Под эффективностью я имел в виду, что результат в 95% случаев будет верным.
Back to top
View user's profile Send private message
Антон Макаренко
Участник форума



Joined: 05 Feb 2004
Posts: 374
Карма: 37
   поощрить/наказать

Location: Киев

PostPosted: Wed Jun 20, 2007 2:13 pm (спустя 21 час 22 минуты; написано за 3 минуты 30 секунд)
   Post subject:
Reply with quote

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

Например
Code (php): скопировать код в буфер обмена
word_case($x, '', '', '', '', '', '')
Где $x - условное обозначение падежа. Вторым параметром должно указываться существительное в именительном падеже. Следующими параметрами - окончания следующих падежей:
    родительного
    дательного
    винительного
    творительного
    предложного
Или даже не окончания, а части слова, на которые будет оканчиваться слово, склоненное из именительного падежа. Ведь бывают слова, корень которых при склонении меняется - алгоритм должен учитывать такую возможность.

Похожие темы по форумам:
Склонение русских слов после порядковых числительных (forum.dklab.ru/php/advises/SklonenieRusskihSlovPoslePoryadkovihChislitelnih.html)
xpoint.ru/forums/naturelang/misc/thread/27556.xhtml

А, и еще
Rumata wrote:
хотя я и не считаю тему раскрытой. для неспециалиста (нелингвиста) - вопросов больше чем ответов
Back to top
View user's profile Send private message Send e-mail
Юрик
Участник форума



Joined: 21 Nov 2003
Posts: 49
Карма: 3
   поощрить/наказать

Location: Питер

PostPosted: Wed Jun 20, 2007 4:04 pm (спустя 1 час 51 минуту; написано за 2 минуты 12 секунд)
   Post subject:
Reply with quote

Quote:
Имхо, нереально безошибочно склонять имена, анализируя их без словаря.
Лучше придумать функцию, которая в зависимости от указанного падежа будет брать соответствующую строку из следующих параметров.
я тоже сначала думал, что единственный реалистичный вариант - это словарь, но увидел нормально работающие (без словаря) решения на нескольких сайтах (социальные сети)
В принципе, разработки уже есть:
www.foxclub.ru/sol/index.php?act=view&id=571
Сейчас перевожу это на РНР
Back to top
View user's profile Send private message
RomanovAS
Участник форума



Joined: 17 May 2007
Posts: 29
Карма: 2
   поощрить/наказать


PostPosted: Sat Oct 20, 2007 9:04 am (спустя 3 месяца 29 дней 16 часов 59 минут; написано за 28 секунд)
   Post subject:
Reply with quote

Всем привет!

Ребята, а когда появится версия для php?
Back to top
View user's profile Send private message
Jackson
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Jan 19, 2008 5:16 pm (спустя 2 месяца 30 дней 8 часов 11 минут; написано за 24 секунды)
   Post subject:
Reply with quote

Тоже интересует эта тема!!! Скоро ли будет какое-то решение?
Back to top
Jeronimo
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Feb 27, 2008 6:56 pm (спустя 1 месяц 8 дней 1 час 40 минут; написано за 14 секунд)
   Post subject:
Reply with quote

Всё ещё интересует :)
Back to top
basket
Заглянувший



Joined: 09 Feb 2010
Posts: 1
Карма: 1
   поощрить/наказать


PostPosted: Tue Feb 09, 2010 3:35 pm (спустя 1 год 11 месяцев 10 дней 20 часов 39 минут; написано за 2 минуты 54 секунды)
   Post subject:
Reply with quote

Реализация на Javascript - agalkin.ru/js/russian-name.php

Реализация на PHP - narod.ru/disk/17725789000/names.tar.gz.html (работает только в cp1251, в utf-8 только с перегрузкой методов обработки строк в php.ini: mbstring.func_overload=7 или с заменой всех строковых функций аналогами mbstring и добавления в ключа "u" (поддержку юникода) в качестве модификатора шаблона регулярных выражений.
Back to top
View user's profile Send private message
KaMPiLeR
Участник форума



Joined: 20 Oct 2003
Posts: 127
Карма: -6
   поощрить/наказать


PostPosted: Tue Mar 06, 2012 7:30 pm (спустя 2 года 25 дней 3 часа 54 минуты; написано за 2 минуты 5 секунд)
   Post subject:
Reply with quote

вариант есть попроще - на других языках, жаль на php нет (моих знаний перевести не хватило) - superjur.narod.ru/padeg.htm
я им пользуюсь на дельфи - никто не жаловался.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML