Технологии обработки текстов на естественном языке (Natural Language Processing, NLP) сегодня активно применяются при распознавании речи, генерации фраз естественного языка, автоматического перевода, а также интеллектуального анализа текстов, позволяющего извлекать знания из текстовых документов. В сферу интеллектуального анализа текстов входят задачи и технологии информационного поиска, суммаризации текста, анализа тональности высказываний, классификации и кластеризации документов. Необходимость автоматического извлечения полезной информации (или знаний) из потока текстовых документов привела к возникновению целого научного направления — Text Mining [1], включающего распознавание сущностей, поиск ключевых слов, определение связей между различными объектами, извлечение сведений и поиск нужной информации. Необходимость обработки огромного объема накопленных текстовых данных повысила актуальность создания интеллектуальных систем извлечения знаний из неструктурированных данных, включающих технологии Data Mining [2] и таких специализированных платформ, как PolyAnalyst [3], использующих интеллектуальные аналитические средства для персонификации информационного наполнения.
Интеллектуальный анализ текстовых данных — сложный процесс обнаружения новой информации путем ее автоматического извлечения из различных источников, причем крайне важно изначально обеспечить качество данных, используемых для анализа текстов. Однако, в случае сбора текстов из открытых источников (социальные сети, интернет СМИ, мессенджеры и пр.), сообщения часто перепечатываются не в начальном виде, а измененные или дополненные комментариями, поэтому часто поиск простого совпадения текстов дает неудовлетворительные результаты. В этом случае требуется фильтрация текстов по порогу схожести.
Еще одна проблема — неоднозначность лингвистической информации. Одни и те же слова и фразы могут обладать различной семантикой — наличие в текстах ключевых слов, формально отвечающих запросу, но применяемых в другом смысловом значении, делает текст нерелевантным для исследования.
Еще одна проблема связана со спецификой решаемых задач. Универсальные средства поиска не всегда способны идентифицировать нужную информацию и не предоставляют возможность создавать пользовательские паттерны.
Сегодня имеется множество инструментов анализа текстов, рассчитанных на применение специализированных библиотек и использование языков программирования: SpaСy, NLTK, TextBlob, CoreNLP, TextaCy и NeuralCoref, однако многие из них рассчитаны на специалистов по статистике и искусственному интеллекту. Это сокращает круг пользователей, увеличивает время и трудоемкость создания интеллектуальных систем.
Большую популярность сегодня набирают системы анализа текстов, использующие методы машинного обучения и инструменты NLP, рассчитанные на специалистов, не обладающих навыками программирования: PolyAnalyst, IQPLATFORM, M-Brain Intelligence Plaza, Elasticsearch. Такие системы предлагают широкий спектр инструментов и хорошо зарекомендовали себя при использовании в конкретных предметных областях.
Для иллюстрации возможностей инструментов анализа текстовых данных, позволяющих автоматизировать процессы семантической фильтрации текстов, разберем пример обработки текстовых сообщений, собранных по запросу «качество высшего образования», применив методику очистки по порогу схожести, семантическую фильтрацию сообщений и создание пользовательских паттернов для извлечения релевантных фактов.
Инструменты
Сбор сообщений из сетевых медиа (социальные сети, блоги, форумы, тематические порталы, интернет-СМИ и информагентства) осуществлялся с использованием бесплатной системы «Крибрум. Публичный поиск». Графический интерфейс системы позволяет организовать сбор сведений, индексирование, а также поиск по запросам. Ответ содержит название публикации, ее краткий текст, имя автора, дату публикации, ссылку на оригинал публикации и ряд других сведений. Для поиска использовался запрос «качество высшего образования» с параметрами: Автор: все, Платформа: все, Период: за все время.
Для обработки текстов применялась аналитическая платформа PolyAnalyst [3–5], выбор которой обусловлен рядом причин: платформа разработана российским производителем, представляет собой аналитическую систему low-code со средой разработки интеллектуальных решений, содержит более 100 функциональных узлов, в которых реализованы алгоритмы data mining и text mining, имеет средства загрузки данных из более чем пятидесяти форматов. Кроме этого в системе имеются инструменты NoSQL для обработки и преобразования данных; модуль визуализации результатов, построения и публикации интерактивных аналитических отчетов; собственные языки запросов, позволяющие создавать пользовательские паттерны.
Рис. 1. Этапы семантической фильтрации сообщений |
Предварительная обработка и семантическая фильтрация
Основные этапы семантической фильтрации сообщений представлены на рис. 1. Датасет, полученный по запросу «качество высшего образования», содержит поля: cluster_id (Идентификатор записи); author_name (Имя автора); snippet_text (Краткий текст); date_pub (Дата публикации). По идентификатору записи можно получить полный текст сообщения.
Некоторые записи можно отфильтровать уже на этапе анализа содержимого поля с кратким текстом. Далее этапы обработки выполняются уже для датасета, дополненного полным текстом сообщений. Работа в системе PolyAnalyst сводится к добавлению необходимых узлов на рабочее поле, их настройке и выполнению. Каждый узел выполняет определенную задачу обработки данных. Типовой проект, реализующий семантическую фильтрацию текстов, представлен на рис. 2.
Рис. 2. Фильтрация сообщений по сценарию PolyAnalyst |
Отбор уникальных записей. В собранном датасете оказалось 1007 записей, причем среди них много повторяющихся. Это связано с тем, что сообщения перепечатываются разными информационными ресурсами, часто искажаясь и дополняясь. При этом полный текст может меняться, хотя краткий текст, формируемый поисковой системой, совпадает полностью. После удаления сообщений с одинаковым значением поля «Краткий текст» остается уже 468 сообщений (уменьшение на 46,5%).
Отбор уникальных текстов по установленному порогу. Некоторые сообщения с кратким текстом очень похожи, отличаясь лишь несколькими словами или даже символами. Обычно это один и тот же текст, но чуть измененный. Для исключения таких сообщений используется узел «Уникальные тексты», в настройках которого указываются текстовое поле для анализа и порог схожести. Если установить порог схожести в 97%, то из итоговой выдачи удаляется еще 42 сообщения (уменьшение набора еще на 9%).
Семантическая фильтрация текстов. На данном этапе выбираются сообщения, ключевые слова в которых имеют смысл, отличный от предполагаемого в запросе. Для семантической фильтрации сообщений можно использовать язык поиска лингвистических конструкций в неструктурированных текстах PDL (Pattern Definition Language) и расширенный язык для определения текстовых паттернов XPDL («eXtended Pattern Definition Language) системы PolyAnalyst. Для проверки правильности запросов используется узел «Поисковый запрос», а для фильтрации узлы «Таксономия» и «Применение таксономии». Например, в некоторых текстах фраза «качество высшего образования» рассматривается не как степень сравнения уровня подготовки специалистов, а в значении «в качестве как такового»: «Света всегда мечтала стать художницей, а в качестве высшего образования она выбрала направление дизайна». Для поиска подобных сочетаний можно использовать следующее правило на языке PDL: snear («в качестве высшего образования», выбирать or диплом, max_gap:=2). В данном запросе в пределах одного предложения ищется фраза «в качестве высшего образования» и слова «выбирать» или «диплом» на максимальном расстоянии в два токена.
Другой пример — в тексте встречаются организации, в название которых входят ключевые слова, но эти организации расположены не в России: «Национальное агентство по обеспечению качества высшего образования». Кроме этого, в текстах иногда встречаются организации, в название которых входят ключевые слова, но краткий текст публикации не содержит других упоминаний этих слов, например: «Институт качества высшего образования». В дальнейшем при отборе сообщений можно сразу отсеивать подобные сообщения.
Встречается и обратная ситуация, когда в текстах оказываются записи, не содержащие ключевых слов, но попавшие в выборку. От такого «мусора» можно избавиться запросом на поиск текстов, в которых между словом «качество» или «уровень» и словом «образование» находится не более двух прилагательных. Это позволит в итоговой выборке оставить тексты, содержащие фразы типа: «родители довольны качеством отечественного высшего образования» или «процедуры независимой оценки качества образования».
Автоматическая фильтрация текстовых данных
При анализе текстов на естественном языке важное значение имеет предварительная обработка данных, оказывающая существенное влияние на качество результатов. Особую сложность представляет фильтрация нужного контекста при лексической омонимии и разнообразии грамматических конструкций, влияющих на общий смысл текста. Обработка больших массивов текстов вручную — неподъемная задача, поэтому у аналитиков востребованы простые и эффективные инструменты автоматической фильтрации текстовых данных. Вместе с тем универсальные системы поиска невозможно настроить под индивидуальные задачи пользователя, а сложные специализированные инструменты требуют специальных знаний в программировании и статистике, поэтому оптимальным решением может стать применение платформ low-code, рассчитанных на широкий круг пользователей.
Аналитическая платформа PolyAnalyst — один из инструментов обработки текстов, обладающих богатым функционалом и средствами анализа данных, включая text mining. Использование этой платформы не требует специализированных навыков в области программирования и искусственного интеллекта — работа осуществляется с помощью добавления на рабочее поле узлов, выполняющих конкретную задачу обработки. Кроме этого платформа предоставляет средства создания пользовательских паттернов с помощью встроенного языка запросов PDL (Pattern Definition Language). В итоге удается эффективно фильтровать наборы данных, в частности, исключать повторяющиеся сообщения на основе схожести текстового содержания. Семантическая фильтрация и исключение неподходящих контекстов могут быть проведены посредством применения инструмента таксономии, а также встроенных и созданных пользователем сущностей, работающих на основе языка запросов. Однако при обработке больших неразмеченных наборов может потребоваться предварительное исследование данных. Один из вариантов решения этой задачи может включать два этапа: выделение в каждом тексте наиболее значимых и определяющих значение слов с помощью узла «Ключевые слова» и разделение текстов на группы на основании полученных ключевых слов с помощью узла «Кластеризации». Это позволит посмотреть на примерное тематическое распределение текстов, отсеять неподходящие и, при необходимости, перейти к уточнению полученных кластеров с помощью языка запросов.
Юлия Лысова (info@megaputer.ru) — ведущий лингвист-аналитик, компания «Мегапьютер Интеллидженс» (Москва).
Для фильтрации текстов из подобных примеров используется узел Таксономия системы. В дереве таксономий при этом нужно добавить необходимое количество узлов с запросами на фильтрацию сообщений.
Использование поисковых правил позволило отсеять еще 6% сообщений.
В поле с кратким текстом сообщений встречаются также сообщения, в которых упоминаются иностранные государства. Но на этапе анализа краткого содержания нельзя отфильтровывать такие сообщения — в полном тексте может содержаться сравнение качества образования в разных странах. После фильтрации неподходящих по краткому содержанию сообщений датасет дополняется полным текстом сообщений и еще некоторыми полями: title (Заголовок); body (Полный текст сообщения); url (Адрес страницы). Для дополненного датасета также нужно выполнить все шаги по семантический фильтрации. Для отбора уникальных текстов по установленному порогу схожести в качестве анализируемой колонки теперь нужно указать поле, содержащее полный текст сообщений, а сам порог схожести можно установить в 90%, так как полные тексты содержат больше слов и дополнений к первоисточнику по сравнению с кратким текстом. После выполнения всех описанных шагов для расширенного датасета по полю, содержащему полный текст сообщения, удаляется еще 11% записей.
Рис. 3. Семантическая фильтрация сообщений с применением пользовательских сущностей |
Теперь надо исключить сообщения, в которых речь идет не про российское образование. Для этого можно применять технологию создания пользовательских паттернов, используя язык XPDL и найденные стандартные сущности. Типовой проект в системе PolyAnalyst по созданию и поиску пользовательских сущностей будет иметь вид, показанный на рис. 3. Узел «Извлечение сущностей GeoAdminisrative» используется для обнаружения сущностей — географических объектов. В узле «Извлечение пользовательских сущностей» нужно указать текстовую колонку для поиска, создать пользовательскую сущность и составить правило на языке XPDL.
Еще одна пользовательская сущность будет отвечать за поиск паттернов, где в основном тексте речь идет об организации «Национальное агентство по обеспечению качества высшего образования» без связи с Россией.
В результате обнаружено 85 пользовательских сущностей, которые содержались в 13% текстов.
***
При анализе текстов из открытых источников особое внимание следует уделять семантический фильтрации. Применение соответствующих инструментов анализа текстовых данных позволяет выполнять фильтрацию на основе схожести текстов; находить тексты, формально соответствующие критериям поиска, но имеющие другое семантическое значение; создавать пользовательские паттерны для извлечения фактов, связей интересуемых объектов. Для фильтрации сообщений, не подходящих по семантическому значению, эффективны правила с использованием языка запросов, фильтрация текстов с помощью таксономии, составление правил нахождения пользовательских сущностей. Комплексное применение подобного набора инструментов позволяет более чем на четверть сократить объем исходного массива данных, исключив из рассмотрения сообщения, семантически не соответствующие запросу.
Литература
1. Мусаев А. А., Григорьев Д. А. Обзор современных технологий извлечения знаний из текстовых сообщений // Компьютерные исследования и моделирование. — 2021, т. 13. — № 6. — С. 1291–1315. DOI: 10.20537/2076-7633-2021-13-6-1291-1315. URL: http://crm.ics.org.ru/journal/article/3156 (дата обращения: 21.03.2024).
2. Михаил Киселев, Евгений Соломатин. Средства добычи знаний в бизнесе и финансах // Открытые системы.СУБД. — 1997. — № 04. — С. 41–44. URL: https://www.osp.ru/os/1997/04/179210 (дата обращения: 21.03.2024).
3. Юрий Слынько, Сергей Арсеньев. Универсальная платформа интеллектуального бизнеса // Открытые системы.СУБД. — 2001. — № 10. — С. 66–70. URL: https://www.osp.ru/os/2001/10/180553 (дата обращения: 21.03.2024).
4. Петров Е. Ю., Саркисова А. Ю. Ресурс аналитической платформы PolyAnalyst в социогуманитарных научных исследованиях // Открытые данные — 2021. Материалы форума / Под ред. А. Ю. Саркисовой. Томск: Издательство Томского государственного университета. — 2021. — С. 94–104. URL: http://vital.lib.tsu.ru/vital/access/manager/Repository/koha:000897657 (дата обращения: 21.03.2024).
5. Аналитическая платформа PolyAnalyst: архитектура, функциональность, практика применения: учебное пособие для вузов / Ананян С. М., Сазонов Д. С., Слынько Ю. Н., Соломатин Е. Б. — М.: Горячая линия — Телеком, 2023. — 230 с.: ил. — Библиогр.: с. 223-225. ISBN 978-5-9912-1076-8
Иван Пикалов (pikalov@kursksu.ru) – руководитель научно-методического центра, Курский государственный университет (Курск).