Вибір дитячого саду в Москві

У Москві більше 2000 дитячих садків. У чергу на зарахування можна встати в кілька. Які садки обрати і якою вказати пріоритетним? Днями я зробив спробу дати відповідь на це питання.

Хотів би розповісти про деякі технічні деталі рішення. В ході роботи зі шкільними даними я помітив, що на сайтах шкіл публікується багато відгуків. У цих даних є 4 особливості:
  1. багато Відгуків. Близько 40 000 штук на 700 шкіл за 2015, 2016 роки. Це більше, ніж на спеціальних сайтах про шкільні відгуки типу www.schoolotzyv.ru і schools.mel.fm.
  2. 90% відгуків — про дитячі садки. Чомусь про садочки пишуть частіше і більше. Навіть на obr.msk.ru залишають відгуки про сади, хоча явно вказано, що потрібні враження про школах.
  3. 99.9% відгуків позитивні. Це сумно, тому що читати тільки позитивні відгуки нецікаво.
  4. 95% відгуків батьки персонально дякують вихователів. Наприклад, «Інна Юріївна знаходить підхід до кожного, може вгамувати будь-ранковий каприз дитини і допомогти батькам».
Тому з'явилася ідея зробити ось що:

Тексти відгуків самі по собі не цікаві, але цікаві згадки вихователів. Можна спробувати дізнатися, яких співробітників найчастіше дякують і на основі цього робити свій вибір.

Щоб виділити імена, я використовував яндексовый Томіта-парсер. Три рази прочитав документацію, нічого не зрозумів. На щастя, в їх репозиторії знайшовся приклад, який робить рівно те, що потрібно. Трохи модифікував код, щоб були не лише ІМЕНА, але й мена без прізвище. Вихователів часто згадують по імені та по батькові. Граматика виходить така:
PersonName -> Word<kwtype="ім'я"> | Word<kwtype="имя_без_фамилии">;

Person -> PersonName interp (Person.Name);

Ви можете запалити код для запуску Томіта і парсинга результатів його роботи. На скільки я розумію, це, більше або менше, єдине доступне рішення для виділення імен з російськомовних текстів. На відгуках точність виходить близько 95%.



Окремий квест — це об'єднати імена у відгуках і анкети вихователів зі шкільних сайтів. Ім'я та по батькові Томіта нормалізує автоматично, а прізвище залишає як є. Тому прибираємо закінчення самостійно за допомогою snowball-стеммера. На сайтах шкіл ПІБ вчителів заповнені майже завжди добре. Залишається тільки привести до спільного увазі написання типу «Наталія» і «Наталія». У відгуках В половині випадків на вихователя посилаються по ПІБ, а в половині — по імені та по батькові. У 90% випадків в рамках школи співробітники не дублюються імена по батькові, тому адресата подяки майже завжди можна визначити однозначно. Найбільша проблема полягає в тому, що списки співробітників на сайтах шкіл неповні і застарілі. З-за цього вдається пров'язати тільки 70% імен.

Ще хотів би згадати інструмент, який мене виручає вже не перший раз. Це детектор осіб з opencv. З його допомогою особи вихователів можна модно помістити в центр кружечків:


Ви можете запалити відповідний шматочок коду в репозиторії obr.msk.ru. Так, цей детектор погано працює на людях в окулярах, та, напевно, є більш просунуті рішення. Але на фотках вчителів у 90% випадків результат виходить хороший.

Напевно, єдиний більш важливий фактор, ніж вихователі — це розташування дитячого садка. На сайтах шкіл адреси садів можна знайти у відповідному меню:


Щоб нанести в цю справу на карту використовується ще один інструмент, який виручав мене незліченну кількість разів — це яндексовый геокодер. Невеликий хак — коли не вдається геокодировать адреса однозначно, можна додати до адресою слово «Москва». Наприклад, не «Вулиця Леніна, 15», а «Москва Вулиця Леніна, 15».


На всякий випадок посилання на код викликом геокодера та на розбір результатів його роботи.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.