СПб.: Питер, 2019. — 368 с. — (Бестселлеры O’Reilly). — ISBN: 978-5-4461-1153-4.
Технологии анализа текстовой информации стремительно меняются под влиянием машинного обучения. Нейронные сети из теоретических научных исследований перешли в реальную жизнь, и анализ текста активно интегрируется в программные решения.
Нейронные сети способны решать самые сложные задачи обработки естественного языка, никого не удивляет машинный перевод, "беседа" с роботом в интернет-магазине, перефразирование, ответы на вопросы и поддержание диалога.
Почему же Сири, Алекса и Алиса не хотят нас понимать, Google находит не то, что мы ищем, а машинные переводчики веселят нас примерами "трудностей перевода" с китайского на албанский? Ответ кроется в мелочах - в алгоритмах, которые правильно работают в теории, но сложно реализуются на практике.
Научитесь применять методы машинного обучения для анализа текста в реальных задачах, используя возможности и библиотеки Python. От поиска модели и предварительной обработки данных вы перейдете к приемам классификации и кластеризации.
Вступление.
Сложности компьютерной обработки естественного языка.
Лингвистические данные: лексемы и слова.
Внедрение машинного обучения.
Инструменты для анализа текста.
О чем рассказывается в этой книге.
Кому адресована эта книга.
Примеры кода и репозиторий на GitHub.
Типографские соглашения.
Использование программного кода примеров.
От издательства.
Благодарности.
Естественные языки и вычисления.
Парадигма науки о данных.
Приложения данных, основанные на анализе естественного языка.
Конвейер приложения данных.
Тройка выбора модели.
Язык как данные.
Компьютерная модель языка.
Лингвистические признаки.
Контекстные признаки.
Структурные признаки.
В заключение.
Создание собственного корпуса.
Что такое корпус?
Предметные корпусы.
Движок сбора данных Baleen.
Управление корпусом данных.
Структура корпуса на диске.
Объекты чтения корпусов.
Потоковый доступ к данным с помощью NLTK.
Чтение корпуса HTML.
Чтение корпуса из базы данных.
В заключение.
Предварительная обработка и преобразование корпуса.
Разбивка документов.
Выявление и извлечение основного контента.
Разделение документов на абзацы.
Сегментация: выделение предложений.
Лексемизация: выделение лексем.
Маркировка частями речи.
Промежуточный анализ корпуса.
Трансформация корпуса.
Чтение предварительно обработанного корпуса.
В заключение.
Конвейеры векторизации и преобразования.
Слова в пространстве.
Частотные векторы.
Прямое кодирование.
Частота слова— обратная частота документа.
Распределенное представление.
Scikit-Learn API.
Интерфейс BaseEstimator.
Расширение TransformerMixin.
Конвейеры.
Основы конвейеров.
Поиск по сетке для оптимизации гиперпараметров.
Усовершенствование извлечения признаков спомощью объектов FeatureUnion.
В заключение.
Классификация в текстовом анализе.
Классификация текста.
Идентификация задач классификации.
Модели классификации.
Создание приложений классификации текста.
Перекрестная проверка.
Конструирование модели.
Оценка модели.
Эксплуатация модели.
В заключение.
Кластеризация для выявления сходств в тексте.
Обучение на текстовых данных без учителя.
Кластеризация документов по сходству.
Метрики расстояния.
Партитивная кластеризация.
Иерархическая кластеризация.
Моделирование тематики документов.
Латентное размещение Дирихле.
Латентно-семантический анализ.
Неотрицательное матричное разложение.
В заключение.
Контекстно зависимый анализ текста.
Извлечение признаков на основе грамматики.
Контекстно-свободные грамматики.
Синтаксические парсеры.
Извлечение ключевых фраз.
Извлечение сущностей.
Извлечение признаков на основе n-грамм.
Чтение корпуса с поддержкой n-грамм.
Выбор размера n-грамм.
Значимые словосочетания.
Модели языка n-грамм.
Частота и условная частота.
Оценка максимальной вероятности.
Неизвестные слова: возвраты и сглаживание.
Генерация языка.
В заключение.
Визуализация текста.
Визуализация пространства признаков.
Визуальный анализ признаков.
Управление конструированием признаков.
Диагностика моделей.
Визуализация кластеров.
Визуализация классов.
Диагностика ошибок классификации.
Визуальная настройка.
Оценка силуэта и локтевые кривые.
В заключение.
Графовые методы анализа текста.
Вычисление и анализ графов.
Создание тезауруса на основе графа.
Анализ структуры графа.
Визуальный анализ графов.
Извлечение графов из текста.
Создание социального графа.
Исследование социального графа.
Разрешение сущностей.
Разрешение сущностей в графе.
Блокирование по структуре.
Нечеткое блокирование.
В заключение.
Чат-боты.
Основы диалогового взаимодействия.
Диалог: непродолжительный обмен.
Управление диалогом.
Правила вежливой беседы.
Приветствие и прощание.
Обработка ошибок при общении.
Занимательные вопросы.
Анализ зависимостей.
Анализ составляющих.
Выявление вопроса.
От столовых ложек к граммам.
Обучение для рекомендаций.
Соседство.
Предложение рекомендаций.
В заключение.
Масштабирование анализа текста.
Модуль multiprocessing.
Запуск параллельных задач.
Пулы процессов и очереди.
Параллельная обработка корпуса.
Кластерные вычисления с использованием Spark.
Устройство заданий в Spark.
Распределение корпуса.
Операции RDD.
Обработка естественного языка в Spark.
В заключение.
Глубокое обучение и не только.
Прикладные нейронные сети.
Нейронные модели языка.
Искусственные нейронные сети.
Архитектуры глубокого обучения.
Анализ эмоциональной окраски.
Глубокий анализ структуры.
Будущее (почти) наступило.
Глоссарий.
Об авторах.
Выходные данные.