Обработка естественного языка с TensorFlow
Покупка
Тематика:
Прикладное программное обеспечение
Издательство:
ДМК Пресс
Автор:
Ганегедара Тушан
Перевод:
Яценков Валерий Станиславович
Год издания: 2020
Кол-во страниц: 382
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование взрослых
ISBN: 978-5-97060-756-5
Артикул: 767472.02.99
TensorFlow - библиотека на языке Python для реализации систем глубокого обучения, позволяющих решать в том числе уникальные задачи по обработке естественного языка. Автор книги излагает общие принципы работы NLP и построения нейронных сетей, описывает стратегии обработки больших объемов данных, а затем переходит к практическим темам. Вы узнаете, как использовать технологию World2vec и ее расширения для создания представлений, превращающих последовательности слов в числовые векторы, рассмотрите примеры решения задач по классификации предложений и генерации текста, научитесь применять продвинутые рекуррентные
модели и сможете самостоятельно создать систему нейронного машинного перевода. Издание предназначено для разработчиков, которые, используя лингвистические данные, применяют и совершенствуют методы машинной обработки естественного языка.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Тушан Ганегедара Обработка естественного языка с 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. Russianlanguage edition copyright © 2020 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 9781788478311 (анг.) Copyright © 2018 Packt Publishing ISBN 9785970607565 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2020
Содержание Об авторе ................................................................................................................13 О рецензентах ......................................................................................................14 Предисловие .........................................................................................................15 Глава 1. Введение в обработку естественного языка ...........................21 Что такое обработка естественного языка? .............................................................21 Задачи обработки естественного языка ...................................................................22 Традиционный подход к обработке естественного языка .....................................24 Подробности традиционного подхода .................................................................24 Недостатки традиционного подхода ...................................................................29 Революция глубокого обучения в обработке естественного языка .......................30 История глубокого обучения ................................................................................30 Современное состояние глубокого обучения и NLP ...........................................32 Устройство простой глубокой модели – полносвязной нейронной сети ..........33 Что вы найдете дальше в этой книге? ......................................................................34 Знакомство с рабочими инструментами .................................................................38 Обзор основных инструментов ............................................................................38 Установка Python и scikitlearn .............................................................................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 Метод TFIDF..........................................................................................................80 Матрица совместной встречаемости ...................................................................81 Word2vec – нейросетевой подход к изучению представления слова .....................82 Упражнение: королева = король – он + она? ........................................................83 Разработка функции потери для изучения представлений слов .......................87 Алгоритм skipgram ...................................................................................................87 От необработанного текста до структурированных данных ..............................88 Изучение представлений слов с помощью нейронной сети ..............................88 Реализация алгоритма skipgram с TensorFlow ...................................................98 Алгоритм CBOW .......................................................................................................100 Реализация алгоритма CBOW с TensorFlow .......................................................100 Заключение ..............................................................................................................102 Глава 4. Углубленное изучение Word2vec ...............................................103 Исходный алгоритм skipgram ................................................................................103 Реализация исходного алгоритма skipgram .....................................................104 Сравнение исходного и улучшенного алгоритмов skipgram ..........................106 Сравнение skipgram и CBOW .................................................................................107 Сравнение продуктивности ................................................................................108 Кто же победитель, skipgram или CBOW? .........................................................111 Расширения алгоритмов представления слов .......................................................113 Использование униграммного распределения для отрицательной выборки ................................................................................................................113 Реализация отрицательной выборки на основе униграмм ..............................113 Подвыборка – вероятностное игнорирование общих слов ..............................115 Реализация подвыборки .....................................................................................116 Сравнение CBOW и его расширений ..................................................................116 Более современные алгоритмы, расширяющие skipgram и CBOW ....................117 Ограничение алгоритма skipgram ....................................................................117 Структурированный алгоритм skipgram ..........................................................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 Особенности устройства RNNCF .......................................................................177 Реализация RNNCF .............................................................................................178 Текст, созданный с помощью RNNCF ...............................................................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 Набор данных MSCOCO .....................................................................................246 Устройство модели для генерации подписей к изображениям ...........................249 Извлечение признаков изображения .....................................................................250 Реализация – загрузка весов и вывод с помощью VGG16 ...................................252 Создание и обновление переменных .................................................................252 Предварительная обработка входов ...................................................................253 Распространение данных через VGG16 ............................................................254 Извлечение векторизованных представлений изображений ..........................255 Прогнозирование вероятностей классов с помощью VGG16 ..........................255 Изучение представлений слов ................................................................................256 Подготовка подписей для подачи в LSTM ..............................................................258 Формирование данных для LSTM ...........................................................................259 Определение параметров и процедуры обучения LSTM ......................................260 Количественная оценка результатов......................................................................262 BLEU ......................................................................................................................263 ROUGE ...................................................................................................................264 METEOR ................................................................................................................264 CIDEr .....................................................................................................................266 Изменение оценки BLEU4 для нашей модели .................................................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