Бакалавриат
2020/2021
Программирование и лингвистические данные
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс обязательный (Фундаментальная и компьютерная лингвистика)
Направление:
45.03.03. Фундаментальная и прикладная лингвистика
Кто читает:
Школа лингвистики
Где читается:
Факультет гуманитарных наук
Когда читается:
2-й курс, 1, 2, 4 модуль
Формат изучения:
с онлайн-курсом
Охват аудитории:
для всех кампусов НИУ ВШЭ
Язык:
русский
Кредиты:
3
Контактные часы:
66
Программа дисциплины
Аннотация
Цель курса — продолжить применять компьютерные технологии (в первую очередь, язык программирования Python) для решения возникающих на практике лингвистических задач: автоматическая обработка и анализ текстовых данных, поиск информации и др. Курс посвящён работе с Интернетом, базами данных, программными интерфейсами приложений (API), а также созданию визуализаций и написанию ботов в Telegram. Часть курса посвящена изучению основ объектно-ориентированного программирования, понятий «класс», «объект», «наследование».
Цель освоения дисциплины
- В результате освоения дисциплины студент должен уметь: 1) публиковать свои данные на веб-сайте; 2) пользоваться редактором Notepad++ и программами сравнения текстов для ручной обработки текстовых данных; строить алгоритмы для решения практических задач; 3) использовать средства языка Python для реализации алгоритмов, в частности, специфических для компьютерной лингвистики; 4) пользоваться консолью unix, работать с файловой системой, ставить пакеты; 6) пользоваться англоязычной документацией языка Python. Дисциплина входит в базовую часть профессионального цикла (модуль «Программирование»).
Планируемые результаты обучения
- знает и использует различные форматы данных
- научился создавать веб-приложения и выкладывать их
- знает и использует различные типы данных и различные методы
- владеет модулями скачивания из интернета и обработки текстовых данных
- овладел модулями компьютерной обработки текстовых данных
- овладел модулями взаимодействия с внешними серверами
- овладел модулями визуализации данных
- умеет выбирать подходящий для задачи формат графика, умеет правильно оформлять графические элементы
Содержание учебной дисциплины
- Сбор и обработка текстовых данных с помощью PythonМодуль requests. Язык разметки HTML, каскадные таблицы стилей CSS. Язык разметки XML. Модули html и lxml. Краулеры и создание веб-корпусов. Selenium. Bootstrap.
- Форматы и хранение лингвистических данныхВведение в SQL. Работа с базами данных в Python. Формат JSON.
- Форматы и хранение лингвистических данных (продолжение)Введение в SQL. Работа с базами данных в Python. Формат JSON. Модуль pandas.
- Структуры данных и стандартные методы PythonСтруктуры данных: кортежи (tuples), множества (sets), словари (dictionaries). Генераторы списков и словарей. Обработка исключений.
- Введение в создание веб-приложенийСоздание HTML-форм. Запросы GET и POST. Основы Flask. Основы unix: работа с консолью, установка пакетов, логин в сервер по ssh. Pythonanywhere.
- Обработка естественного языкаОсновы компьютерной обработки текстовых данных. Частотные списки, стоп-слова, закон Ципфа. N-граммы. Корпуса текстов. Лемматизация. Частеречная разметка. Морфологический анализатор Mystem. Библиотеки pymystem3 и pymorphy2. Дистрибутивная семантика и word2vec.
- Обработка естественного языка (продолжение)Матрица TF-IDF. Коллокации и их метрики. Современные вопросы компьютерной лингвистики и использование машинного обучения для их решения. Подходы к машинному переводу и их реализация.
- Взаимодействие с внешними сервисами. API.VK API. Telegram API. GitHub API. Использование SAAS-платформы (Heroku) для развёртывания своего проекта.
- Визуализация данныхБиблиотеки matplotlib и seaborn. Графовое представление данных, модуль networkx. Виды визуализаций и случаи их применения.
Элементы контроля
- проектЭкзамен проходит в письменной форме. Студент загружает свой проект в репозиторий на платформе github. Процедура пересдачи аналогична процедуре сдачи.
- домашние заданияоценка за домашние задания, которая считается так: О д/з= 0,0375 * (О д/з1 + О д/з2 + О д/з3 + О д/з4 + О д/з5 + О д/з6 + О д/з7 + О д/з10 + О д/з11 + О д/з12) + 0,075 * (О д/з8 + О д/з9 + О д/з13)
- квизыусреднённая оценка за мини-квизы, проводимые в начале занятий
Промежуточная аттестация
- Промежуточная аттестация (4 модуль)0.6 * домашние задания + 0.1 * квизы + 0.3 * проект
Список литературы
Рекомендуемая основная литература
- Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. Гуриков. — М. : ФОРУМ : ИНФРА-М, 2020. — 343 с. — (Среднее профессиональное образование). - Режим доступа: http://znanium.com/catalog/product/1042452
Рекомендуемая дополнительная литература
- Регулярные выражения, Фридл, Дж., 2008