От редакции:
В рубрике DOU Проекторвсе желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на valentina@dou.ua.
Начало
Привет обитателем DOU. Меня зовут Катерина Кузьменко, мне 32 года. По образованию я маркетолог, 5 лет проработала по специальности, потом уехала в Черногорию и занималась там бизнесом — сначала автосервисом, потом открыла свое агентство по аренде яхт. Тогда и познакомилась с будущим супругом-айтишником из Харькова, который на тот момент помогал немецким друзьям изучить вариант открытия в Черногории небольшой чартерной компании и строительства мини-марины. Переехала в Харьков и потихоньку начала вникать в сферу ИТ.
Как это обычно бывает, чтобы придумать что-нибудь действительно полезное, нужно столкнуться с проблемой и найти ее решение. Проблемы начинаются там, где мы выпадаем из привычной зоны комфорта. В этот раз я «выпала» в новые обстоятельства года на полтора — забеременела и родила сына. Каждый день приходилось покупать громадное количество разной всячины и хотелось, чтобы на все хватило денег, а также не тратить лишнее время на разъезды по городу в поисках нужных услуг и товаров. Все должно быть рядом, как можно ближе к дому и, желательно, на распродаже.
Гуляя с коляской вокруг дома, я стала замечать все интересные акции, скидки и события в мелких магазинчиках и различных салонах вокруг дома. Наше окружение меняется со скоростью звука: еще вчера в этом подвальчике был ремонт обуви, сегодня свободное пространство, где проводят мастер-классы. Мамы, которые гуляют с колясками, знают, что тетя Света из овощного пару раз в неделю привозит домашнюю молочку, — и разбирают ее мгновенно. За углом открылся винный бутик, у них бывают неожиданные скидки в −50% на мое любимое Zebo. За время декрета я как-то привыкла быть в курсе того, что происходит вокруг, и с удовольствием пользовалась всеми этими благами.
Пришло время вернуться к рабочему ритму, но я по прежнему хочу знать, когда в магазине за углом начинается распродажа, когда какой мастер-класс пройдет (хочу попасть на лепку из глины), когда в новом фитнес-клубе будет акция на абонементы, и в конце концов, когда тетя Света привезла молочку.
И вот где-то в это время, чуть более года назад, к нам в гости забрел друг семьи Миша Фридштанд. Миша — редкий птиц в наших краях, теперь он живет в США, основал компанию Codesmart в Сан-Франциско и бороздит просторы Калифорнии. Ребята тогда только-только запустили приложение Yomapic, и Миша хвастался новинкой. Приложение выводит на карте фото из Instagram, для которых указана гео-локация. Сделано оно было фактически «по приколу», как обкатка пары технических решений. Смотреть чужие фотки смешно, но быстро надоедает. А вот сама идея вывода на карте сообщений мне понравилась — было понятно, что в такой наглядной форме можно сделать что-то полезное.
Катя Кузьменко и Миша Фридштанд
Так мы и нашли друг друга! Я хотела удобным образом видеть скидки, акции и события от локальных бизнесов, а у ребят из Codesmart был классный метод выдачи этого контента и техническое решение, как его собрать.
Целевая аудитория возможного продукта очень широкая. Это, по сути, все, кто самостоятельно делает покупки по хозяйству — от домашних мелочей до полноценного шопинга. То есть, как минимум, почти все мамы и домохозяйки. Как максимум — все женщины и мужчины-холостяки :-)
Кто же не любит купить товар привычного качества со скидкой или получить подарок по акции? Да все любят. Тут даже не только в экономии дело. Сэкономить на ровном месте — приятно.
Реализация
Мы с Мишей потратили несколько дней на исследование рынка и обнаружили, что конкуренты были — да сплыли. Аналогичные агрегаторы выходили с контентом от партнерских сетей и вскоре умирали по простой причине — мало сообщений. Сколько бы сетей вы не подписали — это ограниченный однотипный контент. Все, конечно, это понимали. Но, очевидно, так и не смогли вырваться из замкнутого круга: как «заманить» в систему бизнес, если там нет пользователей, и в то же время — как набрать базу пользователей, если в системе нет контента?
Мы смогли решить эту задачу. Разобравшись в теме, поняли, что сегодня контент уже существует — многие бизнесы активны «в интернетах» и пишут сообщения о своих скидках/акциях/событиях в социальных сетях. Осталось научиться собирать такие сообщения, и мы получим «стартовый контент», достаточный для набора пользователей и потом уже выхода напрямую на бизнесы.
Создание алгоритма
У нас получилось преодолеть много технических сложностей. Сначала мы собрали данные бизнес объектов. Они есть на Гугл и Яндекс картах. Краулить их достаточно сложно, особенно в условиях регулярных обновлений API. Собранную базу бизнесов пришлось отфильтровать — оставить только B2C, которые могут быть интересны массовому потребителю. Мы вручную сделали native categories mapping — привели категории объектов из разных источников к своей таблице, и сделали админку для управления связями.
Следующим шагом было написание майнера для нахождения профилей бизнеса в социальных сетях. Для этого мы использовали информацию, указанную при регистрации на картах. Дальше — находим сайт, на сайте находим ссылки на FB и ВК, получаем данные из профилей в соцсетях и сравниваем с данными самого бизнеса (совпадение имени и контактных данных, чтобы проверить, что пользуемся правильной официальной страницей объекта). Из полученных профилей сделали автоматический сбор новых сообщений. Тут использовали достаточно простые решения из области social data mining, в сети есть много аналогичных примеров.
Посмотрели на массив полученных данных и поняли, что там 90% — это спам. Неинформативные, бесполезные рекламные сообщения, которые не интересны покупателю. Пробовали фильтрацию через regexp’ы и Bayes — качество не удовлетворило. Начали использовать нейронную сеть на NLTK, первичное обучение пришлось делать вручную. Для обучения нейронки привлекли 58 человек, преимущественно из ЦА проекта. Вручную обработали более 100 000 сообщений, и работа ещё продолжается.
Команда разработчиков Inby
Инструменты разработки
Немного технических подробностей для любопытствующих:— Бекенд у нас на Python, для БД используем PostgreSQL и elasticsearch. А ещё мы любим Celery;
— Pymorphy — хорошее решение для работы с русскими текстами, а NLTK вообще классная и интересная штука. И если ими обработать текст и засунуть его в нейронную сеть прямого распространения (FFNN) — можно сделать много интересного;
— У Google есть developers account, который много позволяет при работе с картами;
— Яндексу давно пора привести API карт в порядок. И хорошо бы анонсировать обновления заранее;
— Social data mining только кажется сложным, API у популярных социалок нормально описаны, и есть масса примеров всякого интересного.
В основной команде «технарей» четверо. А если посчитать всех привлекавшихся на разных этапах — в разработке участвовало порядка 30 человек. Всего создавали приложение на разных этапах более 90 человек.
Первые результаты
Работа над проектом заняла ровно год (от первого коммита на github до паблик релиза мобильных приложений). А сегодня Inbyуже в сторах.
Сейчас мы уже караулим 132 города в СНГ (88 в России, 43 в Украине, 1 в Беларуси), обходим около 2 млн POI бизнесов в СНГ. «Читаем» до 1,5 млн сообщений в сутки, тщательно фильтруем и оставляем в системе не более 25 тыс сообщений в сутки.
Вышли в США, как и обещали, в канун «черной пятницы», и набираем обороты. В Америке краулим 2312 населенных пунктов и продолжаем обучать нейросеть работать с сообщениями на английском языке
Планы на будущее
Сейчас мы учимся продвигать наше приложение и организовывать поддержку для пользователей и бизнесов. Для предпринимателей Inby — удобный инструмент работы с локальной аудиторией. Сети смогут делать разные промо акции для разных точек продаж. А мелкие и средние бизнесы, для которых создание и продвижение сайтов было слишком трудоемким и дорогим удовольствием, наконец-то выйдут в онлайн с помощью Inby.
Мы и дальше будем собирать основную массу контента автоматически на бесплатной основе. Однако, чтобы улучшить качество информации, уже через пару недель можно будет напрямую в систему Inby написать сообщение — бесплатно и за очень умеренные деньги: все зависит от категории бизнеса. К примеру, мастер по ремонту обуви или тетя Света из продуктового киоска смогут отправлять сообщения в Inby бесплатно и самым удобным для себя способом — смс-кой. Бизнесу покрупнее Inby обойдется всего в пару сотен гривен в месяц. Чем больше будет «авторских» сообщений в Inby, тем интереснее и полезнее приложение будет для пользователей. И, конечно, тем больше мы заработаем денег.
Будем и дальше активно работать над повышением качества контента (до-обучаем нейросеть), улучшать пользовательские приложения (по фидбекам реальных пользователей), создавать панели для работы бизнесов (при активном участии реальных владельцев магазинов и салонов).
Спасибо, что прочитали статью. Мы всегда рады вашей критике, предложениям и пожеланиям. Скачать приложение Inby для iOS и Android можно тут. Пишите нам свои отзывы и комментарии здесь или на support@inbyapp.com.