Перейти к основному содержимому

Обработка текста

Рассмотрим основные задачи обработки текстов, решаемые в машинном и глубоком обучении.

Простейшей задачей обработки текста является его классификация (text classification [1]). Рассмотрим примеры:

  • Оценка того, написан ли текст ботом или человеком.

  • Автоматическая категоризация новостей (news categorization) по новостным рубрикам (новости спорта, экономики, политики, культуры и т.д.) для более удобной навигации.

  • Оценка полярности оценивает отзыв человека на товар, понравился ли он ему или нет (sentiment analysis, [2]).

Распознавание именованных сущностей (named entity recognition, NER [3]) - другая популярная задача на текстах, состоящая в автоматическом выделении сущностей интересующего вида (таких, как имена людей, компаний, время, стоимость и т.д.) из неструктурированного текста. Например, строка:

Google bought YouTube in November 2006 for US$1.65 billion.

преобразуется в размеченную строку:

[Google]company bought [YouTube]company in [November 2006]time for [US$1.65 billion]price.

Иногда ссылка на именованные сущности происходит посредством местоимения, как в следующем предложении:

Джон помог Мэри. Он был добрым.

Задачей разрешения анафоры (anaphora resolution) является выявить, на какой объект ссылаются местоимения в тексте ("он" ссылается на Джона).

Для более удобной обработки текста часто строится по нему дерево синтаксического разбора (syntax parse tree, источник), представляющее предложения в виде иерархической структуры:

Используются следующие аббревиатуры:

  • S=sentence (предложение);

  • NP=noun phrase (фраза с существительным);

  • N=noun (существительное);

  • VP=verb phrase (фраза с глаголом);

  • V=verb (глагол);

  • D=determiner (частица).

Распознавание именованных сущностей, разрешение анафор и построение дерева синтаксического разбора представляют собой первоначальные шаги задачи извлечения информации (information extraction [4]) из неструктурированного текста, которые могут решать следующие задачи:

  • суммаризация текста (text summarization [5]) - краткий пересказ длинной истории, генерация основных выводов из текста;

  • информационный поиск (information retrieval [6]) - поиск документов или их фрагментов, релевантных поисковому запросу;

  • автоматические ответы на вопросы (question answering [7]) - построение ответов на вопросы пользователя на естественном языке, возможно, с аргументацией;

  • чат-боты (chat-bots [8]), самостоятельно поддерживающие разговор с пользователем и помнящие контекст беседы;

  • извлечение событий (event extraction [9]) определенного вида в структурированном виде, например, информации о покупке одних компаний другими при торговле на бирже;

  • построение онтологий (ontology learning [10]) - извлечение информации из текста или коллекции текстов об окружающем мире в виде графа знаний (knowledge graph [11]), как показано ниже:

Другими задачами обработки текстов являются:

  • Машинный перевод (machine translation [12]) - перевод предложения с одного языка на другой. Также решаются задачи перевода с одного языка программирования на другой (например, с Java на Python).

  • Определение автора по тексту - определить, принадлежат ли два фрагмента текста одному автору.

  • Стилизация текста (text style transfer [13]) - переформулировка текста в заданном стиле (например, из разговорного стиля в формальный деловой).

  • Генерация текста по заданной теме (topic-guided text generation).

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

Литература

  1. paperswithcode.com: Text Classification.

  2. Prince S. J. D. Understanding deep learning. – MIT press, 2023.

  3. Wikipedia: Named-entity recognition.

  4. Wikipedia: Information extraction.

  5. paperswithcode.com: Text Summarization.

  6. Wikipedia: Information retrieval.

  7. paperswithcode.com: Question Answering.

  8. paperswithcode.com: Chatbot.

  9. paperswithcode.com: Event Extraction.

  10. Wikipedia: Ontology learning.

  11. Wikipedia: Knowledge graph.

  12. paperswithcode.com: Machine Translation.

  13. paperswithcode.com: Text Style Transfer.