Еженедельные задачи - achugr/GoodsReview GitHub Wiki

(05.12.2011 - 12.12.2011)

Женя Ванслов

Запланировано

  • Рефакторинг кода проекта(конструкторы, final для нужных полей, @NotNull где надо, запись NULL в базу)

Саня Марчук

Запланировано

  • произвести анализ полученных результатов(процент "правильных" тезисов), предложить более эффективный алгоритм

Сережа Серебряков

Запланировано

  • отчет по тому что готово в плане виджета(архитектура виджета, архитектура бд для виджета, потоки данных)

Руслан Мокаев

Запланировано

  • предоставить информацию о TF-IDF слов из комментариев, оценить полезность этой информации

Ярик Скударнов

Запланировано

  • разобраться с кодировками mystem(подмена простого анализатора прилагательных)

(28.11.2011 - 05.12.2011)

Женя Ванслов

Запланировано

Саня Марчук

Запланировано

  • аналитика в области извлечения тезисов (будет обсуждено)

Сережа Серебряков

Запланировано

  • начало работы над проектом виджета

Руслан Мокаев

Запланировано

Ярик Скударнов

Запланировано

  • проверить извлечение тезисов(при наличии времени, в противном случае, делаю я)

(21.11.2011 - 28.11.2011)

Женя Ванслов

Запланировано и сделано

  • Подготовка к докладу, подтема "определению категории товара"

Саня Марчук

Запланировано и сделано

  • Исправить баг с докачкой страниц
  • Подготовить обзор методов машинного обучения, которые могут быть использованы в проекте

Сережа Серебряков

Запланировано и частично сделано

  • примеры извлечения тезисов при помощи "программы века", оценка эффективности

Руслан Мокаев

Запланировано и почти-почти сделано!

  • доделать tf-idf, оценить эффективность

Ярик Скударнов

Запланировано и сделано(извлечение тезисов - нужно проверить)

  • подключить программу mystem, оценить как она может нам помочь
  • сделать извлечение тезисов при помощи словаря объектов

##( 14.11.2011 - 21.11.2011)

Женя Ванслов

Запланировано и сделано(во внутренних проектах)

  • продумать алгоритм определения категории товара

Саня Марчук

Запланировано и сделано(есть баги)

  • Сделать скачивание только недостающих страниц ситилинка
  • Опционально: Рефакторинг кода с целью сделать все нормально: скачивать все категории, описание.

Сережа Серебряков

Запланировано и сделано

  • вывод базы комментариев в файл, чтобы можно было разметить тестовое множество
  • буферизованное чтение из базы (второстепенно, откладывается на потом)

Руслан Мокаев

Запланировано, не сделано

  • проверить tf-idf на словах комментариев

Ярик Скударнов

Запланировано и сделано

  • создание словаря существительных для извлечения тезисов

##( 7.11.2011 - 14.11.2011)

Женя Ванслов

Запланировано и сделано

  • indexer
  • searcher
  • прикручивание searcher к frontend

Саня Марчук

Запланировано и сделано

  • Сделать чистку собираемой информации от мусора
  • Сделать "умное" складывание товаров в базу по названию
  • Привязать в базе каждый review к product

Сережа Серебряков

Запланировано и сделано(не полностью)

  • Контроллер для query
  • Контроллер для query_unique
  • Оценить какой еще есть "шум" кроме предлогов, постараться выкинуть его

Руслан Мокаев

Запланировано и сделано(не полностью)

  • Сделать так, чтобы в тезисах не было предлогов
  • Оценить какой еще есть "шум" кроме предлогов, постараться выкинуть его

Ярик Скударнов

Запланировано и сделано

  • indexer
  • searcher

(31.11.2011 - 7.11.2011)

Женя Ванслов

Запланировано и сделано:

  • Сделать главную страницу со строкой поиска принять с нее запрос(считаем что пришло наименование товара) service должен дергать метод, который забирает все из "product + review + thesis" отдать инфу на отрисовку
  • Сделать на xsl + xml отрисовку информации о товаре по строкам:
  1. вся инфа о товаре
  2. тезис + оценка тезиса ...тезисы n) комментарий + оценка комментария ...комментарии

Не запланировано но сделано

  • популярные товары на главной
  • кроме страницы товара - страница результата поиска

Саня Марчук

Запланировано и сделано

  • Дамп сайта, из дампа вытаскивается вся нужная инфа в оперативную память

Запланировано, но не сделано

  • Сложить из оперативной памяти в бд (буквально пара строк кода, сложность вызвана изменениями в архитектуре бд)

Сережа Серебряков

Запланировано и сделано

  • Реализовать выборку из базы набора "товар - отзывы - голоса за отзывы - тезисы - голоса за тезисы(которые наши, из таблицы "thesis")", запрос - наименование товара
  • логирование ошибок доступа (частично)
  • контроллеры бд по просьбе разработчиков других модулей (частично)
  • /* работы сделано больше чем на 75%(процентов на 90%), если считать последнюю неделю(по другим модулям была более общая задача и стояла на больший срок, а общая задача по бд - все контроллеры) */

Руслан Мокаев

Запланировано и сделано

  • Написать класс для выборки тезисов из комментариев, используя частотный словарь Использовать интерфейс БД, методы, которых не хватает описать здесь Выбираем все товары, пробегаемся по связанным с ними таблицам review, для каждого товара составляем частотный словарь, на основе которого заполняем таблицу thesis, записывая в importance частоту вхождения. P.S. думаю включим в thesis поле frequency..importance будет учитывать частоту, но ее тоже неплохо бы хранить

Ярик Скударнов

Запланировано и сделано

  • индексер, серчер по примеру других проектов

Запланировано и частично сделано

  • тестер для индексера и серчера

(19.10.2011 - 26.10.2011)

Женя (+-) //пока что нет взаимодействия с БД

блок frontend, нужно сделать следующее: по адресу localhost:8080/index.html должна висеть главная страничка сервиса (строка поиска + логотип). Введенная в строку поиска строка должна быть передана ялету "GetReviewOnProductYalet", тот должен подключить "GetReviewOnProductService" из package ru.goodsReview.frontend.service, этот класс должен сделать обращение к бд через контроллер в ru.goodsReview.storage, и вернуть объект ShowReviewOnProductYalet, который даст это на отрисовку xsl-ке..думаю, пока что объект для вытаскивания из базы и последующей передачи на отрисовку может выглядеть так: public class ResponseCortege { private Product product; private ReviewList reviewList; private ThesisList thesisList; } В итоге при нажатии кнопки "поиск" нужно сделать переход на страницу c результатом поиска, которая может выглядеть примерно так: товар, его описание, рядом список тезисов, а снизу комментарии(примерно реализовать макет из вики)

Саня (-+)//нужно еще разбираться

блок extractor - сделать прикручивание web harvest к java, дергаться будет контроллер БД с полной функциональностью, задание вроде бы достаточно ясно(при этом нужен xml парсер? Ярик написал его, вопросы по функциональности к нему)

Сергей (+-) //все кроме тезисов

блок storage реализовать вытаскивание из БД связки Product - ReviewList - ThesisList(использует Олег), сделать загрузку в базу связки Product-ReviewList-Vote (которую будет использовать Саня), загрузку в базу( таблица query)(использует Олег), поискового запроса. Сделать для каждой нужной сущности класс в ru.goodsReview.core.model

Руслан (+-)//нужно вытащить из базы и обработать

Нужно сделать модель для обработки отзывов, модель для их доставания из базы и складывания туда обработанной инфы. ru.goodsReview.miner.model - сущности, которые удобны для обработки информации, ru.goodsReview.miner.controller - доставание из базы, представление в удобоваримом для обработки формате(из miner.model), ru.goodsReview.miner.brain - обработка miner.model, создание miner.model, передача service, который уже сложит в базу чет кашу написал, кажется, но я так вижу..жду предложений!

Ярик (+)//нужно проверить работу модуля. Тестер написан, indexer и searcher протестированы, всё работает блок indexer - индексация БД для быстрого поиска по названию товара, у schoolInfo этот блок реализован, там можно посмотреть как это происходит. Как я понял, происходит так: создаем таблицу(или даже отдельную БД, вот этого не понял), там храним связь имя товара - id товара, только проиндексированную по имени, блок должен предоставлять возможность по заданному имени товара вернуть его id в основной базе, вот как-то так.

(12.10.2011 - 19.10.2011) Активируем всякие разные чакры и работаем!

  • Александр - webHarvest, доизвлекать отзывы + xfresh, jetty, yalet
  • Руслан - jetty, научиться принимать запросы, рабочие примеры
  • Олег - xfresh, yalet, обработка запроса, рабочие примеры
  • Сергей - jdbcTemplate, контроллеры для БД

(5.10.2011-12.10.2011)

  • Александр, Руслан - webHarvest, наладить сбор данных, сделать базу комментариев. Есть риск не успеть из-за сложности структуры сайтов интернет-магазинов. (+) //извлечена информация о большом множестве товаров
  • Олег - javaSpring, Apache Tomcat.(XFresh + Jetty, после некоторых уточнений) Задача настроить веб-сервер, разобраться с тем как принимать и обрабатывать http запросы. Риск технологии достаточно сложные, банально может не хватить времени.(-/+) //несвоевременная постановка задачи, больше такого не повторится
  • Сергей - Создать таблицы БД, реализовать контроллер с базовыми функциями. Риск - сложность освоение технологии, нехватка времени. (+/-) //процесс идет

(28.09.2011 - 5.10.2011)

  • Александр - извлечение данных при помощи WebHarvest, пара рабочих примеров на сайтах-информаторах(ulmart, ситилинк, яндекс.маркет) (-/+)
  • Руслан - извлечение данных при помощи webHarvest (-/+)
  • Олег - изучить механизмы классификации и кластеризации данных (+/-)
  • Сергей - архитектура БД, работа с mysql в java (+)
  • Ярослав - изучить механизмы анализа текста на семантику (+/-)
  • Артемий - анализ текстов на схожесть (+/-)