Примеры студенческих проектов /

GoodsReview

Участники проекта

Илья Макеев

Илья Макеев

Выпуск 2013
Александр Марчук

Александр Марчук

Выпуск 2013
Артемий Чугреев

Артемий Чугреев

Выпуск 2014
Наталья Притыковская

Наталья Притыковская

Выпуск 2014
Евгений Ванслов

Евгений Ванслов

Выпуск 2014

Руководители

Александр Уланов

Александр Уланов

HP Labs
Николай Владимирович Малеванный

Николай Владимирович Малеванный

Яндекс

О проекте

На практике в CSC мы делаем свой собственный интернет-сервис. Он называется GoodsReview. Наша команда состоит из шести человек: пяти студентов и куратора — Александра Уланова, сотрудника HP Labs.

Цель нашего сервиса — помогать людям выбирать товары в интернет-магазинах. Сначала GoodsReview автоматически собирает комментарии о товарах, а потом проводит их анализ. Результат анализа — факты о товарах. Что мы называем фактом о товаре? Например: «клавиатура отличная», «процессор слабый» и т.д. Больше примеров вы можете посмотреть на нашем сайте.

О командной работе

Работать в команде не так просто, как кажется на первый взгляд. Но одному работать над большим проектом ещё сложнее.

Чтобы работа в коллективе приносила удовольствие и была эффективной, нужно очень многому учиться. Командная разработка позволяет развить свои коммуникативные навыки, стать ответственнее и освоить новые технологии. Думаем, работа над проектом внесла большой вклад в развитие каждого из нас как разработчика, так и члена коллектива.

Мы работали как удаленно, так и собравшись вместе. Конечно, зачастую, вместе получалось эффективнее, поскольку так было проще настроиться на рабочий лад и не отвлекаться по каким-то своим делам. Кроме того, несколько раз мы собирались на природе, чтобы просто отдохнуть в хорошей компании и обсудить какие-то общие вопросы по проекту. А весь этот абзац к чему? А к тому, что работать в команде над собственным проектом — это интересно и полезно!

Задачи на примере одного семестра

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

Заключение

Центр дает нам возможность получить как теоретические знания, так и практические навыки. А проект для нас — отличная возможность применить и то и другое :)

Текст написал

Артемий Чугреев

Артемий Чугреев

Проект на внешних ресурсах