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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(округления)
(Семинары)
(не показаны 23 промежуточные версии этого же участника)
Строка 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 ])
  
  
Строка 25: Строка 25:
  
 
=== Рекомендуемая литература ===
 
=== Рекомендуемая литература ===
# Кормен. Алгоритмы: построение и анализ
+
# Кормен. Алгоритмы: построение и анализ
# 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 оценки]
  
 
=== Экзамен ===
 
=== Экзамен ===
Строка 61: Строка 59:
  
 
[http://wiki.cs.hse.ru/index.php?title=Программирование_(python)_для_лингвистов_экзамен вопросы к экзамену]
 
[http://wiki.cs.hse.ru/index.php?title=Программирование_(python)_для_лингвистов_экзамен вопросы к экзамену]
 
[https://github.com/thedenaas/hse_exam Задачи]
 
  
 
Дополнительные материалы для подготовки:
 
Дополнительные материалы для подготовки:
# [https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/lecture-notes курс] Евгения Соколова по машинному обучению на ФКН  
+
# [https://github.com/esokolov/ml-course-hse/ курс] Евгения Соколова по машинному обучению на ФКН  
 
# Peter Flatch. Machine Learning
 
# Peter Flatch. Machine Learning
 
# Bishop. Pattern Recognition and Machine Learning
 
# Bishop. Pattern Recognition and Machine Learning
Строка 75: Строка 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 Assignment 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 Assignment 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 Assignment 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 Assignment 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 Assignment 5] || 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 Assignment 6] || 11.11.17 12:00
+
| 9 || 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 || || ||  ||  
+
| 10 || RNN ||   [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_10 seminar_10] || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_10 assignment] || 12.02.2019 23.59
 
|-
 
|-
| 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  Assignment 7] [https://github.com/thedenaas/hse_seminars/blob/master/seminar_11/hw_sentiment_analysis.ipynb Assignment 8] || 3.12.17 12:00
+
| 11 || Seq2Seq ||   [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_11 seminar_11] || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_11 assignment] || 4.03.2019 23.59
 
|-
 
|-
| 12 || Decision trees. Random Forest ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_12/trees.ipynb notebook] || ||
+
| 12 || Subword Embeddings, Metric Learning ||   [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_12 seminar_12] || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_12 assignment] || 19.03.2019 23.59
 
|-
 
|-
| 13 || Boosting || || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_13/ notebook] || ||
+
| 13 || Topic Modeling. Hidden Markov Models ||   [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_13 seminar_13] || [https://github.com/thedenaas/hse_seminars_2018/tree/master/seminar_13 assignment] || 19.03.2019 23.59
 
|-
 
|-
| 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] ||  [https://github.com/thedenaas/hse_seminars/blob/master/seminar_15/data.zip  data]  [https://github.com/thedenaas/hse_seminars/blob/master/seminar_15/hw_titanic.ipynb  Assignment 9]|| 22.12.2017 12.00
 
|-
 
| 16 || Topic modeing ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_16/ notebook] || [http://wiki.cs.hse.ru/Программирование_(python)_для_лингвистов_дз#tasks%201 Assignment 10] || 24.01.2018 12.00
 
|-
 
| 17 || Hidden Markov Models ||  || || ||
 
|-
 
| 18 || Hidden Markov Models(continued). Feedforward Neural Networks ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_18/ notebooks] || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_18/hw_11.ipynb Assignment 11] || 25.02.2018 12.00
 
|-
 
| 19 || Training Neural Networks. Convolutional and recurrent NN for text classification and language modeling ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_19/ notebooks] ||  ||
 
|-
 
| 20 || Basic seq2seq models applied to machine translation  ||  || [https://github.com/thedenaas/hse_seminars/blob/master/seminar_20/ notebooks] ||  ||
 
|-
 
 
 
|}
 
|}

Версия 13:12, 25 марта 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
9 Word2Vec. Glove. Convolutional NN seminar_9 assignment 29.01.2019 23.59
10 RNN seminar_10 assignment 12.02.2019 23.59
11 Seq2Seq seminar_11 assignment 4.03.2019 23.59
12 Subword Embeddings, Metric Learning seminar_12 assignment 19.03.2019 23.59
13 Topic Modeling. Hidden Markov Models seminar_13 assignment 19.03.2019 23.59