Здравствуйте.
Есть проблема со склонением городов.
Вот тестовый код:
#coding=utf-8
import pymorphy2
morph = pymorphy2.MorphAnalyzer()
city_atoms = [u'Москва',u'Волгоград',u'Нижний Новгород',u'Домодедово',u'Люберцы',u'деревня Квакино']
for city_atom in city_atoms:
print morph.parse(city_atom)[0].inflect({'loct'}).word
Вот что на выходе:
москве
волгограде
нижний новгороде
домодедове
люберцах
деревня квакином
Москву и Волгоград - просклонял нормально. Нижний Новгород просклонялся только вторым словом. Домодедово - вообще не должно вроде как склоняться, Люберцы - точно не знаю, если честно, как правильно будет, а деревня Квакино вообще, кажется, просклонялась как фамилия.
Посему есть вопросы:
- Как сие безобразие побороть, может, какие словари по городам есть?
- Как (если это возможно) заставить систему не менять регистр? А то одно дело Нижний Новгород а другое дело Ростов-На-Дону или "поселок Запупеево".