Введение в анализ текстов на Python для ФГН
Содержание
Описание курса
О курсе
Курс читается на 3 курсе факультета гуманитарных наук для групп БКЛ151 и БКЛ152 в 1, 3 и 4 модулях.
Семинарист: Сергей Кабанов
Ассистенты: Алие Тефикова и Анастасия Родыгина
Семинары проходят по субботам, 3-я и 4-я пары, ауд. 509.
Просьба, по возможности, приходить со своими ноутбуками.
Полезные ссылки
Почта курса: lingvo-python-ml@yandex.ru
Чат курса в телеграм: https://t.me/joinchat/C3XPaw39FpiCBNJKwmqw-g
1 модуль
Семинары
02.09.17 Ознакомительный семинар. Краткое описание курса. Повторение основ программирования на Python: функции и области видимости, встроенные типы данных, модули и пространство имен. Среда разработки IDLE PyCharm. Разработка через тестирование TDD (модули doctest, pytest). Стиль кодирования (PEP8). lab1 (решение Усти)
09.09.17 Введение в ООП-0. Абстракция данных, инкапсуляция, наследование, полиморфизм. Класс, объект. Конструктор и деструктор. Перегрузка операторов-0.
16.09.17 Продолжение ООП-1. Передача аргументов в функцию (args, kwargs). Перегрузка операторов-1. Итераторы и генераторы.
23.09.17 Замыкания. Декораторы.
30.09.17 Алгоритмы. RAM-модель. Сложность алгоритмов и нотация Big-O. Бинарный поиск. Задача сортировки массива: quick-sort, merge-sort, timsort.
30.09.17 Структуры данных. Ассоциативный массив. Хэш-таблицы. Обзор модуля collections.
07.10.17
14.10.17
14.10.17
21.10.17 Работа с Web. XML и HTML как деревья. Парсинг XML (модуль lxml).
28.10.17 Экзамен. Финальный тест. Последний срок сдачи финального проекта.
Правила оценивания
В модуле 10 семинаров.
10 домашних лабораторных работ стоимостью 10 баллов каждая.
Домашний мини-проект с ревью кода стоимостью 40 баллов.
Финальный тест в классе стоимостью 40 баллов.
По желанию: индивидуальное домашнее задание стоимостью 20 баллов.
Шкала перевода баллов в итоговую оценку представлена в таблице.
Итоговая оценка | Суммарные баллы |
---|---|
Отлично (10) | 140+ |
Отлично (9) | 130+ |
Отлично (8) | 120+ |
Хорошо (7) | 100+ |
Хорошо (6) | 90+ |
Удовлетворительно (5) | 70+ |
Удовлетворительно (4) | 60+ |
Незачет | менее 60 |
Лабораторные работы отправлять на почту курса не позднее начала следующего семинара, если не оговорено иное. Правила формления: надо упаковать в архив все решения и тесты задач, решения называть solutionномер.py, архив назвать labномер-имя-фамилия-номер группы.rar, тема письма labномер-имя-фамилия-номер группы
Полезные литература и ссылки
- Лутц, Изучаем Python, 4-е издание, 2011
- Brad Miller, David Ranum, Problem Solving with Algorithms and Data Structures, Release 3.0, 2013
- Michael T. Goodrich, Data Structures and Algorithms in Python, 1st edition, 2013
- Т.Кормен, Ч.Лейзерсон, Р.Ривест, К.Штайн - Алгоритмы. Построение и анализ. Издание 3-е, 2013
- Умнов, Видиолекции ШАДа по Python
- PEP8, коротко, на русском
- Code Like a Pythonista: Idiomatic Python
- A Curious Course on Coroutines and Concurrency
- Python patterns OOP
- Awesome Python, Много разных библиотек
3 - 4 модули
Семинары
13.01.18 Ознакомительный семинар. Правила оценивая курса = правила игры. Постановки и примеры задач машинного обучения. Основные понятия. Задача классификации.
20.01.18 Метрические классификаторы-0. Метод k-ближайших соседей sklearn.kNearestClassifier. [Метрики качества, ] (recall, precision, accuracy, f1-score). Скользящий контроль (k-fold CV).
27.01.18 Метрические классификаторы-1. Метод потенциальных функций. Метод окна Парзена. sklearn.RadiusNeighborsClassifier. sklearn.CentroidNearest
03.02.18 Линейные модели-0. Обобщенные линейные модели, функция потерь. Логистическая регрессия. ROC и PRC - кривые, метрики ROC-AUC, PR-AUC.
Правила оценивания
В 3 - 4 модулях ~20 семинаров.
~8 домашних лабораторных работ стоимостью 20 баллов каждая.
Конкурсное задание в конце 3-го модуля стоимостью 30 баллов.
Конкурсное задание в середине 4-го модуля стоимостью 30 баллов.
По желанию: в конце 4-го модуля можно будет увеличить оценку на 1 балл по десятибалльной шкале, доделав часть несданных лаб. работ.
Шкала перевода баллов в итоговую оценку представлена в таблице.
Итоговая оценка | Суммарные баллы |
---|---|
Отлично (10) | 160+ |
Отлично (9) | 150+ |
Отлично (8) | 140+ |
Хорошо (7) | 120+ |
Хорошо (6) | 110+ |
Удовлетворительно (5) | 90+ |
Удовлетворительно (4) | 70+ |
Незачет | менее 70 |