Программирование (python) для лингвистов — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Семинары)
(Семинары)
(не показаны 33 промежуточные версии этого же участника)
Строка 7: Строка 7:
 
'''Преподаватель:''' Денис Литвинов ([mailto:4denaas@gmail.com Почта], [https://t.me/denaas Telegram ])
 
'''Преподаватель:''' Денис Литвинов ([mailto:4denaas@gmail.com Почта], [https://t.me/denaas Telegram ])
  
'''Ассистент''' Елизавета Корнеева ([mailto:elisavetinaaa@gmail.com Почта])
+
'''Ассистенты''' Елизавета Корнеева ([mailto:elisavetinaaa@gmail.com Почта], [https://t.me/tithemi Telegram ]), Егор Соловьев ([mailto:easolovev@edu.hse.ru Почта], [https://t.me/esolovev Telegram ])
  
Практические занятия проходят по средам 9:00-10:20 + 2 занятия в четверг (смотрите расписание)
 
  
 
=== Правила выставления оценок ===
 
=== Правила выставления оценок ===
 
итоговая оценка = 0.7*накопленная + 0.3*экзамен   
 
итоговая оценка = 0.7*накопленная + 0.3*экзамен   
  
накопленная оценка — средняя по всем дз 
+
накопленная оценка — средняя по всем домашним заданиям.
  
 +
# При вычислении накопленной оценки округление не производится 
 
# Домашнее задание оценивается по 10-балльной шкале.   
 
# Домашнее задание оценивается по 10-балльной шкале.   
# В случае пропуска дедлайна за каждый пропущенный день снимается 1 балл, пока балл >= 3. Затем, за каждый пропущенный день снимаются по 0.5 балла.   
+
# В случае пропуска дедлайна за каждый пропущенный день снимается 0.5 балла в течении первых 6 дней. Затем, за каждый пропущенный день снимаются по 1 баллу.   
 
# Дедлайны для каждой домашней работы указываются отдельно.   
 
# Дедлайны для каждой домашней работы указываются отдельно.   
 
# В оценке домашнего задания оцениваются: работоспособность программы, использование изложенных средств и методов.   
 
# В оценке домашнего задания оцениваются: работоспособность программы, использование изложенных средств и методов.   
 
# При оценивании программы в первую очередь обращается внимание на то, насколько её работа соответствует требованиям, описанным в задании. Программа, не запускающаяся из-за синтаксических ошибок, не может получить оценку выше 4 баллов. Баллы могут сниматься, в частности, за неточное выполнение задания и отсутствие разбора случаев, из-за которых при исполнении программы может произойти ошибка. Так же оценивается оптимальность решенения (в смысле времени работы и потребляемой памяти). Во вторую очередь оценивается стиль кода.   
 
# При оценивании программы в первую очередь обращается внимание на то, насколько её работа соответствует требованиям, описанным в задании. Программа, не запускающаяся из-за синтаксических ошибок, не может получить оценку выше 4 баллов. Баллы могут сниматься, в частности, за неточное выполнение задания и отсутствие разбора случаев, из-за которых при исполнении программы может произойти ошибка. Так же оценивается оптимальность решенения (в смысле времени работы и потребляемой памяти). Во вторую очередь оценивается стиль кода.   
 
# При обнаружении плагиата в домашнем или контрольном задании это задание получает оценку 0 баллов.
 
# При обнаружении плагиата в домашнем или контрольном задании это задание получает оценку 0 баллов.
# Экзамен проводится в письменной форме.
+
# Экзамен проводится в письменной форме.
  
 
=== Рекомендуемая литература ===
 
=== Рекомендуемая литература ===
# Кормен. Алгоритмы: построение и анализ
+
# Кормен. Алгоритмы: построение и анализ
# Bishop. Pattern Recognition and Machine Learning
+
# Bishop. Pattern Recognition and Machine Learning
# Jurafsky. Speech and Language Processing
+
# Christopher Manning. Foundations of Statistical Natural Language Processing
# Barber. Bayesian Reasoning and Machine Learning
+
  
  
Строка 34: Строка 33:
 
# редактор кода sublime text / notepad++ / PyCharm
 
# редактор кода sublime text / notepad++ / PyCharm
 
# jupyter notebook
 
# jupyter notebook
# numpy, scipy, pandas, matplotlib, seaborn, plotly, scikit-learn, gensim, xgboost
+
# numpy, scipy, pandas, matplotlib, seaborn, scikit-learn, gensim, lightgbm, pytorch
  
  
 
=== Правила сдачи домашних заданий ===
 
=== Правила сдачи домашних заданий ===
Домашние задания сдаются по умолчанию в репозиториях, указанных в [https://goo.gl/jiVnCH форме] '''(пожалуйста, пройдите этот опрос)'''
+
Домашние задания сдаются по умолчанию в репозиториях, указанных в [https://goo.gl/wFr8tr форме] '''(пожалуйста, пройдите этот опрос)'''
  
!!!
+
# Домашнее задание выполняется в jupyter notebook, если явно не указано иное.
# Соблюдайте именование каталогов, классов и сигнатур функций! В противном случае автотесты их не подцепят и ваше решение не будет засчитано.
+
# Не стоит выкладывать в репозиторий запакованные файлы. 
# Если явно не сказано, то в скрипте должен присутствовать только код  класса/функции, без демонстрации их вызовов с какими либо аргументами.
+
# Соблюдайте именование каталогов, классов и сигнатур функций, если они явно указаны. В противном случае автотесты их не подцепят и ваше решение не будет засчитано.
# Если явно не сказано, в репозиторий вы грузите скрипты с раширением *.py или ноутбуки *.ipynb. (Но никак не архивы)
+
 
# Опоздание считается по последнему сданному заданию в домашней работе
 
# Опоздание считается по последнему сданному заданию в домашней работе
  
 
=== Оценки за домашние задания ===
 
=== Оценки за домашние задания ===
[https://docs.google.com/spreadsheets/d/1viv8ahRt7CCDrwb7ngKDan2K1AsW7Z0FjDBteCu3-Y0/edit?usp=sharing Оценки]
+
[https://docs.google.com/spreadsheets/d/1SUG3UjWCez6beNukIFP6sRMnKXBs-jnJaNyh4Ateiu4 оценки]
 +
 
 +
=== Экзамен ===
 +
Экзамен проходит в письменной форме и сотоит из 3 частей
 +
# Решение задачи машинного обучения на ноутбуке
 +
## Необходимые библиотеки numpy, scipy, pandas, scikit-learn, nltk. Проверьте что они у вас стоят, и не слишком старой версии.
 +
## Задачи по мотивам домашних работ + обработка текстовых данных.
 +
# Вопрос по теории.
 +
## Написать формулы где они есть.
 +
# вопрос по применению теории к решению практических задач
 +
## По мотивам теоретических вопросов
 +
## e.g. Каким требованиям должна удовлетворять метрика качества, чтобы ее напрямую можно было оптимизировать с помощью SGD?
 +
 
 +
[http://wiki.cs.hse.ru/index.php?title=Программирование_(python)_для_лингвистов_экзамен вопросы к экзамену]
 +
 
 +
Дополнительные материалы для подготовки:
 +
# [https://github.com/esokolov/ml-course-hse/ курс] Евгения Соколова по машинному обучению на ФКН
 +
# Peter Flatch. Machine Learning
 +
# Bishop. Pattern Recognition and Machine Learning
 +
# [http://scikit-learn.org/stable/tutorial/index.html Scikit-learn tutorials] and [http://scikit-learn.org/stable/user_guide.html User guide]
 +
# [http://cs229.stanford.edu/section/cs229-hmm.pdf Hidden Markov Models Fundamentals]
  
 
== Семинары ==
 
== Семинары ==
Строка 53: Строка 71:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! № !! Тема семинара !! презентация !! материалы семинара !! домашнее задание !! дедлайн
+
! № !! Тема семинара !! материалы семинара !! домашнее задание !! дедлайн
 
|-
 
|-
| 1 || Объекто-ориентированное программирование ||  || [https://github.com/thedenaas/hse_seminars/blob/seminar_1/OOP.ipynb notebook] || [http://wiki.cs.hse.ru/Программирование_(python)_для_лингвистов_дз#tasks%201 Задание 1] || 12.09.17 12:00
+
| 1 || Теория алгоритмов. Фильтр Блума. Алгоритм Рабина-Карпа || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_1 seminar_1] || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_1 assignment_1] || 18.09.2018 12:00
 
|-
 
|-
| 2 || Паттерны проектирования & web mining, part 1 ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_2 notebooks] || [http://wiki.cs.hse.ru/Программирование_(python)_для_лингвистов_дз#tasks%201 Задание 2] || 17.10.17 12:00
+
| 2 || Тестирование программ. Визуализация. Избранные главы теории вероятностей и линейной алгебры. || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_2 seminar_2] ||   ||  
 
|-
 
|-
| 3 || Тестирование и профилирование программ ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_3 notebooks] || [http://wiki.cs.hse.ru/Программирование_(python)_для_лингвистов_дз#tasks%201 Задание 3] || 17.10.17 12:00
+
| 3 || Основные понятия машинного обучения || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_3 seminar_3] || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_3 assignment] || 16.10.2018 12:00
 
|-
 
|-
| 4 || Алгоритм Рабина-Карпа ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_4 notebooks] || [http://wiki.cs.hse.ru/Программирование_(python)_для_лингвистов_дз#tasks%201 Задание 4] || 10.10.17 12:00
+
| 4 || Регуляризация в линейных моделях || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_4 seminar_4] || ||
 
|-
 
|-
| 5 || Scientific libraries: Numpy, scipy, matplotlib || || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_5 notebooks] || ||
+
| 5 || Линейный модели для классификации || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_5 seminar_5] || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_5 assignment] || 16.11.2018 23:59
 
|-
 
|-
| 6 || Scientific libraries: pandas, plotly ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_6 notebooks] || ||
+
| 6 || Decision Trees. Ensembles. ||  [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_6 seminar_6] || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_6 assignment] || 30.11.2018 23:59
 
|-
 
|-
| 7 || Linear Regression ||  ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_7 notes and task] || 18.10.17 12:00
+
| 7 || Feed Forward Neural Networks ||  [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_7 seminar_7] ||  ||
 
|-
 
|-
| 8 || Regularization in linear models || ||  || ||  
+
| 8 || Dimension reduction. Manifold Learning ||   [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_8 seminar_8] ||  ||
 
|-
 
|-
| 9 || Classification with linear models||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_9 data] || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_9 task] || 11.11.17 12:00
+
| 8 || Word2Vec. Glove. Convolutional NN ||   [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_9 seminar_9] || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_9 assignment] || 29.01.2019 23.59
 
|-
 
|-
| 10 || SVM ||  ||  ||  ||
 
|-
 
| 11 || Word embeddings ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_11/dist_representation.ipynb notebook] [https://github.com/thedenaas/hse_seminars/blob/master/seminar_11/data.zip datasets]|| [https://github.com/thedenaas/hse_seminars/blob/master/seminar_11/hw_ner.ipynb  task_1] [https://github.com/thedenaas/hse_seminars/blob/master/seminar_11/hw_sentiment_analysis.ipynb task_2] || 3.12.17 12:00
 
|-
 
| 12 || Decision trees. Random Forest ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_12/trees.ipynb notebook] ||  ||
 
|-
 
| 13 || Boosting ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_13/ notebook] ||  ||
 
|-
 
| 14 || Dimension reduction. PCA, SVD ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_14/ notebook] ||  ||
 
|-
 
| 15 || Clustering. Kmeans, DBSCAN, Agglomerative clustering ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_15/ notebook] ||  ||
 
|-
 
 
 
 
 
|}
 
|}

Версия 19:06, 18 января 2019

О курсе

Курс читается для студентов лингвистов 4-го курса факультета гуманитарных наук.

Проводится с 2017 года.

Преподаватель: Денис Литвинов (Почта, Telegram )

Ассистенты Елизавета Корнеева (Почта, Telegram ), Егор Соловьев (Почта, Telegram )


Правила выставления оценок

итоговая оценка = 0.7*накопленная + 0.3*экзамен

накопленная оценка — средняя по всем домашним заданиям.

  1. При вычислении накопленной оценки округление не производится
  2. Домашнее задание оценивается по 10-балльной шкале.
  3. В случае пропуска дедлайна за каждый пропущенный день снимается 0.5 балла в течении первых 6 дней. Затем, за каждый пропущенный день снимаются по 1 баллу.
  4. Дедлайны для каждой домашней работы указываются отдельно.
  5. В оценке домашнего задания оцениваются: работоспособность программы, использование изложенных средств и методов.
  6. При оценивании программы в первую очередь обращается внимание на то, насколько её работа соответствует требованиям, описанным в задании. Программа, не запускающаяся из-за синтаксических ошибок, не может получить оценку выше 4 баллов. Баллы могут сниматься, в частности, за неточное выполнение задания и отсутствие разбора случаев, из-за которых при исполнении программы может произойти ошибка. Так же оценивается оптимальность решенения (в смысле времени работы и потребляемой памяти). Во вторую очередь оценивается стиль кода.
  7. При обнаружении плагиата в домашнем или контрольном задании это задание получает оценку 0 баллов.
  8. Экзамен проводится в письменной форме.

Рекомендуемая литература

  1. Кормен. Алгоритмы: построение и анализ
  2. Bishop. Pattern Recognition and Machine Learning
  3. Christopher Manning. Foundations of Statistical Natural Language Processing


Программные средства

  1. редактор кода sublime text / notepad++ / PyCharm
  2. jupyter notebook
  3. numpy, scipy, pandas, matplotlib, seaborn, scikit-learn, gensim, lightgbm, pytorch


Правила сдачи домашних заданий

Домашние задания сдаются по умолчанию в репозиториях, указанных в форме (пожалуйста, пройдите этот опрос)

  1. Домашнее задание выполняется в jupyter notebook, если явно не указано иное.
  2. Не стоит выкладывать в репозиторий запакованные файлы.
  3. Соблюдайте именование каталогов, классов и сигнатур функций, если они явно указаны. В противном случае автотесты их не подцепят и ваше решение не будет засчитано.
  4. Опоздание считается по последнему сданному заданию в домашней работе

Оценки за домашние задания

оценки

Экзамен

Экзамен проходит в письменной форме и сотоит из 3 частей

  1. Решение задачи машинного обучения на ноутбуке
    1. Необходимые библиотеки numpy, scipy, pandas, scikit-learn, nltk. Проверьте что они у вас стоят, и не слишком старой версии.
    2. Задачи по мотивам домашних работ + обработка текстовых данных.
  2. Вопрос по теории.
    1. Написать формулы где они есть.
  3. вопрос по применению теории к решению практических задач
    1. По мотивам теоретических вопросов
    2. e.g. Каким требованиям должна удовлетворять метрика качества, чтобы ее напрямую можно было оптимизировать с помощью SGD?

вопросы к экзамену

Дополнительные материалы для подготовки:

  1. курс Евгения Соколова по машинному обучению на ФКН
  2. Peter Flatch. Machine Learning
  3. Bishop. Pattern Recognition and Machine Learning
  4. Scikit-learn tutorials and User guide
  5. Hidden Markov Models Fundamentals

Семинары

Тема семинара материалы семинара домашнее задание дедлайн
1 Теория алгоритмов. Фильтр Блума. Алгоритм Рабина-Карпа seminar_1 assignment_1 18.09.2018 12:00
2 Тестирование программ. Визуализация. Избранные главы теории вероятностей и линейной алгебры. seminar_2
3 Основные понятия машинного обучения seminar_3 assignment 16.10.2018 12:00
4 Регуляризация в линейных моделях seminar_4
5 Линейный модели для классификации seminar_5 assignment 16.11.2018 23:59
6 Decision Trees. Ensembles. seminar_6 assignment 30.11.2018 23:59
7 Feed Forward Neural Networks seminar_7
8 Dimension reduction. Manifold Learning seminar_8
8 Word2Vec. Glove. Convolutional NN seminar_9 assignment 29.01.2019 23.59