Рекомендательная система (семинар) — различия между версиями
Ionastasi (обсуждение | вклад) м (Время занятий.) |
(Добавил правила игры) |
||
Строка 1: | Строка 1: | ||
− | + | Семинар проекта [[Рекомендательная система (проект)]]. | |
− | Семинар | + | |
− | Ментор: [[Участник:Simagin.denis| | + | ==Правила игры == |
+ | * '''Ментор:''' [[Участник:Simagin.denis|Симагин Денис]]. | ||
+ | * '''Место:''' офис Яндекса ([https://maps.yandex.ru/213/moscow/?ll=37.590150%2C55.734065&z=18&l=stv%2Csta&panorama%5Bpoint%5D=37.589416%2C55.733747&panorama%5Bdirection%5D=40.412258%2C-11.910596&panorama%5Bspan%5D=130.000000%2C52.209677 место встречи]) | ||
+ | * '''Время:''' c 17:00 до 18:30, опаздывающих ждем не дольше 10 минут. | ||
− | + | Общение с ментором вне занятий семинара приветствуется. Можно задавать вопросы, в том числе философские, или советоваться. Но перед тем, как написать письмо, попробуйте спросить это у [https://ya.ru Яндекса]. Также не обижайтесь, если в ответ вам пришла ссылка на документацию, поверьте, порой сложно объяснить лучше, чем написано там. | |
+ | |||
+ | ===Ключевые точки=== | ||
+ | Сверху нам спущены ключевые точки выполнения проекта. Для нас они скорее явлются формальными, тем не менее мы должны их соблюдать. | ||
+ | # '''1-6 февраля''' - первая неделя занятий со студентами. | ||
+ | # '''22-28 февраля''' - 1 точка, вы определились с ресурсом, и приближайтесь к выполнению заданий на 4. | ||
+ | # '''28 марта - 3 апреля''' - сессия у студентов. | ||
+ | # '''25-30 апреля''' - 2 точка, часть на 4 выполнена и прошла ревью. Вы создали список заданий для повышения оценки и к нему приступили. | ||
+ | # '''30 мая - 3 июня''' - окончание проектной работы, вы готовы, как пионеры. | ||
+ | # '''начало июня''' - конкурс проектов. | ||
+ | |||
+ | |||
+ | ===Репозиторий=== | ||
+ | Мы будем использовать [https://en.wikipedia.org/wiki/Git_(software) git] в качестве системы контроля версий. | ||
+ | Удаленный репозиторий будет находиться на [https://bitbucket.org bitbucket]. Заведите там себе учетную запись и создайте репозиторий учебного проекта. Он должен быть приватным, доступ должен быть только у вас, [https://bitbucket.org/dasimagin/profile/repositories ментора] и [https://bitbucket.org/cs-hse-projects/ кураторов]. | ||
+ | |||
+ | ===Разработка=== | ||
+ | У вас должен быть план и описание проекта, которые выложены на wiki репозитория. Также вы должны вести дневник своей разработки. Указывать там трудности, с которыми столкнулись, причины принятия тех или иных решений, анализ результатов и экспериментов. | ||
+ | |||
+ | Ваш процесс разработки должен выглядеть следующим образом. Вы создаете себе issue, даете исчерпывающее описание. Создаете новую ветку и ведете в ней разработку. Какие-то проверенные куски кода нужно фиксировать в виде commit-ов и делать периодические push в удаленный репозиторий. Когда issue выполнено, вы вливайтесь в master-ветку с помощью merge --squash и делаете commit, название которого соответствует выполненному issue. | ||
==Материалы== | ==Материалы== | ||
+ | |||
===Python=== | ===Python=== | ||
* [https://brett.is/writing/about/my-python-web-crawler/ My Python Web Crawler - Brett.Is] How to write a very simplistic Web Crawler in Python for fun. | * [https://brett.is/writing/about/my-python-web-crawler/ My Python Web Crawler - Brett.Is] How to write a very simplistic Web Crawler in Python for fun. | ||
+ | |||
===Git=== | ===Git=== | ||
* [https://try.github.io Code School - Try Git] интерактивная почти игра, которая учит основным командам Git. | * [https://try.github.io Code School - Try Git] интерактивная почти игра, которая учит основным командам Git. | ||
* [http://git-scm.com/doc Git - Documentation] официальная документация Git. | * [http://git-scm.com/doc Git - Documentation] официальная документация Git. | ||
* [http://git-scm.com/book/ru/v1 Git - Book] перевод довольно обширной обучающей книги о Git от Скотта Шакона. | * [http://git-scm.com/book/ru/v1 Git - Book] перевод довольно обширной обучающей книги о Git от Скотта Шакона. | ||
+ | |||
===Книги=== | ===Книги=== | ||
===Туториалы=== | ===Туториалы=== |
Версия 12:27, 6 февраля 2016
Семинар проекта Рекомендательная система (проект).
Содержание
Правила игры
- Ментор: Симагин Денис.
- Место: офис Яндекса (место встречи)
- Время: c 17:00 до 18:30, опаздывающих ждем не дольше 10 минут.
Общение с ментором вне занятий семинара приветствуется. Можно задавать вопросы, в том числе философские, или советоваться. Но перед тем, как написать письмо, попробуйте спросить это у Яндекса. Также не обижайтесь, если в ответ вам пришла ссылка на документацию, поверьте, порой сложно объяснить лучше, чем написано там.
Ключевые точки
Сверху нам спущены ключевые точки выполнения проекта. Для нас они скорее явлются формальными, тем не менее мы должны их соблюдать.
- 1-6 февраля - первая неделя занятий со студентами.
- 22-28 февраля - 1 точка, вы определились с ресурсом, и приближайтесь к выполнению заданий на 4.
- 28 марта - 3 апреля - сессия у студентов.
- 25-30 апреля - 2 точка, часть на 4 выполнена и прошла ревью. Вы создали список заданий для повышения оценки и к нему приступили.
- 30 мая - 3 июня - окончание проектной работы, вы готовы, как пионеры.
- начало июня - конкурс проектов.
Репозиторий
Мы будем использовать git в качестве системы контроля версий. Удаленный репозиторий будет находиться на bitbucket. Заведите там себе учетную запись и создайте репозиторий учебного проекта. Он должен быть приватным, доступ должен быть только у вас, ментора и кураторов.
Разработка
У вас должен быть план и описание проекта, которые выложены на wiki репозитория. Также вы должны вести дневник своей разработки. Указывать там трудности, с которыми столкнулись, причины принятия тех или иных решений, анализ результатов и экспериментов.
Ваш процесс разработки должен выглядеть следующим образом. Вы создаете себе issue, даете исчерпывающее описание. Создаете новую ветку и ведете в ней разработку. Какие-то проверенные куски кода нужно фиксировать в виде commit-ов и делать периодические push в удаленный репозиторий. Когда issue выполнено, вы вливайтесь в master-ветку с помощью merge --squash и делаете commit, название которого соответствует выполненному issue.
Материалы
Python
- My Python Web Crawler - Brett.Is How to write a very simplistic Web Crawler in Python for fun.
Git
- Code School - Try Git интерактивная почти игра, которая учит основным командам Git.
- Git - Documentation официальная документация Git.
- Git - Book перевод довольно обширной обучающей книги о Git от Скотта Шакона.
Книги
Туториалы
Семинары
S02.03
Первая встреча. Обсуждали организационные моменты. Оговорили, кто какие ресурсы собирается взять для своей рекомендательной системы, но этот выбор еще можно поменять в течение недели. Указания к ресурсу: должно быть достаточно много статей, более-менее одной тематики.
Для хранения кода будет использоваться git, по крайней мере на первых порах. Соответственно, главное задание на эту неделю — разобраться с git'ом.
Также необходимо изучить выбранный ресурс и подумать, каким именно образом выкачивать оттуда статьи (например, бежать по ссылкам или использовать ленту).
Кто уже знает git, по желанию может уже начать писать crawler. Что для этого нужно:
- Скачать всю статью в HTML.
- Распарсить эту статью. Почистить от всякого мусора: картинок, ссылок, прочего, оставить только текст. Если есть опыт работы с базами, то можно использовать их, в противном случае лучше не тратить время на их изучение, достаточно хранить все в обычной директории. Распарсенные статьи хранятся отдельно, у них должны быть свои индексы и нужно уметь сопоставлять этот индекс с url статьи.
- Выкачать таким образом весь ресурс (mining).
- Уметь определять свежесть статьи.
- Уметь получать новые статьи.
Потенциально полезные ссылки:
- Code School - Try Git интерактивная почти игра, которая учит основным командам Git.
- Git - Documentation официальная документация Git.
- Git - Book перевод довольно обширной обучающей книги о Git от Скотта Шакона.
- Пошаговая инструкция по работе с git и github для студентов маленькая обзорная статья, с чего начать.
- My Python Web Crawler - Brett.Is How to write a very simplistic Web Crawler in Python for fun.