• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2020/2021

Программирование и лингвистические данные

Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Новизна полученных знаний»
Направление: 45.03.03. Фундаментальная и прикладная лингвистика
Когда читается: 1-й курс, 1-4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Преподаватели: Клезович Анна Геннадьевна, Леонов Антон Александрович, Ляшевская Ольга Николаевна, Никишина Ирина Александровна, Сапунов Никита Александрович, Сериков Олег Алексеевич
Язык: русский
Кредиты: 8
Контактные часы: 74

Программа дисциплины

Аннотация

Целями освоения дисциплины «Программирование и лингвистические данные» является получение теоретических знаний и практических навыков использования различного компьютерного инструментария в лингвистических исследованиях. Блок «Программирование» посвящен изучению основ программирования на языке Python, алгоритмов, регулярных выражений. Блок «Лингвистические данные» знакомит слушателей с основными компьютерными инструментами и электронными лингвистическими ресурсами, с методами автоматизации сбора, обработки и анализа лингвистического материала, а также со способами представления данных и результатов исследований в виде компьютерных ресурсов.
Цель освоения дисциплины

Цель освоения дисциплины

  • Овладение навыками программирования на языке Python
  • Овладение навыками применения регулярных выражений при работе с текстом
  • Получение опыта применения языка Python для решения задач, возникающих при автоматической обработке текстов
Планируемые результаты обучения

Планируемые результаты обучения

  • Уметь решать прикладные задачи с применением условных конструкций
  • Уметь решать прикладные задачи с применением циклов
  • Уметь производить основные операции с файлами: чтение, запись, изменение
  • Уметь разделять программу на релевантные функции
  • Уметь писать функции и тестировать их работу
  • Уметь искать и устанавливать модули с помощью pip
  • Знать синтаксис и особенности работы регулярных выражений
  • Уметь работать с модулем re
  • Уметь выполнять основные операции с использованием регулярных выражений: поиск, замена, разделение
  • Уметь производить основные операции с файловой системой: поиск файлов и директорий, получение содержимого директории, обход директорий, копирование и перемещение файлов и папок
  • знать основные типы лингвистических ресурсов
  • иметь представление, какие типы лингвистической информации и какие уровни описания языка отражает лингвистический ресурс
  • уметь собирать и корректно интепретировать частотную информацию из корпуса
  • уметь пользоваться различными типами поисковых корпусных систем
  • иметь представление об основных форматах представления текста, кодировке текста
  • уметь выполнять основные операции с текстовыми данными (сортировки, фильтрация, индексирование, выделение подстроки, сводные таблицы)
  • уметь пользоваться полнофункциональными текстовыми и табличными редакторами
  • уметь пользоваться инструментами разметки корпуса (ELAN, UDpipe, акцентуаторы)
  • уметь размечать пользовательские корпусные данные на различных лингвистических и текстовом уровнях
  • Уметь использовать готовые модули в своих программах
  • Уметь решать прикладные задачи с применением условных конструкций и циклов
  • Знать основные конструкции языка Python
  • Уметь запускать программы на Python в командной строке и интерактивном интерпретаторе Python
  • Уметь преобразовывать строки в различные типы данных
  • Знать особенности изменяемых и неизменяемых типов данных
  • Уметь применять словари и списки для работы с данными
  • Уметь пользоваться модулем collections для задач подсчета и подобных им
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Начало работы с Python. Базовые арифметические операции. Переменные
    Установка Python. Знакомство с способами запуска скриптов Python и интерактивным интерпретатором Python. Базовые арифметические операции языка Python. Понятие переменной. Базовые типы данных в Python: числовой, целочисленный, логический, строковый. Преобразование типов.
  • Управляющие конструкции в Python
    Понятие управляющих конструкций. Условные конструкции и операторы if-else. Особенности использования оператора elif.
  • Управляющие конструкции в Python (продолжение)
    Операторы сравнения. Вложенные условные конструкции. Логические операторы.
  • Циклы и индексы в Python
    Оператор []. Циклы for и while. Функция range. Управляющие операторы break, continue. Применение циклов к строкам.
  • Структуры данных в Python
    Списки, индексы, функции для работы со списками, срезы. Строка как индексируемый объект. Словари (ассоциативные массивы), способы их задания в Python и функции для работы с ними. Изменяемые и неизменяемые типы данных. Кортежи. Множества.
  • Работа с файлами
    Работа с файлами в Python: открытие, изменение, сохранение.
  • Функции в Python
    Функции, аргументы, возвращаемые значения. Написание простейших функций. Исключения. Способы отладки программ. Lambda-функции, способы применения lambda-функций.
  • Модули Python
    Понятие модуля. Установка и импортирование модулей. Обзор популярных модулей стандартной библиотеки.
  • Форматы хранения данных
    Различные форматы хранения данных: csv-файлы, json-файлы, txt-файлы. Инструменты стандартной библиотеки Python для работы с json и csv файлами.
  • Регулярные выражения
    Понятие регулярного выражения, примеры регулярных выражений с объяснением принципов их действия. Функции языка Python для работы с регулярными выражениями. Использование регулярных выражений для поиска и замены в Python и редакторе Notepad++. Основные элементы регулярных выражений: диапазоны символов, итерация (оператор «звёздочка»), количество повторений, дизъюнкция, escape-последовательности для обозначения системных символов и групп символов (\w, \d и т. п.), символы начала и конца строки. «Жадные» и «нежадные» квантификаторы. Группы и их использование для анализа данных. Нумерация групп в выражении. Токенизация строк с помощью регулярных выражений и функций Python. Прогрессивные и регрессивные незахватывающие группы. Обратные ссылки (backreferences). Использование групп для замены. Использование регулярных выражений для извлечения информации из текстов на естественном языке, структурированных данных в форматах CSV, HTML, XML. Примеры задач на сбор и обработку информации из XML-файлов Национального корпуса русского языка.
  • Работа с файловой системой
    Функции для работы с файловой системой: обход дерева директорий с помощью os.walk, копирование, перемещение, удаление файлов, создание директорий и операции над ними
  • Лингвистические ресурсы
    "Типы лингвистических данных и ресурсов для их исследования. Специальные базы данных, корпуса, лексикографические ресурсы" Национальные корпусы. Репрезентативность и баланс корпусных данных. Национальный корпус русского языка. Веб-корпуса (SketchEngine и Skell, Aranea). Коллокации. Совместная встречаемость.
  • Основы анализа и обработки текста
    Электронное представление текста. Форматы HTML, XML, Markdown. Кодировки файлов. Поиск с помощью регулярных выражений Анализ корпусных данных. Частотная информация в корпусе
  • Основы анализа и обработки текста (продолжение)
    Работа с таблицами. Сортировки, фильтры, сводные таблицы Совмещение информации из корпусов и словарей. Совмещение данных в таблицах.
  • Методы и инструменты создания корпусов.
    Работа с собственным корпусом. Частотные списки, коллокации, ключевые слова (конкордансер AntConc) Этапы подготовки пользовательских корпусов. Типы разметки мультимедийной информации. Особенности разметки спонтанной речи. Аннотация данных в редакторе ELAN Лемматизация, грамматическая, синтаксическая, акцентуационная разметка русских текстов Разметка минимальных диалогических единиц по цели высказывания, типу интонации. Разметка жестов, мимики и положения тела.
Элементы контроля

Элементы контроля

  • неблокирующий Контрольные работы
    Пересдается в течение недели после окончания пропуска по уважительной причине, но не позднее 10 дней до сессии, если преподавателем не указано иное.
  • неблокирующий Домашние задания
    Пересдается в течение недели после окончания пропуска по уважительной причине, но не позднее 10 дней до сессии, если преподавателем не указано иное.
  • неблокирующий Тесты
  • неблокирующий Проект
    Пересдается в течение недели после окончания пропуска по уважительной причине, но не позднее 10 дней до сессии, если преподавателем не указано иное.
  • неблокирующий Экзамен
    По общим правилам пересдачи экзамена, пропущенного по уважительной причине.
  • неблокирующий Экзамен по КИЛИ
    Пересдается в течение недели после окончания пропуска по уважительной причине, но не позднее 10 дней до сессии.
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (2 модуль)
    0.6 * Домашние задания + 0.1 * Тесты + 0.3 * Экзамен по КИЛИ
  • Промежуточная аттестация (4 модуль)
    Oитог= 0.2*Oпроект+0.2*Oконтрольные+0.2*Oэкзамен+0.2*Oтесты+0.2*Oдз
Список литературы

Список литературы

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

  • Федоров Д. Ю. - ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ PYTHON 2-е изд. Учебное пособие для СПО - М.:Издательство Юрайт - 2019 - 161с. - ISBN: 978-5-534-11961-9 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/programmirovanie-na-yazyke-vysokogo-urovnya-python-446505

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

  • Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. Гуриков. — М. : ФОРУМ : ИНФРА-М, 2017. — 343 с. — (Высшее образование: Бакалавриат). - Режим доступа: http://znanium.com/catalog/product/772265