Обработка естественного языка с TensorFlow, Ганегедара Т., 2020.
TensorFlow - библиотека на языке Python для реализации систем глубокого обучения, позволяющих решать в том числе уникальные задачи по обработке естественного языка.
Автор книги излагает общие принципы работы NLP и построения нейронных сетей, описывает стратегии обработки больших объемов данных, а затем переходит к практическим темам. Вы узнаете, как использовать технологию World2vec и ее расширения для создания представлений, превращающих последовательности слов в числовые векторы, рассмотрите примеры решения задач по классификации предложений и генерации текста, научитесь применять продвинутые рекуррентные модели и сможете самостоятельно создать систему нейронного машинного перевода.
Издание предназначено для разработчиков, которые, используя лингвистические данные, применяют и совершенствуют методы машинной обработки естественного языка.

ЧТО ТАКОЕ ОБРАБОТКА ЕСТЕСТВЕННОГО ЯЗЫКА?
По данным IBM, в 2017 г. каждый день вырабатывалось 2,5 эксабайта (1 эксабайт = 1 млрд гигабайт) данных, и это число постоянно растет, пока вы читаете данную книгу. Если бы все люди в мире взялись за обработку такого объема данных, то на каждого жителя планеты приходилось бы по 300 МБ в день. В основном эти данные состоят из неструктурированного текста и речи, ведь люди каждый день создают миллионы электронных писем и записей в социальных сетях, а также разговаривают по телефону.
Эта статистика красноречиво говорит нам о том, что такое NLP. Проще говоря, цель NLP - научить компьютер понимать нашу разговорную и письменную речь. Более того, мы уже регулярно используем NLP в повседневной жизни. Виртуальные помощники (virtual assistant, VA), такие как Google Assistant, Cortana и Apple Siri, в основном представляют собой системы NLP. Когда кто-то просит виртуального помощника: «Покажи мне хороший итальянский ресторан поблизости», - за кулисами сервиса решается множество сложных задач. Во-первых, помощник должен преобразовать речь в текст. Далее он должен понять семантику запроса (пользователь ищет хороший ресторан с итальянской кухней) и сформулировать структурированный запрос (например, кухня = итальянская, рейтинг = 3-5, расстояние < 10 км). Затем помощник должен отфильтровать известные рестораны по местоположению и кухне. И наконец, нужно отсортировать оставшиеся рестораны по общему рейтингу. Чтобы рассчитать общий рейтинг ресторана, хорошая система NLP может посмотреть как оценки, так и текстовые отзывы, оставленные предыдущими посетителями. Наконец, когда пользователь оказался в ресторане, помощник может перевести различные пункты меню с итальянского на язык пользователя. Этот пример показывает, что обработка естественного языка стала неотъемлемой частью человеческой жизни.
ОГЛАВЛЕНИЕ.
Об авторе.
О рецензентах.
Предисловие.
Глава 1. Введение в обработку естественного языка.
Что такое обработка естественного языка?.
Задачи обработки естественного языка.
Традиционный подход к обработке естественного языка.
Подробности традиционного подхода.
Недостатки традиционного подхода.
Революция глубокого обучения в обработке естественного языка.
История глубокого обучения.
Современное состояние глубокого обучения и NLP.
Устройство простой глубокой модели – полносвязной нейронной сети.
Что вы найдете дальше в этой книге?.
Знакомство с рабочими инструментами.
Обзор основных инструментов.
Установка Python и scikit-learn.
Установка Jupyter Notebook.
Установка TensorFlow.
Заключение.
Глава 2. Знакомство с TensorFlow.
Что такое TensorFlow?.
Начало работы с TensorFlow.
Подробно о клиенте TensorFlow.
Архитектура TensorFlow – что происходит при запуске клиента?.
Кафе Le TensorFlow – пояснение устройства TensorFlow на примере.
Входные данные, переменные, выходные данные и операции.
Определение входных данных в TensorFlow.
Объявление переменных в TensorFlow.
Объявление выходных данных TensorFlow.
Объявление операций TensorFlow.
Повторное использование переменных с областью видимости.
Реализация нашей первой нейронной сети.
Подготовка данных.
Определение графа TensorFlow.
Запуск нейронной сети.
Заключение.
Глава 3. Word2vec и вектор слова в пространстве смыслов.
Что такое представление и значение слова?.
Классические подходы к представлению слов.
Внешняя лексическая база знаний WordNet для изучения представлений слов.
Прямое унитарное кодирование.
Метод TF-IDF.
Матрица совместной встречаемости.
Word2vec – нейросетевой подход к изучению представления слова.
Упражнение: королева = король – он + она?.
Разработка функции потери для изучения представлений слов.
Алгоритм skip-gram.
От необработанного текста до структурированных данных.
Изучение представлений слов с помощью нейронной сети.
Реализация алгоритма skip-gram с TensorFlow.
Алгоритм CBOW.
Реализация алгоритма CBOW с TensorFlow.
Заключение.
Глава 4. Углубленное изучение Word2vec.
Исходный алгоритм skip-gram.
Реализация исходного алгоритма skip-gram.
Сравнение исходного и улучшенного алгоритмов skip-gram.
Сравнение skip-gram и CBOW.
Сравнение продуктивности.
Кто же победитель, skip-gram или CBOW?.
Расширения алгоритмов представления слов.
Использование униграммного распределения для отрицательной выборки.
Реализация отрицательной выборки на основе униграмм.
Подвыборка – вероятностное игнорирование общих слов.
Реализация подвыборки.
Сравнение CBOW и его расширений.
Более современные алгоритмы, расширяющие skip-gram и CBOW.
Ограничение алгоритма skip-gram.
Структурированный алгоритм skip-gram.
Функция потерь.
Модель непрерывного окна.
GloVe – представление на основе глобальных векторов.
Знакомство с GloVe.
Реализация алгоритма GloVe.
Классификация документов с помощью Word2vec.
Исходный набор данных.
Классификация документов при помощи представлений слов.
Реализация – изучение представлений слов.
Реализация – от представлений слов к представлениям документов.
Кластеризация документов и визуализация представлений.
Проверка некоторых выбросов.
Кластеризация/классификация документов с K-средним.
Заключение.
Глава 5. Классификация предложений с помощью сверточных нейронных сетей.
Знакомство со сверточными нейронными сетями.
Основы CNN.
Возможности сверточных нейросетей.
Устройство сверточных нейросетей.
Операция свертки.
Операция субдискретизации.
Полностью связанные слои.
Собираем CNN из компонентов.
Упражнение – классификация изображений из набора MNIST.
Источник данных.
Реализация CNN.
Анализ прогнозов, сделанных CNN.
Классификация предложений с помощью сверточной нейросети.
Структура нейросети.
Растянутая субдискретизация.
Реализация классификации предложений.
Заключение.
Глава 6. Рекуррентные нейронные сети.
Знакомство с рекуррентными нейронными сетями.
Проблема с нейросетью прямого распространения.
Моделирование с помощью рекуррентных нейронных сетей.
Устройство рекуррентной нейронной сети в деталях.
Обратное распространение во времени.
Как работает обратное распространение.
Почему нельзя использовать простое обратное распространение.
Обратное распространение во времени и обучение RNN.
Усеченное обратное распространение во времени.
Ограничения BPTT – исчезающие и взрывающиеся градиенты.
Применение рекуррентных нейросетей.
Один-к-одному.
Один-ко-многим.
Многие-к-одному.
Многие-ко-многим.
Генерация текста с помощью рекуррентной нейросети.
Определение гиперпараметров.
Распространение входов во времени для усеченного BPTT.
Определение набора данных для валидации.
Определение весов и смещений.
Определение переменных состояния.
Вычисление скрытых состояний и выходов с развернутыми входами.
Расчет потерь.
Сброс состояния в начале нового сегмента текста.
Расчет результата проверки.
Расчет градиентов и оптимизация.
Вывод сгенерированного фрагмента текста.
Оценка качества текста.
Перплексия – измерение качества созданного текста.
Рекуррентные нейронные сети с контекстными признаками.
Особенности устройства RNN-CF.
Реализация RNN-CF.
Текст, созданный с помощью RNN-CF.
Заключение.
Глава 7. Сети с долгой краткосрочной памятью.
Устройство и принцип работы LSTM.
Что такое LSTM?.
LSTM в деталях.
Чем LSTM отличаются от стандартных RNN.
Как LSTM решает проблему исчезающего градиента.
Улучшение LSTM.
Жадная выборка.
Лучевой поиск.
Использование векторных представлений слов.
Двунаправленные LSTM (BiLSTM).
Другие варианты LSTM.
Замочная скважина.
Управляемые рекуррентные ячейки (GRU).
Заключение.
Глава 8. Применение LSTM для генерации текста.
Наши данные.
О наборе данных.
Предварительная обработка данных.
Реализация LSTM.
Объявление гиперпараметров.
Объявление параметров.
Объявление ячейки LSTM и ее операций.
Входные данные и метки.
Последовательные вычисления для обработки последовательных данных.
Выбор оптимизатора.
Снижение скорости обучения.
Получение прогнозов.
Вычисление перплексии.
Очистка данных.
Использование предварительно изученных представлений с RNN API.
Заключение.
Глава 10. Преобразование последовательностей и машинный перевод.
Машинный перевод.
Краткая историческая экскурсия по машинному переводу.
Перевод на основе правил.
Статистический машинный перевод (SMT).
Нейронный машинный перевод.
Общие принципы нейронного машинного перевода.
Устройство NMT.
Архитектура NMT.
Подготовка данных для системы NMT.
Этап обучения.
Переворачивание исходного предложения.
Этап тестирования.
Обучение NMT.
Вывод перевода из NMT.
Метрика BLEU – оценка систем машинного перевода.
Модифицированная точность.
Штраф за краткость.
Окончательная оценка BLEU.
Собственная система NMT с нуля – переводчик с немецкого на английский.
Знакомство с данными.
Предварительная обработка данных.
Изучение представлений слов.
Кодер и декодер.
Сквозные вычисления.
Примеры результатов перевода.
Обучение NMT одновременно с изучением представлений слов.
Максимизация совпадений между словарем набора данных и предварительно подготовленными представлениями.
Объявление слоя представлений как переменной TensorFlow.
Совершенствование NMT.
Помощь наставника.
Глубокие LSTM.
Механизм внимания.
Узкое место: вектор контекста.
Механизм внимания в деталях.
Результаты работы NMT со вниманием.
Визуализация внимания к исходным и целевым предложениям.
Применение моделей Seq2Seq в чат-ботах.
Обучение чат-бота.
Оценка чат-ботов – тест Тьюринга.
Заключение.
Глава 11. Современные тенденции и будущее обработки естественного языка.
Современные тенденции в NLP.
Представления слов.
Нейронный машинный перевод.
Применение NLP в смежных прикладных областях.
Сочетание NLP с компьютерным зрением.
Обучение с подкреплением.
Генеративные состязательные сети и NLP.
На пути к искусственному общему интеллекту.
Обучил одну модель – обучил их все.
Совместная многозадачная модель – развитие нейронной сети для множества задач NLP.
NLP для социальных сетей.
Обнаружение слухов в соцсетях.
Обнаружение эмоций в социальных сетях.
Анализ политического наполнения в твитах.
Новые задачи и вызовы.
Обнаружение сарказма.
Смысловое основание языка.
Скимминг текста с помощью LSTM.
Новые модели машинного обучения.
Фазированные LSTM.
Расширенные рекуррентные нейронные сети (DRNN).
Заключение.
Литература.
Приложение. Математические основы и углубленное изучение TensorFlow.
Основные структуры данных.
Cкаляр.
Векторы.
Матрицы.
Индексы матрицы.
Специальные типы матриц.
Тождественная матрица.
Диагональная матрица.
Тензоры.
Тензорные и матричные операции.
Транспонирование.
Умножение.
Поэлементное умножение.
Обратная матрица.
Нахождение обратной матрицы – сингулярное разложение (SVD).
Нормы.
Определитель.
Вероятность.
Случайные величины.
Дискретные случайные величины.
Непрерывные случайные величины.
Функция вероятности масса/плотность.
Условная вероятность.
Совместная вероятность.
Предельная вероятность.
Правило Байеса.
Введение в Keras.
Введение в библиотеку TensorFlow seq2seq.
Определение вложений для кодера и декодера.
Объявление кодера.
Объявление декодера.
Визуализация представлений слов с помощью TensorBoard.
Первые шаги с TensorBoard.
Сохранение представлений слов и визуализация в TensorBoard.
Заключение.
Предметный указатель.
Купить .
Теги: учебник по программированию :: программирование :: Ганегедара