Анализ неструктурированных данных

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

О курсе

Курс читается для студентов 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, часть 1 до 23:59 10.10.2017 (ссылка)
  2. Проект 1, часть 2 до 23:59 26.11.2017 (ссылка)
  3. Проект 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интаксические парсеры, универсальные зависимости (слайды)

(дз для 3 курса)

Неделя 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)

Ссылка на дополнительную литературу:

  • [1] Books on natural language processing
  • [2] Text mining for central banks

Литература

  1. Manning, Christopher D., and Hinrich Schütze. Foundations of statistical natural language processing. Vol. 999. Cambridge: MIT press, 1999.
  2. Martin, James H., and Daniel Jurafsky. "Speech and language processing." International Edition 710 (2000): 25.
  3. Cohen, Shay. "Bayesian analysis in natural language processing." Synthesis Lectures on Human Language Technologies 9, no. 2 (2016): 1-274.
  4. Goldberg, Yoav. "Neural Network Methods for Natural Language Processing." Synthesis Lectures on Human Language Technologies 10, no. 1 (2017): 1-309.

Используемые библиотеки

  1. NLTK (link)
  2. pymorphy2 (link)
  3. pymystem3 (link)
  4. readability (link)