Статистические методы языковой инженерии
Материалы
Задания
Технологии для выполнения заданий:
- IntelliJ IDEA Ultimate Edition, бесплатная студенческая лицензия
- Python 3.8
- Conda менеджер пакетов python
- Jupyter notebooks внутри IntelliJ IDEA
- NLTK фреймворк для работы с естественным языком
Классификация, наивный Байес
- Найти русские тексты двух произвольных авторов на сайте lib.ru.
- Разбить тексты на предложения
- Обучить классификатор на основе алгоритма наивного Байеса определять автора предложения по входящим в него словам.
- Гиперпараметр: $\alpha$ из алгоритма сглаживания
- Разбить корпус на 80% + 10% + 10%, тестовый, тренировочный валидационный.
Коллокации
Найти большое русское произведение любого автора на сайте lib.ru, отфильтровать слова с маленькими частотами. Найти лучшие коллокации на основе метрики DICE и любых двух других. Сравнить списки полученных коллокаций.
N-грамм модель языка
- Построить N-грамм модели языка на основе всех текстов, найденных в задаче про классификацию методом наивного Байеса.
- Гиперпараметр: алгоритмы сглаживания и их гиперпараметры
- Разбить корпус на 80% + 10% + 10%, тестовый, тренировочный валидационный.
- Определить лучиший алгоритм сглаживания на основе perplexity и определить его perplexity.
- Сгенерировать 100 слов на основе полученной модели.
- Повторить предыдущие действия для N = 1, 2, 3, 4, 5.
Снятие неоднозначности, классификация по контексту
- Взять тексты из первого задания. Выбрать в них два частых существительных и “объединить” их, как будто это одно слово.
- Найти контексты каждого вхождения объединенного слова: по 5 слов в обе стороны. Получается обучающий корпус из контекстов, для которых нам известно, какое было слово в середине до объединения.
- Обучить классификатор для определения исходного слова по контексту, использовать 80% корпуса.
- 10% корпуса + 10% — это тестовый и валидационных корпусы.
- Оценить качество классификатора.
Снятие неоднозначности, кластеризация по контексту
В условиях предыдущей задачи кластеризовать контексты на два кластера. Сравнить полученную кластеризацию с реальным разделением контекстов по исходным словам.
Скрытые марковские процессы, частеречная разметка
- Загрузить корпус с сайта OpenCorpora, выбрать тексты, в которых завершена разметка частей речи.
- Обучить с его помощью потоковый классификатор частей речи, встроенный в NLTK
- Оценить качество классификации.