Анализ неструктурированных данных
Содержание
- 1 О курсе
- 1.1 Полезные ссылки
- 1.2 Семинары
- 1.3 Дата выдачи/сдачи проектных заданий
- 1.4 Как писать отчёт
- 1.5 Система оценок
- 1.6 Программа
- 1.6.1 Неделя 1 (4-10 сентября)
- 1.6.2 Неделя 2 (11-17 сентября)
- 1.6.3 Неделя 3 (18-24 сентября)
- 1.6.4 Неделя 4 (25 сентября – 1 октября)
- 1.6.5 Неделя 5 (2 октября – 8 октября)
- 1.6.6 Неделя 6 (9 октября – 15 октября)
- 1.6.7 Неделя 7 (16 октября – 22 октября)
- 1.6.8 Неделя 8 (30 октября – 5 ноября)
- 1.6.9 Неделя 9 (6 ноября – 12 ноября)
- 1.6.10 Неделя 10 (13 ноября – 19 ноября)
- 1.6.11 Неделя 11 (20 ноября – 25 ноября)
- 1.6.12 Неделя 12 (27 ноября – 1 декабря)
- 1.6.13 Неделя 13 (4 декабря – 10 декабря)
- 1.6.14 Неделя 13 (11 декабря – 17 декабря)
- 1.7 Рекомендуемые ресурсы
- 1.8 Используемые библиотеки
О курсе
Курс читается для студентов 3-го и 4-го курсов ПМИ ФКН ВШЭ в 1-2 модулях.
Лекторы: Петр Алексеевич Ромов, Екатерина Леонидовна Черняк
Лекции проходят по вторникам, 15:10 – 16:30 , ауд. 509.
Полезные ссылки
Репозиторий с материалами на GitHub: https://github.com/HSE-NLP
Сдача домашних заданий по электронной почте: amilinguaHW@gmail.com
telegram: https://t.me/nlp_hse
Семинары
Группа | Преподаватель | Расписание |
---|---|---|
АДИС | Дмитрий Фролов | вторник, 18:10 – 19:30, ауд. 501 |
БПМИ141 МОП | Анна Шишкова | четверг, 13:40 – 15:00, ауд. 501 |
БПМИ142 МОП | Мурат Апишев | четверг, 10:30 – 11:50, ауд. 322 |
Дата выдачи/сдачи проектных заданий
- Проект 1, часть 1 до 23:59 10.10.2017 (ссылка)
- Проект 1, часть 2 до 23:59 26.11.2017 (ссылка)
- Проект 2, до 23:59 20.12.2017 (ссылка)
Как писать отчёт
1) Содержание отчёта. Вне зависимости от того, пишете ли вы отчёт в latex, или в jupyter notebook или ещё где-то, нормальный отчёт должен включать в себя:
— Краткую постановку задачи и формулировку задания
— Описание минимума необходимой теории и/или описание используемых инструментов
— Подробное пошаговый рассказ о проделанной работе
— Аккуратно оформленные результаты
— Внятные выводы
Все эти пункты долны быть чётко отмечены заголовками, если они слишком велики, то можно использовать подзаголовки. Словом, читатель не должен тратить время на навигацию.
2) Стилистика. Отчёт —- это несколько формальный текст. Он не пишется от первого лица. В нём не надо рассказывать про свою криворукость, про то, как красиво поют птички за окном и т.п. Не надо обращаться к читателю (особенно на "ты", среди вас уже есть такие "отличившиеся"), ни в тексте, ни в комментах к коду (если это ноутбук). Комментарии к коду, кстати, лучше писать на английском.
Текст не должен содержать миллиарда опечаток и должен удовлетворять хоть каким-то минимальным стилистическим требованиям. Русский язык богат синонимами, и этим нужно пользоваться. Вот такие вещи писать НЕ надо:
"Самое важное улучшение было в улучшении Prior Model (путь улучшения тоже взят из Word Alignment Models")."
Слова в предложениях должны быть согласованными.
3) Если в отчёте (презентации) фигурируют картинки из сети, они должны быть в тему. И к ним надо обязательно ставить маленькую подпись с указанием источника, или же прописать его явно в тексте.
Подсказка (просто на всякий случай): задание делается гораздо качественнее и аккуратнее, если его не откладывать на последний вечер;)
Система оценок
Результирующая оценка рассчитывается по формуле:
Oитоговая = 0.8 * Oнакопл + 0.2 * Оэкз
Накопленная оценка рассчитывается по формуле:
Oнакопл = 0.4 * Oпроект1 + 0.4 * Oпроект2 + 0.2 * Одз+cем
Программа
Неделя 1 (4-10 сентября)
Лекция (Е. Черняк): Обзор курса: мастер-классы, кейсы, проекты. Введение в автоматическую обработку текстов. (слайды)
Семинар: Библиотека nltk (слайды и дз) с семинара)
Неделя 2 (11-17 сентября)
Лекция (П. Ромов): Форматы данных, способы хранения, принципы работы интернета. Краулинг. Regexp. Unicode. (слайды)
Семинар: Библиотеки lxml, beautifulsoup, scrapy. Задание для группы 3-4 курс, вечер: (ссылка) (дедлайн на все 23.59 14.09, делается и присылается индивидуально!). (слайды с семинара)
Неделя 3 (18-24 сентября)
Лекция (Е. Черняк): Морфологический анализ, основные задачи и подходы. Стеммер Портера, поиск по словарю, скрытые цепи Маркова. Современные задачи морфологического анализа. (слайды)
Семинар: SENNA, Томита-парсер, отношения между словами. Задание для группы 3-4 курс, вечер: (ссылка), слайды семинара 19.09 (ссылка). Задание для БПМИ142 МОП (ссылка). (дедлайн на все 23.59 21.09, делается и присылается индивидуально!). (слайды с семинара вместе с заданием)
Неделя 4 (25 сентября – 1 октября)
Лекция (приглашённый лектор Иван Смуров): Синтаксический анализ (syntactic parsing) - одна из классических задач NLP, заключающейся в построении по последовательности текста соответствующего ей синтаксического разбора. Задача имеет продолжительную и богатую историю и решалась с помощью различных методов - от вероятностных контекстно-свободных грамматик до нейросетей с использованием sequence-to-sequence архитектур. На лекции будет рассказано о популярном в литературе подходе - использованию transition-based парсеров. Этод подход, восходящий к shift-reduce анализаторам классических логик, был впервые использован в применении к задаче синтаксического анализа Й. Нивре в 2003 году. В 2014 году метод был адаптирован для использования нейросетей Д. Ченом и К. Маннингом из Стенфордского университета и, наконец, в 2016 он послужил основой для популярного парсера SynaxNet, разработанного в Google. (слайды)
О лекторе:
Иван Смуров – сотрудник кафедр Алгоритмов и Технологий Программирования и Компьютерной Лингвистики МФТИ, разрабатчик научно-исследовательского отдела компании ABBYY. Является специалистом по машинному обучению, компьютерной и вычислительной лингвистике, математической логике. Область основных интересов – обработка текстов на естественных языках.
Семинар: SyntaxNet, cинтаксические парсеры, универсальные зависимости (слайды)
Неделя 5 (2 октября – 8 октября)
Лекция (Е. Черняк): Статистический анализ текстов. Законы Ципфа и Хипса. Методы извлечения ключевых слов и словосочетаний. Векторная модель. (слайды)
Семинар: Ключевые слова, n-граммы, коллокации (слайды и дз), (слайды для группы 142)
Неделя 6 (9 октября – 15 октября)
Лекция (приглашенный лектор Анна Потапенко): Дистрибутивная семантика. В курсе вы уже поговорили о морфологии и синтаксисе, в этой лекции мы поднимемся на следующий уровень анализа языка и поговорим о семантике - о том, как из текстов извлекать смысл отдельных слов и целых предложений. Смысл будем кодировать векторами - обычными векторами вещественных чисел. Мы начнем с классических моделей - подсчета PMI слов и применения SVD для понижения размерности матриц. Затем поговорим о том, как в эту картину укладывается нашумевший word2vec. Разберемся, почему это не deep learning, и почему король - мужчина + женщина != королева. Затем поговорим о других популярных и более новых подходах обучения векторных представлений слов: GloVe, FastText, StarSpace. Во второй части лекции перейдем к предложениям и поговорим о 3 типах нейронных сетей, позволяющих строить их векторные представления: это конволюционные, рекуррентные и рекурсивные нейронные сети. Здесь мы увидим, что модели синтаксиса и другие лингвистические знания хорошо помогают собрать из отдельных слов смысл всего предложения. (слайды)
О лекторе: Анна занимается построением векторных представлений текста в аспирантуре у К.В. Воронцова. За время аспирантуры Анна дважды стажировалась в компании Google, где оба раза занималась исследованиями в области NLP - дистрибутивной семантикой и диалоговыми системами. Анна закончила ВМК МГУ и Школу Анализа Данных Яндекса, теперь она ведет там семинары, а также готовит онлайн-курс по NLP на платформе Coursera.
Неделя 7 (16 октября – 22 октября)
Лекция (М. Апишев): Тематическое моделирование. Определения. PLSA, LDA, аддитивная регуляризация (слайды).
Лекция у журналистов данных (Е. Черняк): Классификация текстов, метод наивного Байеса, логистическая регрессия (слайды).
Семинар: Тематическое моделирование
Неделя 8 (30 октября – 5 ноября)
Лекция у журналистов данных (Е. Черняк): Классификация текстов, метод наивного Байеса, логистическая регрессия, сверточные нейронные сети, Fast Text. (слайды)
Семинар: Классификация и анализ тональности. (слайды и дз)
Неделя 9 (6 ноября – 12 ноября)
Лекция (приглашенный лектор Алексей Шаграев): Информационный поиск.
В лекции будут обсуждаться различные прикладные задачи машинного обучения в информационном поиске, возникающие при разработке поисковых систем. Среди них: - кластеризация новостных сообщений - построение метрик качества для поисковых систем и оптимизация под них - классическое ранжирование и обучение ранжированию по пользовательским данным - разнообразие и свежесть в поисковой выдаче
О лекторе: Алексей Шаграев, к.т.н., руководитель службы разработки свеже-социального поиска Яндекса
Семинар Информационный поиск (слайды)
Неделя 10 (13 ноября – 19 ноября)
Лекция (Е. Черняк) Языковые модели. Счетные модели и нейронные модели. Реккурентные нейронные сети. LSTM.
Семинар Автоматическая генерация текстов (слайды) (слайды группы 142)
Неделя 11 (20 ноября – 25 ноября)
Лекция (Е. Черняк) Извлечение информации: именованные сущности, отношения, факты и события. Использование методов классификации и методов классификации последовательностей. MEMM, CRF, BiLSTM-CRF.
Семинар (слайды)
Неделя 12 (27 ноября – 1 декабря)
Лекция (Е. Черняк) Генерация текстов. Обучение с подкреплением (reinforcment learning) в задачах генерации текстов (обзор). (слайды)
Семинар Вопросно-ответные системы (слайды)
Неделя 13 (4 декабря – 10 декабря)
Лекция (приглашенный лектор Сергей Губанов): Исправление опечаток
Начиная с самых основ и заканчивая машинным обучением, будет рассказано о том, как устроен современный спеллчекер, способный обрабатывать поток поисковых запросов Яндекса.
О лекторе: Сергей Губанов, руководитель группы ядра машинного перевода, работаю над исправлением опечаток и над нейросетевым машинным переводом.
Неделя 13 (11 декабря – 17 декабря)
Лекция (приглашенный лектор Василий Быль): Обработка речи
Лекция будет посвящена общему устройству систем распознавания речи и тому, какое место в них занимают языковые модели.
О лекторе: Василий Быль руководит бригадой (небольшой группой) языковых моделей в отделе голосовых технологий Яндекса.
Рекомендуемые ресурсы
На английском
- Jurafsky & Martin (link)
- Курс Лауры Каллмайер по МО для АОТ (link)
- Курс Нильса Раймерса по DL для АОТ (link)
- Курс в Оксфорде по DL для АОТ (link)
- Курс в Стенфорде по DL для AOT (link)
- Материалы по обучению с подкреплением (Reinforcment Learning) (link)
На русском (и про русский, в основном)
- НКРЯ (link)
- Открытый корпус (link)
- Дистрибутивные семантические модели для русского языка (link)
- Морфология (link)
- Синтаксис (link)
- Томита-парсер (link)
- Все на свете: (mathlingvo), (nlpub)
- Text Visualisation browser: (link)
Ссылка на дополнительную литературу:
Литература
- Manning, Christopher D., and Hinrich Schütze. Foundations of statistical natural language processing. Vol. 999. Cambridge: MIT press, 1999.
- Martin, James H., and Daniel Jurafsky. "Speech and language processing." International Edition 710 (2000): 25.
- Cohen, Shay. "Bayesian analysis in natural language processing." Synthesis Lectures on Human Language Technologies 9, no. 2 (2016): 1-274.
- Goldberg, Yoav. "Neural Network Methods for Natural Language Processing." Synthesis Lectures on Human Language Technologies 10, no. 1 (2017): 1-309.