GoodsReview
Участники проекта
Руководители
О проекте
На практике в CSC мы делаем свой собственный интернет-сервис. Он называется GoodsReview. Наша команда состоит из шести человек: пяти студентов и куратора — Александра Уланова, сотрудника HP Labs.
Цель нашего сервиса — помогать людям выбирать товары в интернет-магазинах. Сначала GoodsReview автоматически собирает комментарии о товарах, а потом проводит их анализ. Результат анализа — факты о товарах. Что мы называем фактом о товаре? Например: «клавиатура отличная», «процессор слабый» и т.д. Больше примеров вы можете посмотреть на нашем сайте.
О командной работе
Работать в команде не так просто, как кажется на первый взгляд. Но одному работать над большим проектом ещё сложнее.
Чтобы работа в коллективе приносила удовольствие и была эффективной, нужно очень многому учиться. Командная разработка позволяет развить свои коммуникативные навыки, стать ответственнее и освоить новые технологии. Думаем, работа над проектом внесла большой вклад в развитие каждого из нас как разработчика, так и члена коллектива.
Мы работали как удаленно, так и собравшись вместе. Конечно, зачастую, вместе получалось эффективнее, поскольку так было проще настроиться на рабочий лад и не отвлекаться по каким-то своим делам. Кроме того, несколько раз мы собирались на природе, чтобы просто отдохнуть в хорошей компании и обсудить какие-то общие вопросы по проекту. А весь этот абзац к чему? А к тому, что работать в команде над собственным проектом — это интересно и полезно!
Задачи на примере одного семестра
- Мы переработали архитектуру сервиса. Каждый логический модуль проекта запускается отдельно и работает по своему расписанию. Это позволяет обновлять компоненты системы независимо, запускать их на разных машинах и настраивать индивидуальный режим работы для каждого модуля. Например, проверять обновления в списке категорий товаров наш сервис будет раз в месяц, а собирать новые комментарии — раз в день.
- Мы запустили сайт и придумали модель отображения фактов о товарах. На самом деле, мы не довольны этой моделью и ищем новые варианты. Для создания сайта мы использовали следующие технологии:
- nginx — сервер, который отдает статические файлы и роутит запросы на java-сервер
- jetty — java-сервер
- jersey — имплементация REST на java
- jade — шаблонизатор
- mysql — наша база
- Среднее «качество» извлекаемых фактов подтолкнуло нас к развитию алгоритма их извлечения. Изучив статьи и современные решения в области Natural Language Processing, мы попробовали создать уникальный в своем роде классификатор, который бы разделял слова на атрибуты товара и все остальное. Для создания такого классификатора мы на реальных данных создали вручную размеченное тестовое множество и посчитали около 25 признаков для каждого полученного слова. Для подсчета признаков (и в этом отличие нашего решения от существующих) мы использовали поисковый индекс Яндекса, собирая статистику по миллионам документов. Решив проблему несбалансированности данных и применив различные подходы к классификации (в чем нам очень пригодились знания из курса Machine Learning), после сотни экспериментов, мы получили точность классификации около 85%. Такой результат представляет помимо чисто практического интереса еще и научную ценность: была написана и отправлена статья на международную конференцию по компьютерной лингвистике «Диалог» 2013.
Заключение
Центр дает нам возможность получить как теоретические знания, так и практические навыки. А проект для нас — отличная возможность применить и то и другое :)