Программирование (python) для лингвистов

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

О курсе

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

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

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

Ассистент Елизавета Корнеева (Почта)


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

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

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

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

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

  1. Кормен. Алгоритмы: построение и анализ
  2. Bishop. Pattern Recognition and Machine Learning
  3. Jurafsky. Speech and Language Processing
  4. Barber. Bayesian Reasoning and Machine Learning


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

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


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

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

!!!

  1. Соблюдайте именование каталогов, классов и сигнатур функций! В противном случае автотесты их не подцепят и ваше решение не будет засчитано.
  2. Если явно не сказано, то в скрипте должен присутствовать только код класса/функции, без демонстрации их вызовов с какими либо аргументами.
  3. Если явно не сказано, в репозиторий вы грузите скрипты с раширением *.py или ноутбуки *.ipynb. (Но никак не архивы)
  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 Объекто-ориентированное программирование notebook Assignment 1 12.09.17 12:00
2 Паттерны проектирования & web mining, part 1 notebooks Assignment 2 17.10.17 12:00
3 Тестирование и профилирование программ notebooks Assignment 3 17.10.17 12:00
4 Алгоритм Рабина-Карпа notebooks Assignment 4 10.10.17 12:00
5 Scientific libraries: Numpy, scipy, matplotlib notebooks
6 Scientific libraries: pandas, plotly notebooks
7 Linear Regression notes and Assignment 5 18.10.17 12:00
8 Regularization in linear models
9 Classification with linear models data Assignment 6 11.11.17 12:00
10 SVM
11 Word embeddings notebook datasets Assignment 7 Assignment 8 3.12.17 12:00
12 Decision trees. Random Forest notebook
13 Boosting notebook
14 Dimension reduction. PCA, SVD notebook
15 Clustering. Kmeans, DBSCAN, Agglomerative clustering notebook data Assignment 9 22.12.2017 12.00
16 Topic modeing notebook Assignment 10 24.01.2018 12.00
17 Hidden Markov Models
18 Hidden Markov Models(continued). Feedforward Neural Networks notebooks Assignment 11 25.02.2018 12.00
19 Training Neural Networks. Convolutional and recurrent NN for text classification and language modeling notebooks
20 Basic seq2seq models applied to machine translation notebooks