• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 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