Python и spaCy помогут вам быстро и легко создавать NLP-приложения: чат-боты, сценарии для сокращения текста или инструменты принятия заказов. Вы научитесь использовать spaCy для интеллектуального анализа текста, определять синтаксические связи между словами, идентифицировать части речи, а также определять категории для имен собственных. Ваши приложения даже смогут поддерживать беседу, создавая собственные вопросы на основе разговора.
Прочитав эту книгу, вы можете сами расширить приведенные в книге сценарии, чтобы обрабатывать разнообразные варианты ввода и создавать приложения профессионального уровня.
Author(s): Юлий Васильев
Series: Библиотека программиста
Edition: 1
Publisher: Питер
Year: 2021
Language: Russian
Commentary: Vector PDF
Pages: 256
City: СПб.
Tags: Machine Learning; Natural Language Processing; Databases; Python; Linguistics; Chatbots; Data Visualization; Pipelines; spaCy; Telegram; Text Processing; Intent Recognition
Об авторе
О научном редакторе
Введение
Применение языка Python для обработки естественного языка
Библиотека spaCy
Для кого предназначена книга
Что вы найдете в издании
Скачивание примеров кода
От издательства
Глава 1. Как происходит обработка текстов на естественном языке
Как компьютеры понимают естественный язык
Задание соответствий слов и чисел с помощью вложений слов
Применение машинного обучения для обработки естественного языка
Зачем использовать машинное обучение для обработки естественного языка
Что такое статистическая модель в NLP
Нейросетевые модели
Использование сверточных нейронных сетей для NLP
Какие задачи остаются за вами?
Ключевые слова
Контекст
Переход значения
Резюме
Глава 2. Конвейер обработки текста
Настройка рабочей среды
Установка статистических моделей для библиотеки spaCy
Базовые операции NLP в библиотеке spaCy
Токенизация
Лемматизация
Использование лемматизации для распознавания смысла
Частеречная разметка
Поиск соответствующих глаголов с помощью тегов частей речи
Важность контекста
Синтаксические отношения
Распознавание именованных сущностей
Резюме
Глава 3. Работа с объектами-контейнерами и настройка spaCy под свои нужды
Объекты-контейнеры библиотеки spaCy
Получение индекса токена в объекте Doc
Обход в цикле синтаксических дочерних элементов токена
Контейнер doc.sents
Контейнер doc.noun_chunks
Объект Span
Настройка конвейера обработки текста под свои нужды
Отключение компонентов конвейера
Пошаговая загрузка модели
Настройка компонентов конвейера под свои нужды
Использование структур данных уровня языка C библиотеки spaCy
Принципы работы
Подготовка рабочей среды и получение текстовых файлов
Сценарий Cython
Сборка модуля Cython
Тестирование модуля
Резюме
Глава 4. Выделение и использование лингвистических признаков
Выделение и генерация текста с помощью тегов частей речи
Теги для чисел символов и знаков препинания
Выделение описаний денежных сумм
Преобразование утвердительных высказываний в вопросительные
Использование меток синтаксических зависимостей при обработке текста
Различаем подлежащие и дополнения
Выясняем какой вопрос должен задать чат-бот
Резюме
Глава 5. Работа с векторами слов
Смысл векторов слов
Задание смысла с помощью координат
Задание смысла по измерениям
Метод similarity
Выбор ключевых слов для вычисления семантического подобия
Установка пакетов векторов слов
Пользуемся векторами слов прилагаемыми к моделям spaCy
Использование сторонних пакетов векторов слов
Сравнение объектов spaCy
Применение семантического подобия для задач категоризации
Выделение существительных как шаг предварительной обработки
Выделение и сравнение именованных сущностей
Резюме
Глава 6. Поиск паттернов и обход деревьев зависимостей
Паттерны последовательностей слов
Поиск паттернов лингвистических признаков
Проверка высказывания на соответствие паттерну
Использование утилиты Matcher библиотеки spaCy для поиска паттернов последовательностей слов
Применение нескольких паттернов
Создание паттернов на основе пользовательских признаков
Выбор применяемых паттернов
Применение паттернов последовательностей слов в чат-ботах для генерации высказываний
Выделение ключевых слов из деревьев синтаксических зависимостей
Выделение информации путем обхода дерева зависимостей
Проход в цикле по главным элементам токенов
Краткое изложение текста с помощью деревьев зависимостей
Усовершенствование чат-бота для бронирования билетов с помощью учета контекста
Повышаем IQ чат-бота за счет поиска подходящих модификаторов
Резюме
Глава 7. Визуализация
Знакомство с встроенными средствами визуализации spaCy
Средство визуализации зависимостей displaCy
Средство визуализации именованных сущностей displaCy
Визуализация из кода spaCy
Визуализация разбора зависимостей
Визуализация по отдельным предложениям
Настройка визуализаций под свои задачи с помощью аргумента options
Использование аргумента options средства визуализации зависимостей
Использование аргумента options средства визуализации именованных сущностей
Экспорт визуализации в файл
Использование displaCy для отображения данных в ручном режиме
Форматирование данных
Резюме
Глава 8. Распознавание намерений
Распознавание намерений с помощью выделения переходного глагола и прямого дополнения
Получение пары «переходный глагол/прямое дополнение»
Выделение множественных намерений с помощью token.conjuncts
Выделение намерения с помощью списков слов
Поиск значений слов с помощью синонимов и семантического подобия
Распознавание синонимов с помощью заранее заданных списков
Распознавание неявных намерений с помощью семантического подобия
Выделение намерения из последовательности предложений
Обход структуры зависимостей связного текста
Замена местоименных элементов их антецедентами
Резюме
Глава 9. Сохранение данных введенных пользователем в базе данных
Преобразование неструктурированных данных в структурированные
Выделение данных в формате обмена данными
Перенос логики приложения в базу данных
Создание чат-бота использующего базу данных
Сбор данных и формирование объекта JSON
Преобразование числительных в числа
Подготовка среды базы данных
Отправка данных в БД
Что делать если запрос пользователя содержит недостаточно информации
Резюме
Глава 10. Обучение моделей
Обучение компонента конвейера модели
Обучение средства распознавания именованных сущностей
Определяем нужно ли обучать средство распознавания именованных сущностей
Создание обучающих примеров данных
Автоматизация процесса создания примеров данных
Отключение лишних компонентов конвейера
Процесс обучения
Оценка работы обновленного средства распознавания именованных сущностей
Создание нового синтаксического анализатора
Понимание входного текста с помощью нестандартного синтаксического разбора зависимостей
Выбор используемых типов семантических отношений
Создание обучающих примеров данных
Обучение анализатора
Тестирование нестандартного анализатора
Резюме
Глава 11. Развертывание собственного чат-бота
Схема реализации и развертывания чат-бота
Telegram как платформа для бота
Создание учетной записи Telegram и авторизация чат-бота
Знакомство с библиотекой python-telegram-bot
Использование объектов telegram.ext
Создание чат-бота Telegram с использованием spaCy
Расширение возможностей чат-бота
Сохранение состояния текущего чата
Собираем все части чат-бота вместе
Резюме
Глава 12. Реализация веб-данных и обработка изображений
Схема работы
Учим бот искать ответы на вопросы в «Википедии»
Выясняем чему посвящен вопрос
Ответы на вопросы пользователей с помощью «Википедии»
Реагируем на отправляемые в чаты изображения
Генерация описательных тегов для изображений с помощью Clarifai
Генерация текстовых реакций на изображения на основе тегов
Собираем все части воедино в боте Telegram
Импорт библиотек
Написание вспомогательных функций
Написание функций обратного вызова и main()
Тестирование бота
Резюме
Приложение. Начальное руководство по лингвистике
Грамматика зависимостей и грамматика с фразовой структурой
Общие грамматические понятия
Переходные глаголы и прямые дополнения
Предложные дополнения
Вспомогательные модальные глаголы
Личные местоимения