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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Ссылки для python)
Строка 29: Строка 29:
  
 
===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://docs.python.org/3/tutorial/index.html Python],  и его стандартной [https://docs.python.org/3/library/index.html библиотеке]. Уделите внимание:
 +
# Обработке ключей программы - [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/re.html Regular expression operations].
 +
# Парсеру HTML - [https://docs.python.org/3/library/markup.html markup tool].
 +
 
 +
* Хорошие библиотеки для математики [http://docs.scipy.org/doc/numpy/reference/ numpy] и [http://docs.scipy.org/doc/scipy/reference/ scipy], а также [http://matplotlib.org plot] для графиков.
 +
* Библиотеки для машинного обучения - [http://scikit-learn.org/stable/index.html SciKit learn].
 +
* Удобная среда для экспериментов - [http://ipython.org/notebook IPyhton].
  
 
===Git===
 
===Git===
Строка 36: Строка 44:
 
* [http://git-scm.com/book/ru/v1 Git - Book] перевод довольно обширной обучающей книги о Git от Скотта Шакона.
 
* [http://git-scm.com/book/ru/v1 Git - Book] перевод довольно обширной обучающей книги о Git от Скотта Шакона.
  
===Книги===
+
===Статьи===
===Туториалы===
+
* [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.
 +
 
 
== Семинары ==
 
== Семинары ==
 
===S02.03===
 
===S02.03===

Версия 12:48, 6 февраля 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. Регулярным выражениям - Regular expression operations.
  4. Парсеру HTML - markup tool.
  • Хорошие библиотеки для математики numpy и scipy, а также plot для графиков.
  • Библиотеки для машинного обучения - SciKit learn.
  • Удобная среда для экспериментов - IPyhton.

Git

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

Статьи

Семинары

S02.03

Первая встреча. Обсуждали организационные моменты. Оговорили, кто какие ресурсы собирается взять для своей рекомендательной системы, но этот выбор еще можно поменять в течение недели. Указания к ресурсу: должно быть достаточно много статей, более-менее одной тематики.

Для хранения кода будет использоваться git, по крайней мере на первых порах. Соответственно, главное задание на эту неделю — разобраться с git'ом.

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

Кто уже знает git, по желанию может уже начать писать crawler. Что для этого нужно:

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

Потенциально полезные ссылки: