Рекомендательная система (семинар) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Исправлены ошибки)
(Python)
Строка 32: Строка 32:
 
# Обработке ключей программы - [https://docs.python.org/3/library/argparse.html argparse lib].
 
# Обработке ключей программы - [https://docs.python.org/3/library/argparse.html argparse lib].
 
# Работе с сетью - [https://docs.python.org/3/library/urllib.html URL handling modules].
 
# Работе с сетью - [https://docs.python.org/3/library/urllib.html URL handling modules].
 +
# Пример загрузки страницы - [http://pastebin.com/qcqdQZLD Example]
 
# Регулярным выражениям - [https://docs.python.org/3/library/re.html Regular expression operations].
 
# Регулярным выражениям - [https://docs.python.org/3/library/re.html Regular expression operations].
 
# Парсеру HTML - [https://docs.python.org/3/library/markup.html markup tool].
 
# Парсеру HTML - [https://docs.python.org/3/library/markup.html markup tool].

Версия 22:34, 10 февраля 2016

Семинар проекта Рекомендательная система (проект).

Правила игры

Общение с ментором вне занятий семинара приветствуется. Можно задавать вопросы, в том числе философские, или советоваться. Но перед тем, как написать письмо, попробуйте спросить это у Яндекса. Также не обижайтесь, если в ответ вам пришла ссылка на документацию, поверьте, порой сложно объяснить лучше, чем написано там.

Ключевые точки

Сверху нам спущены ключевые точки выполнения проекта. Для нас они скорее явлются формальными, тем не менее мы должны их соблюдать.

  1. 1-6 февраля - первая неделя занятий со студентами.
  2. 22-28 февраля - 1 точка, вы определились с ресурсом, и приближайтесь к выполнению заданий на 4.
  3. 28 марта - 3 апреля - сессия у студентов.
  4. 25-30 апреля - 2 точка, часть на 4 выполнена и прошла ревью. Вы создали список заданий для повышения оценки и к нему приступили.
  5. 30 мая - 3 июня - окончание проектной работы, вы готовы, как пионеры.
  6. начало июня - конкурс проектов.

Репозиторий

Мы будем использовать git в качестве системы контроля версий. Удаленный репозиторий будет находиться на bitbucket. Заведите там себе учетную запись и создайте репозиторий учебного проекта. Он должен быть приватным, доступ должен быть только у вас, ментора и кураторов.

Разработка

У вас должен быть план и описание проекта, которые выложены на wiki репозитория. Также вы должны вести дневник своей разработки. Указывать там трудности, с которыми столкнулись, причины принятия тех или иных решений, анализ результатов и экспериментов.

Ваш процесс разработки должен выглядеть следующим образом. Вы создаете себе issue, даете исчерпывающее описание. Создаете новую ветку и ведете в ней разработку. Какие-то проверенные куски кода нужно фиксировать в виде commit-ов и делать периодические push в удаленный репозиторий. Когда issue выполнено, вы вливайтесь в master-ветку с помощью merge --squash и делаете commit, название которого соответствует выполненному issue.

Материалы

Python

  1. Обработке ключей программы - argparse lib.
  2. Работе с сетью - URL handling modules.
  3. Пример загрузки страницы - Example
  4. Регулярным выражениям - Regular expression operations.
  5. Парсеру HTML - markup tool.
  • Хорошие библиотеки для математики numpy и scipy, а также plot для графиков.
  • Библиотеки для машинного обучения - SciKit learn.
  • Удобная среда для экспериментов - IPyhton.

Git

  • Code School - Try Git интерактивная почти игра, которая учит основным командам Git.
  • Git - Documentation официальная документация Git.
  • Git - Book перевод довольно обширной обучающей книги о Git от Скотта Шакона.
  • Atlassian git tutorial стань git гуру

Статьи

Семинары

S02.10

S02.03

  1. Обсудили организационные моменты.
  2. Выяснили, кто какие ресурсы собирается взять (выбор можно изменить в течение недели).
  3. Поговорили о git.
  4. Дружно попили чай ;)

Немного о crawler-e

Необходимые операции:

  1. Скачать всю статью в HTML.
  2. Распарсить статью. Почистить от всякого мусора: картинок, ссылок, прочего, оставить только текст. Если есть опыт работы с базами, то можно использовать их, в противном случае лучше не тратить время на их изучение, достаточно хранить все в обычной директории. Распарсенные статьи хранятся отдельно, у них должны быть свои индексы и нужно уметь сопоставлять этот индекс с url статьи.
  3. Добыть ссылки на все статьи.
  4. Определить свежесть статьи.
  5. Получить ссылки нановые статьи.

Задание

  1. Разобраться c гитом, подготовить вопросы.
  2. Создать репозиторий проекта в bitbucket.
  3. Оценить сложность написания crawler-а для своего ресурса, возможно, изменить его.
  4. Кто уже знает git, по желанию может уже начать писать crawler.

Материалы