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

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

Рассмотрим основные задачи при обработке текстов.

Простейшей задачей обработки текста является его классификация (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).

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

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

  • Генерация текста по заданной теме.

Обработка текстов осуществляется рекуррентными сетями, которым посвящен отдельный раздел. Более современный и точный способ обработки - использовать механизм внимания и трансформер, которые также детально описаны в учебнике.