Re: Склонение ФИО по падежам.

715 views
Skip to first unread message

Mikhail Korobov

unread,
Apr 4, 2014, 9:36:30 AM4/4/14
to pymo...@googlegroups.com
Ярослав, привет.
Готового open-source решения "из коробки" я не знаю. Есть всяческие сторонние платные API для этого.

На pymorphy2 решение будет, видимо, такое:

* разобрать все слова;
* из разборов выбрать те, которые в именительном падеже, и желательно с граммемами Name, Surn, Patr;
* просклонять их.

Это должно более-менее работать.

Проблема может быть в том, что многих фамилий pymorphy2 не знает (да и все их в словарь поместить нельзя), а специализированного "предсказателя" для фамилий нет. Некоторые фамилии могут склоняться неправильно (особенно те, которые не похожи на прилагательные). В pymorphy1 есть специализированный склонятор для фамилий на основе правил с gramota.ru и других источников; см. https://bitbucket.org/kmike/pymorphy/src/b5a4e3d5f362c2b93e378d81474b158c891ff078/pymorphy/contrib/lastnames_ru.py?at=default

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



4 апреля 2014 г., 19:18 пользователь Yaroslav Ogloblin <sja...@gmail.com> написал:

Че-то создал тему, но она так и не появилась в группе. Поэтому повторю.

Нужна возможность склонять ФИО по падежам имея изначально именительный. Можно для этого использовать ваш пакет, но он слишком мощный для такой простой задачи.

Подскажите, может есть уже готовые решения, которые делают эту узкую задачу на python. Если нет, то может посоветуете, что почитать, чтобы сделать свою. Знакомых лингвистов нет, так что даже и не знаю, где все эти правила склонения искать для русского языка, разве что из головы брать... :) Искать в инете, не владея темой, это гнилое занятие.

--
Вы получили это сообщение, поскольку подписаны на группу "pymorphy".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес pymorphy+u...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Yaroslav Ogloblin

unread,
Apr 4, 2014, 10:11:52 AM4/4/14
to pymo...@googlegroups.com, kmi...@gmail.com
Да гуглогруппы вообще прикольные. Сижу в Опере, мне сообщают что мой браузер Firefox больше не поддерживается. :))))

А где там на Грамоте есть эти правила? То что есть сложности, это я понимаю. Но и хранить по три поля на имя фамилию и отчество как-то кривовато, имхо.

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


пятница, 4 апреля 2014 г., 16:36:30 UTC+3 пользователь Mikhail Korobov написал:

Serge Slepov

unread,
Apr 5, 2014, 7:51:11 AM4/5/14
to pymo...@googlegroups.com, kmi...@gmail.com
Всем привет!

Темой автоматического склонения (не только ФИО) занимаюсь уже больше 10 лет и успел столкнуться со многими "тонкостями", о которых говорит Mike, и учел их в своей программе.  Если не хотите ближайшие 10 лет посвятить разгребанию таких тонкостей, воспользуйтесь моим бесплатным веб-сервисом:


Есть примеры вызова веб-сервиса из PHP и Ruby. Если напишете на Python, будет здорово!

Mikhail Korobov

unread,
Apr 5, 2014, 5:51:30 PM4/5/14
to pymo...@googlegroups.com, kmi...@gmail.com
Ярослав, отдельно склонятор утянуть нельзя; склонение в pymorphy2 - это просто разбор слова, поиск всех других его форм, и поиск нужной формы среди них. Не вижу никакой проблемы в том, чтоб тянуть весь функционал: "pip install pymorphy2 pymorphy2-dicts dawg-python" и все, должно ставиться везде, никаких компиляторов и т.д. не нужно, скачивать дополнительно тоже ничего не нужно.

Ссылки на правила, по которым работал склонятор в pymorphy1 - тут: https://bitbucket.org/kmike/pymorphy/src/b5a4e3d5f362c2b93e378d81474b158c891ff078/pymorphy/contrib/lastnames_ru.py?at=default#cl-25

Хранить в базе результаты склонения хорошо, т.к. если автоматика ошибется, то их можно будет поправить вручную. Изначально заполнять базу удобнее, конечно, автоматически - или с pymorphy2, или с pymorphy1, или с сервисом от Сергея, или как-то еще.

пятница, 4 апреля 2014 г., 20:11:52 UTC+6 пользователь Yaroslav Ogloblin написал:

Mikhail Korobov

unread,
Apr 5, 2014, 6:09:45 PM4/5/14
to pymo...@googlegroups.com, kmi...@gmail.com
Сергей, а можно использовать данные из ваших тестов (http://morpher.ru/Competition/Default.aspx, список фамилий в mdb файле) для разработки pymorphy2: добавить данные в виде csv-файла в репозиторий pymorphy2, вероятно, дополнять, и использовать в будущем для оценки качества разбора/склонения фамилий?

суббота, 5 апреля 2014 г., 17:51:11 UTC+6 пользователь Serge Slepov написал:

Serge Slepov

unread,
Apr 6, 2014, 8:50:56 AM4/6/14
to pymo...@googlegroups.com, kmi...@gmail.com
Михаил, 

Можно, конечно.  Желательно со ссылкой на источник.

Там всего 1000.  У меня же сейчас их 30000 для русского и 12000 для украинского.  Просто так отдавать жалко.  Если бы ты предложил какую-то форму сотрудничества, было бы здорово!
Reply all
Reply to author
Forward
0 new messages