Анализ неструктурированных данных — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м (Неделя 1 (4-10 сентября))
 
(не показано 88 промежуточных версии 6 участников)
Строка 25: Строка 25:
 
| АДИС || Дмитрий Фролов  ||  вторник, 18:10 – 19:30, ауд. 501
 
| АДИС || Дмитрий Фролов  ||  вторник, 18:10 – 19:30, ауд. 501
 
|-
 
|-
| БПМИ141 МОП || Анна Шишкова  ||  четверг, 13:40 – 15:00, ауд. 322
+
| БПМИ141 МОП || Анна Шишкова  ||  четверг, 13:40 – 15:00, ауд. 501
 
|-
 
|-
 
| БПМИ142 МОП || Мурат Апишев  ||  четверг, 10:30 – 11:50, ауд. 322
 
| БПМИ142 МОП || Мурат Апишев  ||  четверг, 10:30 – 11:50, ауд. 322
Строка 31: Строка 31:
 
|}
 
|}
  
=== Дата выдачи/сдачи дз ===
+
=== Дата выдачи/сдачи проектных заданий ===
  TBA
+
   
 +
 
 +
# Проект 1, часть 1 до 23:59 10.10.2017 [https://www.dropbox.com/s/czzb0meu45l5tvj/NLP_project1.pdf?dl=0 (ссылка)]
 +
# Проект 1, часть 2 до 23:59 26.11.2017 [https://www.dropbox.com/s/h8oqt082v6ac68f/NLP_project2.pdf?dl=0 (ссылка)]
 +
# Проект 2, до 23:59 20.12.2017 [https://drive.google.com/open?id=1jLPAIUt5Eb_9ORFnD-XFAVHCyLj00jZQ (ссылка)]
 +
 
 +
=== Как писать отчёт ===
 +
 
 +
1) Содержание отчёта. Вне зависимости от того, пишете ли вы отчёт в latex, или в jupyter notebook или ещё где-то, нормальный отчёт должен включать в себя:
 +
 
 +
— Краткую постановку задачи и формулировку задания
 +
 
 +
— Описание минимума необходимой теории и/или описание используемых инструментов
 +
 
 +
— Подробное пошаговый рассказ о проделанной работе
 +
 
 +
— Аккуратно оформленные результаты
 +
 
 +
— Внятные выводы
 +
 
 +
Все эти пункты долны быть чётко отмечены заголовками, если они слишком велики, то можно использовать подзаголовки. Словом, читатель не должен тратить время на навигацию.
 +
 
 +
2) Стилистика. Отчёт —- это несколько формальный текст. Он не пишется от первого лица. В нём не надо рассказывать про свою криворукость, про то, как красиво поют птички за окном и т.п. Не надо обращаться к читателю (особенно на "ты", среди вас уже есть такие "отличившиеся"), ни в тексте, ни в комментах к коду (если это ноутбук). Комментарии к коду, кстати, лучше писать на английском.
 +
 
 +
Текст не должен содержать миллиарда опечаток и должен удовлетворять хоть каким-то минимальным стилистическим требованиям. Русский язык богат синонимами, и этим нужно пользоваться. Вот такие вещи писать НЕ надо:
 +
 
 +
"Самое важное улучшение было в улучшении Prior Model (путь улучшения тоже взят из Word Alignment Models")."
 +
 
 +
Слова в предложениях должны быть согласованными.
 +
 
 +
3) Если в отчёте (презентации) фигурируют картинки из сети, они должны быть в тему. И к ним надо обязательно ставить маленькую подпись с указанием источника, или же прописать его явно в тексте.
 +
 
 +
Подсказка (просто на всякий случай): задание делается гораздо качественнее и аккуратнее, если его не откладывать на последний вечер;)
  
 
=== Система оценок ===
 
=== Система оценок ===
Строка 42: Строка 74:
 
Накопленная оценка рассчитывается по формуле:
 
Накопленная оценка рассчитывается по формуле:
  
O<sub>накопл</sub> = 0.4 * O<sub>проект1</sub> +  0.4 * O<sub>проект2</sub> +  0.2 * (О<sub>дз</sub> + О<sub>сем</sub>) / 2
+
O<sub>накопл</sub> = 0.4 * O<sub>проект1</sub> +  0.4 * O<sub>проект2</sub> +  0.2 * О<sub>дз+cем
  
 +
[https://docs.google.com/spreadsheets/d/1T_1LqhQ4fWJGh3s-lA0MsNoMTYIXIH9iUY3bu-Vpcrg/edit?usp=sharing, (ведомость)]
  
 
=== Программа ===  
 
=== Программа ===  
Строка 53: Строка 86:
 
'''Семинар''': Библиотека nltk
 
'''Семинар''': Библиотека nltk
 
[https://www.dropbox.com/s/81ur98bn5wa9thq/sem1.pdf?dl=0 (слайды и дз)]
 
[https://www.dropbox.com/s/81ur98bn5wa9thq/sem1.pdf?dl=0 (слайды и дз)]
 +
[https://www.dropbox.com/s/mk0t49gydm516lb/Sem%201.ipynb?dl=0 (код с семинара)]
 +
 
==== Неделя 2 (11-17 сентября)  ====  
 
==== Неделя 2 (11-17 сентября)  ====  
  
'''Лекция (П. Ромов)''': Форматы данных, способы хранения, принципы работы интернета. Краулинг. Regexp. Unicode.  
+
'''Лекция (П. Ромов)''': Форматы данных, способы хранения, принципы работы интернета. Краулинг. Regexp. Unicode. [https://www.dropbox.com/s/xm5ob8mkm7lrf3p/HSE_NLP_Lection2.pdf?dl=0 (слайды)]
  
'''Семинар''': Библиотеки lxml, beautifulsoup, scrapy
+
'''Семинар''': Библиотеки lxml, beautifulsoup, scrapy. Задание для группы 3-4 курс, вечер: [http://dmitryfrolov.com/pdf/task_1.pdf (ссылка)] (дедлайн на все 23.59 14.09, делается и присылается индивидуально!). [https://www.dropbox.com/s/0kyl4w7rhaih90f/sem2.pdf?dl=0 (слайды с семинара)]
 +
 
 +
==== Неделя 3 (18-24 сентября)  ====
 +
 
 +
'''Лекция (Е. Черняк)''': Морфологический анализ, основные задачи и подходы. Стеммер Портера, поиск по словарю, скрытые цепи Маркова. Современные задачи морфологического анализа. [https://www.dropbox.com/s/urdf9cpsnp6uvml/2_morph.pdf?dl=0 (слайды)]
 +
 
 +
'''Семинар''': SENNA, Томита-парсер, отношения между словами. Задание для группы 3-4 курс, вечер: [http://dmitryfrolov.com/pdf/task_3.pdf (ссылка)], слайды семинара 19.09  [http://dmitryfrolov.com/pdf/sem3_new.pdf (ссылка)]. Задание для БПМИ142 МОП [http://wiki.cs.hse.ru/images/7/7c/Task.png (ссылка)]. (дедлайн на все 23.59 21.09, делается и присылается индивидуально!).  [https://www.dropbox.com/s/hvojoqp7zb3p4sk/sem3__Copy_.pdf?dl=0 (слайды с семинара вместе с заданием)]
 +
 
 +
 
 +
 
 +
 
 +
 
 +
==== Неделя 4 (25 сентября – 1 октября)  ====
 +
 
 +
'''Лекция (приглашённый лектор Иван Смуров):''' Синтаксический анализ (syntactic parsing) - одна из классических задач NLP, заключающейся в построении по последовательности текста соответствующего ей синтаксического разбора. Задача имеет продолжительную и богатую историю и решалась с помощью различных методов - от вероятностных контекстно-свободных грамматик до нейросетей с использованием sequence-to-sequence архитектур. На лекции будет рассказано о популярном в литературе подходе  - использованию transition-based парсеров. Этод подход, восходящий к shift-reduce анализаторам классических логик, был впервые использован в применении к задаче синтаксического анализа Й. Нивре в 2003 году. В 2014 году метод был адаптирован для использования нейросетей Д. Ченом и К. Маннингом из Стенфордского университета и, наконец, в 2016 он послужил основой для популярного парсера SynaxNet, разработанного в  Google. [https://www.dropbox.com/s/yceqgugsc6tdcxs/transition-based_%D0%BF%D0%B0%D1%80%D1%81%D0%B5%D1%80%D1%8B.pptx?dl=0 (слайды)]
 +
 
 +
 
 +
О лекторе:
 +
Иван Смуров – сотрудник кафедр Алгоритмов и Технологий Программирования и Компьютерной Лингвистики МФТИ, разрабатчик научно-исследовательского отдела компании ABBYY. Является специалистом  по машинному обучению, компьютерной и вычислительной лингвистике, математической логике. Область основных интересов – обработка текстов на естественных языках.
 +
 
 +
 
 +
'''Семинар:''' SyntaxNet, cинтаксические парсеры, универсальные зависимости [https://yadi.sk/d/OddFv-y33NBshk (слайды)]
 +
 
 +
[http://dmitryfrolov.com/pdf/task4.jpg (дз для 3 курса)]
 +
 
 +
==== Неделя 5 (2 октября – 8 октября)  ====
 +
 
 +
'''Лекция (Е. Черняк):''' Статистический анализ текстов. Законы Ципфа и Хипса. Методы извлечения ключевых слов и словосочетаний.  Векторная модель. [https://www.dropbox.com/s/fzqcvqb7qu4d27j/4_StatAnalysis.pdf?dl=0 (слайды)]
 +
 
 +
'''Семинар:''' Ключевые слова, n-граммы, коллокации [https://www.dropbox.com/s/98grun1bl2pqy2p/sem5.pdf?dl=0 (слайды и дз)], [https://yadi.sk/i/BND6d9P73NZLCE (слайды для группы 142)]
 +
 
 +
 
 +
 
 +
==== Неделя 6 (9 октября – 15 октября)  ====
 +
 
 +
'''Лекция (приглашенный лектор Анна Потапенко):''' Дистрибутивная семантика. В курсе вы уже поговорили о морфологии и синтаксисе, в этой лекции мы поднимемся на следующий уровень анализа языка и поговорим о семантике - о том, как из текстов извлекать смысл отдельных слов и целых предложений. Смысл будем кодировать векторами - обычными векторами вещественных чисел.  Мы начнем с классических моделей - подсчета PMI слов и применения SVD для понижения размерности матриц. Затем поговорим о том, как в эту картину укладывается нашумевший word2vec. Разберемся, почему это не deep learning, и почему король - мужчина + женщина != королева. Затем поговорим о других популярных и более новых подходах обучения векторных представлений слов: GloVe, FastText, StarSpace. Во второй части лекции перейдем к предложениям и поговорим о 3 типах нейронных сетей, позволяющих строить их векторные представления: это конволюционные, рекуррентные и рекурсивные нейронные сети. Здесь мы увидим, что модели синтаксиса и другие лингвистические знания хорошо помогают собрать из отдельных слов смысл всего предложения. [https://www.dropbox.com/s/f3hklz6yko4ohqs/Potapenko_lecture_distr.pdf?dl=0 (слайды)]
 +
 
 +
О лекторе: Анна занимается построением векторных представлений текста в аспирантуре у К.В. Воронцова. За время аспирантуры Анна дважды стажировалась в компании Google, где оба раза занималась исследованиями в области NLP - дистрибутивной семантикой и диалоговыми системами. Анна закончила ВМК МГУ и Школу Анализа Данных Яндекса, теперь она ведет там семинары, а также готовит онлайн-курс по NLP на платформе Coursera.
 +
 
 +
==== Неделя 7 (16 октября – 22 октября)  ====
 +
 
 +
'''Лекция (М. Апишев):''' Тематическое моделирование. Определения. PLSA, LDA, аддитивная регуляризация [https://www.dropbox.com/s/4mjxzjk6njvzzrl/MelLain_HSE_nlp_TM_lection%20%283%29.pdf?dl=0 (слайды)].
 +
 
 +
'''Лекция у журналистов данных (Е. Черняк):'''  Классификация текстов, метод наивного Байеса, логистическая регрессия [https://www.dropbox.com/s/tcj33fdgvetdvg3/classification.slides.html?dl=0 (слайды)].
 +
 
 +
'''Семинар:''' [https://yadi.sk/i/zct5pith3PYAmz Тематическое моделирование]
 +
 
 +
==== Неделя 8 (30 октября – 5 ноября)  ====
 +
 
 +
'''Лекция у журналистов данных (Е. Черняк):'''  Классификация текстов, метод наивного Байеса, логистическая регрессия, сверточные нейронные сети, Fast Text. [https://www.dropbox.com/s/kdcs4mvpb7o9cte/classification.slides%202.html?dl=0 (слайды)]
 +
 
 +
'''Семинар:'''  Классификация и анализ тональности. [https://www.dropbox.com/s/sid2nto8gmjys2y/sem8.pdf?dl=0 (слайды и дз)]
 +
 
 +
==== Неделя 9 (6 ноября – 12 ноября)  ====
 +
 
 +
'''Лекция (приглашенный лектор Алексей Шаграев):''' Информационный поиск.
 +
 
 +
В лекции будут обсуждаться различные прикладные задачи машинного обучения в информационном поиске, возникающие при разработке поисковых систем. Среди них:
 +
- кластеризация новостных сообщений
 +
- построение метрик качества для поисковых систем и оптимизация под них
 +
- классическое ранжирование и обучение ранжированию по пользовательским данным
 +
- разнообразие и свежесть в поисковой выдаче
 +
 
 +
[https://www.dropbox.com/s/0btntom44qve5q5/ML%20-%20%D0%B4%D0%BB%D1%8F%20%D0%BA%D1%80%D1%83%D1%82%D1%8B%D1%85%20%D1%81%D1%82%D1%83%D0%B4%D0%B5%D0%BD%D1%82%D0%BE%D0%B2.pptx?dl=0 (слайды)]
 +
 
 +
О лекторе: Алексей Шаграев, к.т.н., руководитель службы разработки свеже-социального поиска Яндекса
 +
 
 +
'''Семинар''' Информационный поиск [https://www.dropbox.com/s/h2u3f26jjpbgd9u/sem9___final.pdf?dl=0 (слайды)]
 +
 
 +
==== Неделя 10 (13 ноября – 19 ноября)  ====
 +
 
 +
'''Лекция (Е. Черняк)'''  Языковые модели. Счетные модели и нейронные модели. Реккурентные нейронные сети. LSTM.
 +
 
 +
'''Семинар''' Автоматическая генерация текстов [https://www.dropbox.com/s/7p7l0azbj948cnk/sem10.pdf?dl=0 (слайды)] [https://yadi.sk/i/jTNrjF283PzYz8 (слайды группы 142)]
 +
 
 +
==== Неделя 11 (20 ноября – 25 ноября)  ====
 +
 
 +
'''Лекция (Е. Черняк)'''  Извлечение информации: именованные сущности, отношения, факты и события. Использование методов классификации и методов классификации последовательностей. MEMM, CRF, BiLSTM-CRF.
 +
 
 +
'''Семинар''' [http://dmitryfrolov.com/pdf/sem11.pdf (слайды)]
 +
 
 +
 
 +
==== Неделя 12 (27 ноября – 1 декабря)  ====
 +
 
 +
'''Лекция (Е. Черняк)''' Генерация текстов. Обучение с подкреплением (reinforcment learning) в задачах генерации текстов (обзор). [https://www.dropbox.com/s/god4t70rwe1zlwm/1_NLG.pdf?dl=0 (слайды)]
 +
 
 +
'''Семинар''' Вопросно-ответные системы [http://dmitryfrolov.com/pdf/sem12.pdf (слайды)]
 +
 
 +
 
 +
==== Неделя 13 (4 декабря – 10 декабря)  ====
 +
 
 +
'''Лекция (приглашенный лектор Сергей Губанов):''' Исправление опечаток
 +
 
 +
Начиная с самых основ и заканчивая машинным обучением, будет рассказано о том, как устроен современный спеллчекер, способный обрабатывать поток поисковых запросов Яндекса.
 +
 
 +
О лекторе: Сергей Губанов, руководитель группы ядра машинного перевода, работаю над исправлением опечаток и над нейросетевым машинным переводом.
 +
 
 +
 
 +
==== Неделя 13 (11 декабря – 17 декабря)  ====
 +
 
 +
'''Лекция (приглашенный лектор Василий Быль):''' Обработка речи
 +
 
 +
Лекция будет посвящена общему устройству систем распознавания речи и тому, какое место в них занимают языковые модели.
 +
 
 +
О лекторе: Василий Быль руководит бригадой (небольшой группой) языковых моделей в отделе голосовых технологий Яндекса.
  
 
=== Рекомендуемые ресурсы ===
 
=== Рекомендуемые ресурсы ===
  
# На английском:
+
На английском
 
* Jurafsky & Martin [https://web.stanford.edu/~jurafsky/slp3/ (link) ]  
 
* Jurafsky & Martin [https://web.stanford.edu/~jurafsky/slp3/ (link) ]  
 
* Курс Лауры Каллмайер по МО для АОТ [https://user.phil.hhu.de/~kallmeyer/MachineLearning/index.html (link)]
 
* Курс Лауры Каллмайер по МО для АОТ [https://user.phil.hhu.de/~kallmeyer/MachineLearning/index.html (link)]
 
* Курс Нильса Раймерса по DL для АОТ [https://github.com/UKPLab/deeplearning4nlp-tutorial (link)]
 
* Курс Нильса Раймерса по DL для АОТ [https://github.com/UKPLab/deeplearning4nlp-tutorial (link)]
 
* Курс в Оксфорде по DL для АОТ [https://github.com/oxford-cs-deepnlp-2017 (link)]
 
* Курс в Оксфорде по DL для АОТ [https://github.com/oxford-cs-deepnlp-2017 (link)]
# На русском (и про русский, в основном)
+
* Курс в Стенфорде по DL для AOT [http://cs224d.stanford.edu (link)]
 +
* Материалы по обучению с подкреплением (Reinforcment Learning) [https://github.com/jiyfeng/rl4nlp (link)]
 +
 
 +
На русском (и про русский, в основном)
 +
* НКРЯ [http://ruscorpora.ru (link)]
 +
* Открытый корпус [http://opencorpora.org (link)]
 +
* Дистрибутивные семантические модели для русского языка [http://rusvectores.org/ru/ (link)]
 
* Морфология [https://tech.yandex.ru/mystem/ (link)]
 
* Морфология [https://tech.yandex.ru/mystem/ (link)]
 
* Синтаксис [https://habrahabr.ru/post/317564/ (link)]
 
* Синтаксис [https://habrahabr.ru/post/317564/ (link)]
 
* Томита-парсер [https://tech.yandex.ru/tomita/ (link)]
 
* Томита-парсер [https://tech.yandex.ru/tomita/ (link)]
 
* Все на свете: [http://mathlingvo.ru (mathlingvo)], [https://nlpub.org (nlpub)]
 
* Все на свете: [http://mathlingvo.ru (mathlingvo)], [https://nlpub.org (nlpub)]
 +
* Text Visualisation browser: [http://textvis.lnu.se (link)]
 +
 +
Ссылка на дополнительную литературу:
 +
* [https://machinelearningmastery.com/books-on-natural-language-processing/] Books on natural language processing
 +
* [http://eprints.lse.ac.uk/62548/1/Schonhardt-Bailey_text%20mining%20handbook.pdf/] Text mining for central banks
 +
 +
Литература
 +
# 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.
  
 
=== Используемые библиотеки ===
 
=== Используемые библиотеки ===
 
# NLTK [http://www.nltk.org (link)]
 
# NLTK [http://www.nltk.org (link)]
 +
# pymorphy2 [https://pymorphy2.readthedocs.io/en/latest/ (link)]
 +
# pymystem3 [https://github.com/Digsolab/pymystem3 (link)]
 +
# readability  [https://github.com/buriy/python-readability (link)]

Текущая версия на 14:48, 19 января 2018

О курсе

Курс читается для студентов 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)