Как обработка текста помогает решать бизнес-задачи?

Наши партнеры, компания EORA разрабатывают системы искусственного интеллекта для бизнесов. Специально для нашего блога ребята написали статью о методах обработки текста и применениии этих методов для решения бизнес-задач.

Каждый день в нашей жизни мы работаем с текстом. Это новостная лента в социальной сети, сообщения в мессенджере или переписка по электронной почте. Так мы общаемся между собой в Интернете — в бизнесе складываются взаимодействия похожего рода: например обмен документами, общение с клиентами, ведение документооборота. В этой статье мы разберем задачи в бизнесе, в которых возникает текст и которые решаются методами автоматической обработки текста, но для начала мы разберем то, что считается текстом.

Что такое текст?

В далеком прошлом люди передавали информацию из уст в уста. Затем появилась бумага и чернила — с ее использованием люди изобрели графические единицы информации: слова или иероглифы. Это некоторые базовые элементы системы знаков, требуемой для передачи мысли от одного человека к другому. Этими элементами мы пользуемся и по сей день, однако в адаптированной форме. Современные цифровые тексты состоят из набора символов, который называется Юникод[1], и представляет собой символы, которые используются в странах мира. Отдельная часть этой системы — эмодзи, которые впервые появились в японских мессенджерах. В сам стандарт Юникод эмодзи ввели в версии 6.0, в октябре 2010 года.

Помимо общения, цифровизация текста дала жизнь новому занятию для людей — разработке программ для компьютеров. Программный код на языке программирования — это текст. Он тоже состоит из символов и слов, и с ним даже проще работать, поскольку код подчиняется формальным правилам, без которых компьютер не смог бы выполнять описанные на нем команды. Сервисы, которые реализуют программисты, склонны к разрастанию, нарастает сложность — и это влечет к ошибкам. Популярный метод нахождения ошибок — запись выполненных сервисом действий в журнал событий. Он представляет собой текст, и тоже обрабатывается — например, выполняется поиск мест с ошибкой в коде проекта, и автоматический.

Некоторые компании используют распечатанные документы для обмена информацией. Для цифровой обработки требуется провести сканирование этих документов, а затем провести распознавание текста на отсканированном изображении. Это отдельная задача компьютерного зрения, которая называется Optical Character Recognition.

Задачи обработки текста в кейсах

Классическая задача автоматической обработки текста — классификация. Типичный пример — фильтрация спама. Почта делится на две категории: обычная и нежелательная. Другие примеры: классификация отзывов клиентов на положительные или отрицательные, классификация названий товаров в чеке по категориям. Эта задача решается методами машинного обучения в тех случаях, когда невозможно составить набор правил, по которым можно однозначно определить категорию объекта. В диалоговых системах вроде Алисы классификация применяется для категоризации намерения пользователя — например, если пользователь спрашивает “какая сегодня погода”, то его вопрос относится к категории «вопрос про погоду» и перенаправляется в часть системы, которая отвечает на эти вопросы.

Другой кейс обработки текста — определение числовой характеристики для текста, регрессия. Например, это ожидаемое количество просмотров для статьи в журнале, либо предсказание суммы контракта по описанию. Помимо этого, по тексту предсказывают изменение стоимости ценных бумаг — эти предсказания используются для автоматической торговли на бирже.

Иногда требуется определить не одну величину для всего текста, а некоторую величину для каждого слова в тексте. Например, если обрабатываются запросы клиентов с заказами, то узнают детали — наименование товара, параметры, адрес доставки. В подходе под названием Sequence Tagging для каждого слова определяют тэг — категорию, которая относит слово к той или иной детали заказа. В этом подходе не обойтись без методов машинного обучения, в частности моделями для извлечения именованных сущностей (Named Entity Recognition).

Автодополнение — это прием, упрощающий взаимодействие пользователя с интерфейсом. Этот прием основан на языковых моделях — это такая математическая функция, которая предсказывает по введенным словам те, которые будут за ними следовать. Например, для текста «Шла Саша по шоссе и» языковая модель, обученная на заголовках новостей, предлагает варианты “ранила соцсети на фоне новостей о женщинах” и “пошла наплыв в тюрьму”. Нейронная сеть GPT-2, засветившаяся в новостях, генерирует тексты, которые люди с трудом отличают от настоящих.[2] Такие модели используют для помощи пользователям при вводе текста — например, для подсказок похожих поисковых запросов, либо для подсказок слов при наборе на клавиатуре смартфона.

Одним из необычных кейсов является семантический поиск. Современные подходы для обработке языка на основе нейросетей позволяют сравнивать слова и предложения по их похожести. Если раньше для поиска синонимов необходимо было обращаться к словарю или к лингвистам, то теперь существуют автоматические методы для их поиска — например, метод word2vec и его аналоги. Для бизнеса, эти методы семантического сходства позволяют сравнивать вопросы пользователей с готовой базой часто задаваемых вопросов (FAQ), позволяя автоматически на них отвечать. Другим кейсом является Алиса — ее подсистема “болталки” обучена подбирать подходящий ответ на фразу пользователя, если она считает что эта фраза относится к категории “поболтать”. Эта мера похожести определяется на основе различных источников, а также на основе ответов реальных пользователей.[3]

Читайте в блоге: Как думают умные роботы? Введение в машинное обучение

Пожалуй, сложнейшей задачей в сфере обработки языка является машинный перевод. Все знакомы с ошибками, которые раньше возникали в некоторых системах автоматического перевода — последние несколько лет их встречается все меньше и меньше, что вы могли заметить если пользовались Google Translate или Яндекс.Переводчиком. Это связано с прорывом в так называемых Sequence-to-Sequence нейросетях, которые учатся переводить одни последовательности в другие — в данном случае текст на одном языке в текст на другом языке.[4] Эта концепция помогает решать задачи, которые никак не связаны с переводом — например, формирование краткого содержания статей — так называемой суммаризации текста. Например, этот метод может помочь выделить главные мысли из текста отзывов в сервисе-агрегаторе, помогая пользователям быстрее с ознакомиться мнением других людей о товаре или заведении. Помимо этого, этот подход в может быть применен для перевода речи в текст или текста в речь. На данный момент эта сфера является по большей части исследовательской, однако в ближайшем будущем мы вполне вероятно увидим прорывы в этой области.

Резюме

В этой статье мы разобрали то, как устроены тексты, где они появляются в современных задачах в бизнесе и где в них применяются методы обработки текста и машинного обучения. Возможно, теперь вам стало понятнее каким образом работают вещи, с которыми вы повседневно сталкиваетесь. Надеемся, что эта статья поможет вам найти места в ваших продуктах, где обработка текста могла бы принести пользу.

Ссылки:

[1] https://ru.wikipedia.org/wiki/Юникод

[2] https://habr.com/ru/post/440564/

[3] https://nplus1.ru/material/2018/02/27/yandex-alice

[4] https://habr.com/ru/company/otus/blog/430780/

Текст: Антон Киселев, EORA

Поделиться: