Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Обработка естественного языка с TensorFlow

Покупка
Артикул: 739790.01.99
Доступ онлайн
1 199 ₽
В корзину
TensorFlow - библиотека на языке Python для реализации систем глубокого обучения, позволяющих решать в том числе уникальные задачи по обработке естественного языка. Автор книги излагает общие принципы работы NLP и построения нейронных сетей, описывает стратегии обработки больших объемов данных, а затем переходит к практическим темам. Вы узнаете, как использовать технологию World2vec и ее расширения для создания представлений, превращающих последовательности слов в числовые векторы, рассмотрите примеры решения задач по классификации предложений и генерации текста, научитесь применять продвинутые рекуррентные модели и сможете самостоятельно создать систему нейронного машинного перевода. Издание предназначено для разработчиков, которые, используя лингвистические данные, применяют и совершенствуют методы машинной обработки естественного языка.
Ганегедара, Т. Обработка естественного языка с TensorFlow : монография / Т. Ганегедара ; пер. с анг. В. С. Яценкова. - Москва : ДМК Пресс, 2020. - 382 с. - ISBN 978-5-97060-756-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/1094940 (дата обращения: 25.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Тушан Ганегедара

Обработка естественного языка  
с TensorFlow

Natural Language Processing 
with TensorFlow

Teach language to machines using Python's  
deep learning library

Thushan Ganegedara

 
B I R M I N G H A M  –  M U M B A I

Обработка естественного 
языка с TensorFlow

Научите компьютер разговаривать, используя  
библиотеки глубокого обучения на языке Python

Тушан Ганегедара

        Москва, 2020

УДК 004.032.2
ББК 32.972.1
Г19

Ганегедара Т.
Г19 
Обработка естественного языка с TensorFlow / пер. с анг. В. С. Яценкова. – М.: 
ДМК Пресс, 2020. – 382 с.: ил. 

ISBN 978-5-97060-756-5

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

УДК 004.032.2
ББК 32.972.1

Original English language edition published by Packt Publishing Ltd., UK. Copyright © 2018 Packt 
Publishing. Russian­language edition copyright © 2020 by DMK Press. All rights reserved.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой 
бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.

ISBN 978­1­78847­831­1 (анг.) 
 Copyright © 2018 Packt Publishing
ISBN 978­5­97060­756­5 (рус.) 
© Оформление, издание, перевод, ДМК Пресс, 2020

Содержание

Об авторе ................................................................................................................13

О рецензентах ......................................................................................................14

Предисловие .........................................................................................................15

Глава 1. Введение в обработку естественного языка ...........................21
Что такое обработка естественного языка? .............................................................21
Задачи обработки естественного языка ...................................................................22
Традиционный подход к обработке естественного языка .....................................24
Подробности традиционного подхода .................................................................24
Недостатки традиционного подхода ...................................................................29
Революция глубокого обучения в обработке естественного языка .......................30
История глубокого обучения ................................................................................30
Современное состояние глубокого обучения и NLP ...........................................32
Устройство простой глубокой модели – полносвязной нейронной сети ..........33
Что вы найдете дальше в этой книге? ......................................................................34
Знакомство с рабочими инструментами .................................................................38
Обзор основных инструментов ............................................................................38
Установка Python и scikit­learn .............................................................................39
Установка Jupyter Notebook ...................................................................................39
Установка TensorFlow ............................................................................................40
Заключение ................................................................................................................41

Глава 2. Знакомство с TensorFlow .................................................................42
Что такое TensorFlow? ...............................................................................................42
Начало работы с TensorFlow .................................................................................43
Подробно о клиенте TensorFlow ...........................................................................45
Архитектура TensorFlow – что происходит при запуске клиента? .....................46
Кафе Le TensorFlow – пояснение устройства TensorFlow на примере ...............49
Входные данные, переменные, выходные данные и операции .............................49
Определение входных данных в TensorFlow .......................................................50
Объявление переменных в TensorFlow ................................................................55
Объявление выходных данных TensorFlow .........................................................57
Объявление операций TensorFlow ........................................................................57
Повторное использование переменных с областью видимости ............................66
Реализация нашей первой нейронной сети ............................................................68
Подготовка данных ...............................................................................................68
Определение графа TensorFlow ............................................................................69
Запуск нейронной сети .........................................................................................71
Заключение ................................................................................................................72

 Содержание

Глава 3. Word2vec и вектор слова в пространстве смыслов .............74
Что такое представление и значение слова? ...........................................................75
Классические подходы к представлению слов ........................................................76
Внешняя лексическая база знаний WordNet для изучения представлений  
слов .........................................................................................................................76
Прямое унитарное кодирование ..........................................................................79
Метод TF­IDF..........................................................................................................80
Матрица совместной встречаемости ...................................................................81
Word2vec – нейросетевой подход к изучению представления слова .....................82
Упражнение: королева = король – он + она? ........................................................83
Разработка функции потери для изучения представлений слов .......................87
Алгоритм skip­gram ...................................................................................................87
От необработанного текста до структурированных данных ..............................88
Изучение представлений слов с помощью нейронной сети ..............................88
Реализация алгоритма skip­gram с TensorFlow ...................................................98
Алгоритм CBOW .......................................................................................................100
Реализация алгоритма CBOW с TensorFlow .......................................................100
Заключение ..............................................................................................................102

Глава 4. Углубленное изучение Word2vec ...............................................103
Исходный алгоритм skip­gram ................................................................................103
Реализация исходного алгоритма skip­gram .....................................................104
Сравнение исходного и улучшенного алгоритмов skip­gram ..........................106
Сравнение skip­gram и CBOW .................................................................................107
Сравнение продуктивности ................................................................................108
Кто же победитель, skip­gram или CBOW? .........................................................111
Расширения алгоритмов представления слов .......................................................113
Использование униграммного распределения для отрицательной  
выборки ................................................................................................................113
Реализация отрицательной выборки на основе униграмм ..............................113
Подвыборка – вероятностное игнорирование общих слов ..............................115
Реализация подвыборки .....................................................................................116
Сравнение CBOW и его расширений ..................................................................116
Более современные алгоритмы, расширяющие skip­gram и CBOW ....................117
Ограничение алгоритма skip­gram ....................................................................117
Структурированный алгоритм skip­gram ..........................................................118
Функция потерь ...................................................................................................119
Модель непрерывного окна ................................................................................120
GloVe – представление на основе глобальных векторов ......................................121
Знакомство с GloVe ..............................................................................................121
Реализация алгоритма GloVe ..............................................................................122
Классификация документов с помощью Word2vec ...............................................123
Исходный набор данных .....................................................................................124
Классификация документов при помощи представлений слов ......................125
Реализация – изучение представлений слов .....................................................125
Реализация – от представлений слов к представлениям документов .............126

Содержание  7

Кластеризация документов и визуализация представлений ...........................126
Проверка некоторых выбросов ...........................................................................126
Кластеризация/классификация документов с K­средним ...............................129
Заключение ..............................................................................................................130

Глава 5. Классификация предложений с помощью  
сверточных нейронных сетей ......................................................................132
Знакомство со сверточными нейронными сетями ...............................................132
Основы CNN .........................................................................................................133
Возможности сверточных нейросетей ...............................................................135
Устройство сверточных нейросетей .......................................................................136
Операция свертки ................................................................................................136
Операция субдискретизации ..............................................................................139
Полностью связанные слои .................................................................................141
Собираем CNN из компонентов .........................................................................142
Упражнение – классификация изображений из набора MNIST ...........................143
Источник данных .................................................................................................143
Реализация CNN ..................................................................................................143
Анализ прогнозов, сделанных CNN ....................................................................146
Классификация предложений с помощью сверточной нейросети ......................147
Структура нейросети ...........................................................................................147
Растянутая субдискретизация ............................................................................150
Реализация классификации предложений ........................................................151
Заключение ..............................................................................................................154

Глава 6. Рекуррентные нейронные сети ..................................................155
Знакомство с рекуррентными нейронными сетями .............................................156
Проблема с нейросетью прямого распространения .........................................156
Моделирование с помощью рекуррентных нейронных сетей .........................157
Устройство рекуррентной нейронной сети в деталях ......................................159
Обратное распространение во времени ................................................................160
Как работает обратное распространение ..........................................................160
Почему нельзя использовать простое обратное распространение .................161
Обратное распространение во времени и обучение RNN ................................162
Усеченное обратное распространение во времени ...........................................163
Ограничения BPTT – исчезающие и взрывающиеся градиенты .....................163
Применение рекуррентных нейросетей ................................................................165
Один­к­одному ....................................................................................................166
Один­ко­многим .................................................................................................166
Многие­к­одному ................................................................................................167
Многие­ко­многим ..............................................................................................168
Генерация текста с помощью рекуррентной нейросети .......................................168
Определение гиперпараметров ..........................................................................169
Распространение входов во времени для усеченного BPTT .............................169
Определение набора данных для валидации ....................................................170
Определение весов и смещений .........................................................................170

 Содержание

Определение переменных состояния ................................................................171
Вычисление скрытых состояний и выходов с развернутыми входами ...........171
Расчет потерь .......................................................................................................172
Сброс состояния в начале нового сегмента текста ...........................................172
Расчет результата проверки................................................................................172
Расчет градиентов и оптимизация .....................................................................173
Вывод сгенерированного фрагмента текста ......................................................173
Оценка качества текста ...........................................................................................174
Перплексия – измерение качества созданного текста ..........................................175
Рекуррентные нейронные сети с контекстными признаками .............................176
Особенности устройства RNN­CF .......................................................................177
Реализация RNN­CF .............................................................................................178
Текст, созданный с помощью RNN­CF ...............................................................183
Заключение ..............................................................................................................186

Глава 7. Сети с долгой краткосрочной памятью ...................................188

Устройство и принцип работы LSTM .....................................................................189
Что такое LSTM? ...................................................................................................189
LSTM в деталях .....................................................................................................190
Чем LSTM отличаются от стандартных RNN ......................................................199
Как LSTM решает проблему исчезающего градиента ...........................................200
Улучшение LSTM ..................................................................................................202
Жадная выборка ..................................................................................................202
Лучевой поиск ......................................................................................................203
Использование векторных представлений слов ...............................................204
Двунаправленные LSTM (BiLSTM) ......................................................................205
Другие варианты LSTM ...........................................................................................207
Замочная скважина .............................................................................................207
Управляемые рекуррентные ячейки (GRU) .......................................................208
Заключение ..............................................................................................................210

Глава 8. Применение LSTM для генерации текста ..............................211

Наши данные ...........................................................................................................211
О наборе данных ..................................................................................................212
Предварительная обработка данных .................................................................214
Реализация LSTM .....................................................................................................214
Объявление гиперпараметров ............................................................................214
Объявление параметров .....................................................................................215
Объявление ячейки LSTM и ее операций ..........................................................217
Входные данные и метки ....................................................................................217
Последовательные вычисления для обработки последовательных  
данных ..................................................................................................................218
Выбор оптимизатора ...........................................................................................219
Снижение скорости обучения .............................................................................219
Получение прогнозов ..........................................................................................220
Вычисление перплексии .....................................................................................220

Содержание  9

Сброс состояний ..................................................................................................221
Жадная выборка против унимодальности ........................................................221
Генерация нового текста .....................................................................................221
Пример сгенерированного текста ......................................................................222
Сравнение качества текстов на выходе разных модификаций LSTM .................223
Обычная LSTM­сеть .............................................................................................223
Пример генерации текста при помощи GRU .....................................................225
LSTM с замочными скважинами ........................................................................228
Обучение нейросети и проверка перплексии ...................................................230
Модификация LSTM – лучевой поиск ....................................................................232
Реализация лучевого поиска ..............................................................................232
Пример текста, созданного лучевым поиском ..................................................234
Генерация текста на уровне слов вместо n­грамм ................................................235
Проклятие размерности ......................................................................................235
Word2vec спешит на помощь ..............................................................................236
Генерация текста с помощью Word2vec .............................................................236
Текст, созданный с помощью LSTM–Word2vec и лучевого поиска ..................237
Анализ уровня перплексии .................................................................................239
Использование TensorFlow RNN API ..................................................................240
Заключение ..............................................................................................................243

Глава 9. Применение LSTM – генерация подписей к рисункам .....245
Знакомство с данными ............................................................................................246
Набор данных ILSVRC ImageNet .........................................................................246
Набор данных MS­COCO .....................................................................................246
Устройство модели для генерации подписей к изображениям ...........................249
Извлечение признаков изображения .....................................................................250
Реализация – загрузка весов и вывод с помощью VGG­16 ...................................252
Создание и обновление переменных .................................................................252
Предварительная обработка входов ...................................................................253
Распространение данных через VGG­16 ............................................................254
Извлечение векторизованных представлений изображений ..........................255
Прогнозирование вероятностей классов с помощью VGG­16 ..........................255
Изучение представлений слов ................................................................................256
Подготовка подписей для подачи в LSTM ..............................................................258
Формирование данных для LSTM ...........................................................................259
Определение параметров и процедуры обучения LSTM ......................................260
Количественная оценка результатов......................................................................262
BLEU ......................................................................................................................263
ROUGE ...................................................................................................................264
METEOR ................................................................................................................264
CIDEr .....................................................................................................................266
Изменение оценки BLEU­4 для нашей модели .................................................267
Подписи, созданные для тестовых изображений ..................................................267
Использование TensorFlow RNN API с предварительно обученными  
векторами слов GloVe ..............................................................................................271
Загрузка векторов слов GloVe .............................................................................271

 Содержание

Очистка данных ...................................................................................................272
Использование предварительно изученных представлений с RNN API .........274
Заключение ..............................................................................................................279

Глава 10. Преобразование последовательностей  
и машинный перевод ......................................................................................281
Машинный перевод .................................................................................................281
Краткая историческая экскурсия по машинному переводу .................................282
Перевод на основе правил ..................................................................................282
Статистический машинный перевод (SMT) ......................................................284
Нейронный машинный перевод ........................................................................286
Общие принципы нейронного машинного перевода ..........................................288
Устройство NMT ...................................................................................................288
Архитектура NMT ................................................................................................289
Подготовка данных для системы NMT ...................................................................292
Этап обучения ......................................................................................................292
Переворачивание исходного предложения .......................................................293
Этап тестирования ..............................................................................................294
Обучение NMT .........................................................................................................294
Вывод перевода из NMT ..........................................................................................295
Метрика BLEU – оценка систем машинного перевода .........................................295
Модифицированная точность ............................................................................296
Штраф за краткость .............................................................................................297
Окончательная оценка BLEU ..............................................................................297
Собственная система NMT с нуля – переводчик с немецкого на английский ....297
Знакомство с данными ........................................................................................298
Предварительная обработка данных .................................................................298
Изучение представлений слов ............................................................................299
Кодер и декодер ...................................................................................................300
Сквозные вычисления .........................................................................................302
Примеры результатов перевода .........................................................................304
Обучение NMT одновременно с изучением представлений слов........................306
Максимизация совпадений между словарем набора данных  
и предварительно подготовленными представлениями .................................306
Объявление слоя представлений как переменной TensorFlow ........................308
Совершенствование NMT ........................................................................................310
Помощь наставника ............................................................................................310
Глубокие LSTM .....................................................................................................312
Механизм внимания ...............................................................................................312
Узкое место: вектор контекста ...........................................................................313
Механизм внимания в деталях ...........................................................................314
Результаты работы NMT со вниманием .............................................................319
Визуализация внимания к исходным и целевым предложениям ...................321
Применение моделей Seq2Seq в чат­ботах ............................................................322
Обучение чат­бота ...............................................................................................322
Оценка чат­ботов – тест Тьюринга .....................................................................324
Заключение ..............................................................................................................324

Содержание  11

Глава 11. Современные тенденции и будущее обработки  
естественного языка ........................................................................................326
Современные тенденции в NLP ..............................................................................327
Представления слов .............................................................................................327
Нейронный машинный перевод ........................................................................332
Применение NLP в смежных прикладных областях .............................................334
Сочетание NLP с компьютерным зрением ........................................................334
Обучение с подкреплением ................................................................................336
Генеративные состязательные сети и NLP .........................................................338
На пути к искусственному общему интеллекту ....................................................340
Обучил одну модель – обучил их все ..................................................................340
Совместная многозадачная модель – развитие нейронной сети  
для множества задач NLP ....................................................................................342
NLP для социальных сетей ......................................................................................344
Обнаружение слухов в соцсетях .........................................................................344
Обнаружение эмоций в социальных сетях ........................................................345
Анализ политического наполнения в твитах ....................................................345
Новые задачи и вызовы ..........................................................................................347
Обнаружение сарказма .......................................................................................347
Смысловое основание языка ..............................................................................347
Скимминг текста с помощью LSTM....................................................................348
Новые модели машинного обучения .....................................................................348
Фазированные LSTM ...........................................................................................349
Расширенные рекуррентные нейронные сети (DRNN) ....................................350
Заключение ..............................................................................................................351
Литература ...............................................................................................................351

Приложение. Математические основы и углубленное  
изучение TensorFlow ........................................................................................354
Основные структуры данных ..................................................................................354
Cкаляр ...................................................................................................................354
Векторы ................................................................................................................354
Матрицы ...............................................................................................................355
Индексы матрицы ...............................................................................................355
Специальные типы матриц ....................................................................................356
Тождественная матрица ......................................................................................356
Диагональная матрица .......................................................................................356
Тензоры ................................................................................................................357
Тензорные и матричные операции ........................................................................357
Транспонирование ..............................................................................................357
Умножение ...........................................................................................................358
Поэлементное умножение ..................................................................................358
Обратная матрица ...............................................................................................359
Нахождение обратной матрицы – сингулярное разложение (SVD) .................360
Нормы ...................................................................................................................360
Определитель .......................................................................................................361

 Содержание

Вероятность ..............................................................................................................361
Случайные величины ..........................................................................................362
Дискретные случайные величины .....................................................................362
Непрерывные случайные величины ..................................................................362
Функция вероятности масса/плотность .............................................................362
Условная вероятность ..........................................................................................364
Совместная вероятность .....................................................................................364
Предельная вероятность .....................................................................................365
Правило Байеса ....................................................................................................365
Введение в Keras ......................................................................................................365
Введение в библиотеку TensorFlow seq2seq ...........................................................367
Определение вложений для кодера и декодера ................................................367
Объявление кодера ..............................................................................................368
Объявление декодера ..........................................................................................369
Визуализация представлений слов с помощью TensorBoard ...............................370
Первые шаги с TensorBoard .................................................................................370
Сохранение представлений слов и визуализация в TensorBoard .....................371
Заключение ..............................................................................................................374

Предметный указатель ...................................................................................376

Об авторе

Тушан Ганегедара написал эту книгу на третьем году обучения в аспирантуре 
университета Сиднея, Австралия, а перед этим получил степень бакалавра с отличием в университете Моратува, Шри­Ланка. Он специализируется на машинном 
обучении и особенно увлечен глубокими нейросетями. Тушан любит рисковать 
и часто запускает алгоритмы на непроверенных данных. Он также работает в качестве главного аналитика данных в австралийском стартапе AssessThreat и регулярно пишет технические статьи и учебные пособия по машинному обучению. 
Кроме того, он стремится к здоровому образу жизни и ежедневно занимается плаванием.

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

О рецензентах

Мотаз Саад окончил аспирантуру по информатике в Университете Лотарингии. 
Он любит данные и все, что с ними связано. Он более 10 лет занимается обработкой естественных языков, компьютерной лингвистикой, наукой о данных и машинным обучением. В настоящее время работает доцентом на факультете информационных технологий IUG (Islamic University of Gaza).
Доктор Джозеф О’Коннор – специалист по данным, искренне увлеченный глубоким обучением. Его компания Deep Learn Analytics, британская консалтинговая 
компания, специализирующаяся на данных, оказывает предприятиям услуги по 
разработке приложений и инфраструктуры машинного обучения от концепции 
до развертывания. Ему была присуждена степень доктора философии в университете Лондона за работу по анализу данных эксперимента по физике высоких 
энергий MINOS. С того времени он разработал продукты машинного обучения 
для ряда компаний частного сектора, специализирующихся на NLP и прогнозировании временных рядов. Вы можете найти его на http://deeplearnanalytics.com/.

Предисловие

В наш век цифровой информации, в котором мы живем, объем данных растет 
в геометрической прогрессии. Пока вы читаете эти слова, мировые запасы данных продолжают расти с ошеломляющей скоростью. Большая часть этих данных 
относится к языковым данным – текстовым или устным, – таким как электронные 
письма, сообщения в социальных сетях, телефонные звонки и статьи в интернете. Машинная обработка естественного языка (natural language processing, NLP) 
эффективно использует эти данные, чтобы помочь людям в их бизнесе или в повседневных задачах. Технология NLP уже произвела революцию в повседневном 
использовании данных, помогает бизнесу, облегчает жизнь людей и продолжит 
делать это в будущем.
Одним из наиболее распространенных примеров применения NLP являются 
виртуальные помощники (virtual assistants, VA), такие как Siri от Apple, Google Assistant и Amazon Alexa. Всякий раз, когда вы просите своего виртуального помощника найти «отели в Швейцарии по низким ценам», запускается серия сложных 
задач обработки естественного языка. Во­первых, ваш помощник должен понять 
смысл запроса (например, определить, что надо искать низкие цены на отели, 
а не ближайшие площадки для выгула собак). Еще одно решение, которое должен 
принять помощник, – это определить критерий «низкой цены». Затем помощник 
должен ранжировать города в Швейцарии, возможно, исходя из вашей прошлой 
истории путешествий. Помощник может просканировать сайты агрегаторов отелей, чтобы извлечь оттуда цены на отели в Швейцарии и «прочитать» отзывы посетителей для каждого отеля. Как видите, ответ на запрос, который вы получаете 
через несколько секунд, является результатом разносторонней работы системы 
NLP.
Итак, что делает системы NLP настолько универсальными и точными в решении наших повседневных задач? В основе успеха лежат алгоритмы глубокого 
обучения. Это, по сути, сложные нейронные сети, которые могут проецировать 
необработанные данные в желаемый результат, не требуя какой­либо сложной 
ручной настройки алгоритма. Это означает, что турист напишет отзыв об отеле на 
естественном человеческом языке, а компьютер безошибочно ответит на вопрос 
«Насколько положителен отзыв клиента об этом отеле?». Кроме того, глубокое 
обучение уже достигло и даже превысило уровень человеческих возможностей 
в различных задачах NLP, таких как распознавание речи и машинный перевод.
Прочитав эту книгу, вы узнаете, как решать многие интересные задачи NLP, 
используя глубокое обучение. Итак, если вы хотите быть влиятельным человеком, который меняет мир, изучение NLP имеет решающее значение. Прикладные 
задачи варьируются от изучения семантики слов до генерации новых историй 
и выполнения машинного перевода с обучением «на ходу». Все главы содержат 
упражнения, практические примеры и пошаговые инструкции по внедрению рассматриваемых решений. Для всех упражнений в этой книге мы будем использо­
вать Python с TensorFlow – популярной библиотекой распределенных вычислений, 
которая делает реализацию глубоких нейронных сетей очень простой и удобной.

 Предисловие

Для кого эта книга

Эта книга предназначена для начинающих исследователей и разработчиков, которые стремятся сделать мир лучше, используя лингвистические данные. Книга 
предоставит вам прочную практическую основу для решения задач NLP. В этой 
книге мы рассмотрим различные аспекты NLP, уделяя больше внимания практической реализации, чем теоретическим основам. Обладание практическими навыками решения различных задач NLP поможет вам совершить более плавный 
переход к изучению более сложных теоретических аспектов этих методов. Кроме 
того, хорошее понимание практической части NLP поможет при выполнении более точной настройки ваших алгоритмов, чтобы получить максимальную отдачу 
от конкретного проекта.

какие темы охватывает эта книга

Глава 1 знакомит вас с NLP. В этой главе вы узнаете причины, по которым востребована обработка естественного языка. Далее перечислены некоторые общие 
проблемы и определены две основные эпохи NLP – период использования традиционных методов и современные приемы глубокого обучения. Сначала мы в общих чертах рассмотрим, как задача моделирования языка решается с по мощью 
традиционных алгоритмов. Затем обсудим современную эпоху, когда задачи 
машинной обработки языка решаются с помощью моделей глубокого обучения, 
и рассмотрим основные семейства алгоритмов глубокого обучения. Потом вы 
познакомитесь с принципом работы одного из основных современных алгоритмов – полносвязной нейронной сети. Главу завершает «дорожная карта», в которой дается краткое введение в последующие главы.
Глава 2 знакомит вас с библиотекой Python TensorFlow – основной платформой, 
на которой реализованы все решения, рассмотренные в этой книге. Вы начнете с написания кода для реализации простых вычислений в TensorFlow, а затем 
узнаете, как выполняется этот код, начиная с запуска программы и заканчивая 
получением результатов. Таким образом, вы на простом примере познакомитесь 
с основными компонентами TensorFlow. Вы еще больше укрепите понимание 
TensorFlow благодаря красочной аналогии с процессом выполнения заказов в ресторане. Далее мы обсудим технические детали TensorFlow, такие как структуры 
данных и операции с нейронными сетями, встроенные в TensorFlow. Наконец, вы 
создадите полносвязную нейронную сеть для распознавания рукописных цифр. 
Это пример реализации комплексного решения с помощью TensorFlow.
Глава 3 начинается с обсуждения того, как решать задачи NLP с помощью TensorFlow. В этой главе вы узнаете, как нейронные сети применяются для изучения 
векторов слов, известных также как представления слов. Векторы слов являют собой числовые представления слов с учетом смыслового окружения. Сначала мы обсудим несколько традиционных подходов к достижению этой цели, которые включают использование большой базы знаний, созданной человеком, известной как 
WordNet. Затем мы рассмотрим современный подход на основе нейронных сетей, 
известный как Word2vec и основанный на изучении векторов слов без вмешательства человека. Сначала вы исследуете механику Word2vec, проработав практичеКакие темы охватывает эта книга  17

ский пример, а затем познакомитесь с двумя усовершенствованными методами – 
словосочетаниями с пропуском (Skip­Gram) и непрерывным мультимножеством слов 
(continuous bag­of­words, CBOW). Главу завершает обсуждение концептуальных 
особенностей алгоритмов, а также способы их реализации в TensorFlow.
Глава 4 раскрывает более сложные темы, связанные с векторами слов. Сначала 
мы сравним подходы Skip­Gram и CBOW, чтобы узнать, существует ли победитель. 
Далее мы обсудим несколько улучшений, которые можно использовать для повышения качества работы алгоритмов Word2vec. Затем вы познакомитесь с более 
современным и мощным подходом к изучению векторизации смыслов – алгоритмом глобальных векторов GloVe. Наконец, вы познакомитесь с векторами слов 
в действии в задаче классификации документов. В этом упражнении вы увидите, 
что векторный подход достаточно точен и может правильно классифицировать 
тему документа.
Глава 5 посвящена обсуждению сверточных нейронных сетей (convolutional neural network, CNN) – семейства нейронных сетей, которые превосходны при обработке пространственных данных, таких как изображения или предложения. Мы 
начнем с изучения общих принципов работы CNN, обсудив, как они обрабатывают данные и какие операции выполняют. Далее мы детально разберем каждую 
операцию, связанную с вычислениями, чтобы понять внутреннюю математику 
CNN. Наконец, вы выполните два упражнения. Во­первых, вы будете классифицировать изображения рукописных цифр с помощью CNN. Вы убедитесь, что CNN 
способны быстро достичь очень высокой точности при решении задач такого 
типа. Далее вы узнаете, как можно использовать CNN для классификации предложений. В завершающем главу примере нейросеть предсказывает, относится ли 
предложение к объекту, человеку, местоположению и т. д.
Глава 6 рассказывает о рекуррентных нейронных сетях (recurrent neural network, 
RNN) – мощном семействе нейронных сетей, которые могут обрабатывать последовательности данных. Сначала вы изучите внутреннюю математику и правила 
функционирования RNN в процессе обучения. Затем вы познакомитесь с различными вариантами RNN и их применением (например, структуры один-к-одному 
и один-ко-многим). Наконец, вы выполните упражнение, в котором RNN решает 
задачу генерации текста. В этом примере RNN обучается на наборе сказок и пытается сочинить новую сказку. Вы увидите, что RNN плохо работают с долговременной памятью. Наконец, мы обсудим более продвинутый вариант RNN под названием RNN­CF, обладающий более надежной долгосрочной памятью.
Глава 7 рассказывает про более мощные рекуррентные нейросети, которые 
способны запоминать данные в течение более длительного периода времени, поскольку стандартные RNN плохо поддерживают долговременную память. В этой 
главе рассказано про сети с долгой краткосрочной памятью (long short­term memory, LSTM). Известно, что LSTM превосходят другие последовательные модели во 
многих задачах временных рядов. Сначала вы исследуете базовую математику 
и новые правила LSTM на ярком примере, который иллюстрирует, почему каждое 
вычисление имеет значение. Затем вы узнаете, как LSTM могут сохранять память 
еще дольше. Далее мы обсудим, как можно улучшить прогнозные возможности LSTM. Наконец, мы рассмотрим несколько вариантов LSTM, имеющих более 
сложную структуру, включая управляемые рекуррентные блоки (Gated Recurrent 
Unit, GRU).

 Предисловие

Глава 8 подробно рассказывает о том, как LSTM­сети работают в задаче генерации текста. Вы качественно и количественно оцените, насколько хорош текст, 
сгенерированный LSTM, а также проведете сравнение различных модификаций 
LSTM. Наконец, вы узнаете, как добавить в модель механизм векторного представления слов, чтобы улучшить качество сгенерированного текста.
Глава 9 от работы с текстами переносит вас к мультимодальным данным, то есть 
комбинации изображения и текста. В этой главе вы узнаете, как автоматически 
генерировать текстовое описание для заданного изображения. Решение включает 
в себя объединение сверточной модели прямого распространения (CNN) со слоем представления слов и последовательной модели (LSTM) таким образом, чтобы 
сформировать полный цикл машинного обучения.
Глава 10 рассказывает о реализации модели нейронного машинного перевода 
(neural machine translation, NMT). В машинном переводе мы переводим предложение/фразу с исходного языка на целевой язык. Сначала вы познакомитесь 
с краткой историей и основами машинного перевода. Затем детально изучите 
архитектуру современных моделей нейронного машинного перевода, включая 
процедуры обучения и вывода. Далее вы узнаете, как реализовать систему NMT 
с нуля. Наконец, вы познакомитесь со способами улучшения стандартных систем 
NMT.
Глава 11 завершает книгу и посвящена текущим тенденциям и будущему NLP. 
Мы обсудим последние открытия, связанные с системами и задачами, о которых 
рассказано в предыдущих главах. В этой главе будет рассказано о самых интересных нововведениях, а также будет дано углубленное представление о внедрении 
некоторых технологий.
Приложение познакомит читателя с различными математическими структурами данных и операциями. Мы также обсудим несколько важных понятий в теории 
вероятности. Затем вы познакомитесь с Keras – библиотекой высокого уровня, которая использует TensorFlow. Keras упрощает реализацию нейронных сетей, скрывая некоторые детали в TensorFlow, что может сначала показаться запутанным. 
Вы познакомитесь с примером реализации сверточной сети с помощью Keras. 
Далее мы рассмотрим использование библиотеки seq2seq в TensorFlow для реализации системы машинного перевода с гораздо меньшим количеством кода, чем 
в упражнении из главы 11. Наконец, вы познакомитесь с руководством по использованию TensorBoard для визуализации смысловых связей слов. TensorBoard – это 
удобный инструмент визуализации, который поставляется с TensorFlow. Его можно использовать для визуализации и мониторинга различных переменных в вашем клиенте TensorFlow.

как получить максимальную отДачу от этой книги

Чтобы извлечь максимальную пользу из этой книги, читатель должен:
 
 иметь твердую волю и желание изучить современные методы NLP;
 
 ознакомиться с базовым синтаксисом языка Python и структурами данных, 
такими как списки и словари;
 
 знать основы математики, например умножение матриц/векторов.

Скачивание исходного кода примеров  19

Не обязательно, но желательно:
 
 иметь достаточно обширные знания в области математики, чтобы лучше 
понять разделы, в которых идет речь о конкретных проблемах и методах 
их решения;
 
 прочитать научные статьи по тематике глубокого обучения, чтобы иметь 
представление о достижениях науки и методах, помимо тех, что описаны 
в книге.

условные обозначения и соглашения, принятые в книге

В книге используются следующие типографские соглашения.
Курсив – используется для смыслового выделения важных положений, новых 
терминов, имен команд и утилит, а также слов и предложений на естественном 
языке. 
Моноширинный шрифт – применяется для листингов программ, а также в обычном 
тексте для обозначения имен переменных, функций, типов, объектов, баз данных, 
переменных среды, операторов, ключевых слов и других программных конструкций и элементов исходного кода. 
Моноширинный полужирный шрифт – используется для обозначения команд или фрагментов текста, которые пользователь должен ввести дословно без изменений, 
а также в листингах программ, если необходимо обратить особое внимание на 
фрагмент кода.
Моноширинный курсив – применяется для обозначения в исходном коде или в командах шаблонных меток­заполнителей, которые должны быть заменены соответствующими контексту реальными значениями.

отзывы и пожелания

Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете об 
этой книге – что понравилось или, может быть, не понравилось. Отзывы важны 
для нас, чтобы выпускать книги, которые будут для вас максимально полезны.
Вы можете написать отзыв прямо на нашем сайте www.dmkpress.com, зайдя на 
страницу книги, и оставить комментарий в разделе «Отзывы и рецензии». Также 
можно послать письмо главному редактору по адресу dmkpress@gmail.com, при 
этом напишите название книги в теме письма. 
Если есть тема, в которой вы квалифицированы, и вы заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу http://dmkpress.com/
authors/publish_book/ или напишите в издательство по адресу dmkpress@gmail.com.

скачивание исхоДного коДа примеров

Скачать файлы с дополнительной информацией для книг издательства «ДМК 
Пресс» можно на сайте www.dmkpress.com на странице с описанием соответствующей книги.

Доступ онлайн
1 199 ₽
В корзину