Обработка текста
Рассмотрим основные задачи при обработке текстов.
Простейшей задачей обработки текста является его классификация (text classification). Рассмотрим примеры:
-
Оценка того, написан ли текст ботом или человеком.
-
Автоматическая категоризация новостей (news categorization) по новостным рубрикам (новости спорта, экономики, политики, культуры и т.д.) для более удобной навигации.
-
Оценка полярности оценивает отзыв человека на товар, понравился ли он ему или нет (sentiment analysis, источник).
Распознавание именованных сущностей (named entity recognition, NER) - другая популярная задача на текстах, состоящая в автоматическом выделении сущностей интересующего вида (имена людей, компаний, время, стоимость и т.д.) из неструктурированного текста. Например строка:
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) из неструктурированного текста, которые могут решать следующие задачи:
-
суммаризация текста (text summarization) - краткий пересказ длинной истории, генерация основных выводов из текста;
-
информационный поиск (information retrieval) - поиск документов или их фрагментов, релевантных поисковому запросу;
-
автоматический ответ на вопросы (question answering) - построение ответов на вопросы пользователя на естественном языке, возможно, с аргументацией;
-
чат-боты, самостоятельно поддерживающие разговор с пользователем и помнящие контекст беседы;
-
извлечение событий (event extraction) определенного вида в структурированном виде, например, информации о покупке одних компаний другими компаниями при торговле на бирже;
-
построение онтологий (ontology learning) - извлечение информации из текста или коллекции текстов об о кружающем мире в виде графа знаний (knowledge graph), как показано ниже:
Другими задачами обработки текстов являются:
-
Машинный перевод (machine translation) - перевод предложения с одного языка на другой. Также решаются задачи перевода с одного языка программирования на другой (например, с Java на Python).
-
Определение автора по тексту - определить, принадлежат ли два фрагмента текста одному автору.
-
Стилизация текста - переформулировка текста в заданном стиле (например из разговорного стиля в формальный деловой).
-
Генерация текста по заданной теме.
Обработка текстов осуществляется рекуррентными сетями, которым посвящен отдельный раздел. Более современный и точный способ обработки - использовать механизм внимания и трансформер, которые также детально описаны в учебнике.