PNLP: NLP с Python
Ближайшая дата курса по регистрации
Стоимость обучения   60.000 руб
Код курса  PNLP

Введение: Обработка естественного языка — общее направление искусственного интеллекта и математической лингвистики:

Цели обучения: Введение в «Natural Language Processing»

Данный курс предназначен для: Data scientists

Продолжительность курса: 5 дней.

Объем учебного материала: 40 академических часов.

Курс предусматривает упражнения и кейсы, направленных на отработку необходимых практических навыков.

 Программа курса:

Модуль 1. Введение в NLP

Теоретическая часть: основные понятия; классификация задач, решаемых с помощью методов NLP, стандартный pipeline обработки текстовых данных (очистка, стемминг, лемматизация, классические представления текстовых данных: Bow, Tf-Idf). Обзор алгоритмов стемминга и лемматизации. Популярные библиотеки для работы с текстовыми данными (nltk, spacy, gensim, TextBlob).

Практическая часть: первичный анализ текстовых данных, предобработка текстовых данных, построение простейшей модели бинарной классификации на примере задачи определения спама в смс сообщениях.

Домашняя работа: улучшение простейшей модели классификации. Использование различных подходов к обработке текстовых данных и различных моделей машинного обучения.

 

Модуль 2. Embeddings

Теоретическая часть: векторные представления слов/текста. Алгоритмы обучения векторных представлений: word2vec, Glove. Векторные представления текста: doc2vec. Embedding своими руками с помощью SVD разложения. Предобученные векторные представления для английского и русского языка.

Практическая часть: обучение векторного представления слов и его использование в задаче множественной классификации на примере датасета  20 News groups.

Домашняя работа:улучшение результатов работы построенной модели с использованием предобученных векторных представлений.

 

Модуль 3. Применение свёрточных нейронных сетей в NLP

Теоретическая часть: сверточные нейронные сети, параметры сверточных нейронных сетей, параметры обучения сверточных нейронных сетей, архитектура сверточных нейронных сетей в NLP. Ответ на вопроc когда использовать сверточные сети, а когда классические модели машинного обучения в NLP.

Практическая часть: использование сверточных нейронных сетей на примере задачи классификации твитов (датасет Рубцовой).

Домашняя работа: улучшение качества работы построенной модели.

 

Модуль 4. Рекуррентные нейронные сети

Теоретическая часть: архитектура RNN, CRNN, LSTM, GRU. Нейронные сети с attention. Задачи класса sequence to sequence. Машинный перевод. Архитектура нейронных сетей для машинного перевода.

Практическая часть: пишем нейронную сеть для машинного перевода “from scratch”.

Домашняя работа: тюнинг нейронной сети/обучение своей нейронной сети на другой паре языков.

 

Модуль 5. Работа со звуковой информацией

Теоретическая часть: физическая природа звука, оцифровка звукового сигнала. Виды цифровых представлений звукового сигнала (ряды, изображения). Speech to text / text to speech, подходы к решению. SOTA нейронные сети для Speech to text.

Практическая часть: пишем рекуррентную нейронную сеть классификации музыкальных жанров (речевых команд).

Домашняя работа: обучить сверточную нейронную сеть на представлениях звуковых сигналов в виде изображения на датасете с речевыми командами.

 

Модуль 6. SOTA нейронные сети в NLP

Теоретическая часть: предобученные нейронные сети в NLP, обзор архитектур нейронных сетей Bert и GPT-2. Режимы работы Bert и GPT-2. Использование Bert в задаче определения близких по смыслу текстов.

Практическая часть: решение задачи определения близких по смыслу текстов. Использование подхода без учителя. Использование Bert.

Домашняя работа: решение задачи с помощью GPT-2.

 

Модуль 7. Key word extraction / text summarization

Теоретическая часть: подходы к решению задач key word extraction, text summarization. Алгоритм PageRank. Архитектуры нейронных сетей для задач key word extraction и text summarization

Практическая часть: пишем нейронную сеть для key word extraction.

Домашняя работа: пишем нейронную сеть для text summarization.

 

Модуль 8. Named Entity Recognition

Теоретическая часть: подходы к решению задач NER. Condition Random Fields. Нейронные сети для решения задачи NER.

Практическая часть: решаем NER c помощью CRF.

Домашняя работа: пишем нейронную сеть для NER.

 

Модуль 9. Использование нейронных сетей в production

Теоретическая часть: сериализация/десериализация объектов в Python, фреймворки Flask, Flacon, Django. Контейнеризация, Docker. Использование сервиса с нейронной сетью в облаке, AWS. Специализированные серверы для использования нейронных сетей (tensorflow serving, torchServe)

Практическая часть: создание API с нейронной сетью с использованием специализированных серверов.

Домашняя работа: создание API с несколькими нейронными сетями.

 

Дополнительные разделы:

  • VAE (variational autoencoders) for NLP
  • text semantic segmentation
  • natural language inference
  • text generation