Бакалавриат
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