Проблема использования знаний, спрятанных в огромных файловых архивах организаций, существует уже не первый десяток лет. Традиционный способ ее решения состоит в полнотекстовом поиске по документам путем создания корпоративной поисковой машины с функционалом, похожим на известные поисковики в Сети. Сегодня стали применять алгоритмы машинного обучения, для того чтобы сделать такой поиск более «разборчивым»: классифицировать документы по каким-либо основаниям, связывать их с бизнес-объектами и т. п. Такие методы позволяют расширить набор метаданных о документах и уточнить поиск, но не решают задачи непосредственного извлечения фактов из документов — переход от неструктурированных данных к структурированным не случился [1]. Бизнес-пользователи часто даже не ставят такую задачу, считая ее нерешаемой или очень сложной. Кроме того, не всегда понятно, как обработать полученный огромный массив фактов, — для работы с ним потребуются новые инструменты, которые, вероятно, будут сложнее средств полнотекстового поиска. В результате огромная доля полезной информации остается навеки похороненной в файловых архивах организаций.

На рынке существуют решения для извлечения фактов из текстов на естественном языке, но их большинство работают с определенным типом текстов (анкеты, заявления и пр.) или с определенной предметной областью. Это связано с тем, что для представления фактов нужна модель предметной области — онтология. Без нее невозможно выразить в машиночитаемом и человекочитаемом виде факты, которые удастся извлечь из текста, да и сам процесс извлечения реализовать будет сложно.

Какой должна быть онтология, пригодная в процессе извлечения фактов из текста? «Онтологии всего» не существует, и вряд ли она может быть успешно построена — прежде всего потому, что, несмотря на наличие определенных универсальных категорий, мышление человека очень индивидуально, фрагментировано на множество точек зрения. В результате существенный объем представлений, важных для каких-либо групп людей (в том числе для участников определенных бизнес-процессов), неизбежно останется за рамками универсальных описаний. Предметные онтологии разработаны и проверены практикой для многих областей деятельности, но они часто содержат недостаточный объем понятий, для того чтобы выразить пригодный для практического употребления набор фактов, извлеченных из реальных текстов.

Одним из распространенных способов решения проблемы является автоматизированное создание онтологий — извлечение из текста не только фактов о конкретных объектах и событиях, но и самой концептуальной схемы, набора понятий. Однако такой способ не может дать практически значимых результатов, потому что при его использовании разработчики пытаются одновременно найти в тексте и инструмент (онтологию), и результат его применения (набор фактов или высказываний о конкретных объектах и событиях). Крайне сложно интегрировать концептуальные схемы, полученные автоматизированным путем из текстов на разные темы, написанных разными авторами, и др. Невозможно автоматически обнаружить глубинную структуру концептуальных представлений, поскольку все то, что остается в тексте «между строк», считается его автором очевидным.

Недооценка важности формализации концептуальных представлений вообще свойственна разработчикам ИТ-решений и проявляется, в частности, при составлении структур данных, позволяющих решить одну прикладную задачу, но не выдерживающих изменения требований. Однако если в случае создания структуры хранилища данных ценой вопроса является «всего лишь» гибкость системы и стоимость ее разработки, то при решении задачи извлечения фактов из текста отсутствие опоры на формализованную концептуальную модель является принципиальным препятствием для достижения результата.

К счастью, документы организаций обычно относятся к четко очерченному фрагменту предметной области — например, к взаимоотношениям с клиентами по поводу поставки определенных товаров или оказания услуг, к выполнению каких-либо операций с некоторыми объектами и т. д. В большинстве крупных корпораций построена или строится концептуальная модель деятельности, и, конечно, любая построенная концептуальная модель может быть использована для решения множества задач различных классов. Наличие такой модели создает предпосылки и для успешной реализации алгоритмов извлечения фактов из текстов на естественном языке. Если предложить алгоритм распознавания смысла текста на определенную тему с опорой прежде всего на концептуальную модель предметной области, а не только на машинное обучение [2], то задача извлечения знаний, спрятанных в файловых архивах организаций, может быть решена.

Для демонстрации преимуществ предлагаемого подхода опишем условный (не взятый из практики реальных организаций) пример его применения для анализа опыта деятельности компании и обнаружения в накопленном корпоративном массиве текстов практически важных для бизнеса знаний, потенциально способных улучшить бизнес-процессы и принести выгоду.

Представим, что у компании имеется массив документов, относящихся к бизнес-процессам проектирования и строительства промышленных объектов: переписка с подрядчиками по различным видам работ — от проектных до строительно-монтажных; материалы экспертиз (государственных, внешних, внутренних, относящихся к различным этапам подготовки документации и приемки объекта и т. д.); внутрикорпоративные аналитические отчеты, подготовленные по итогам выполнения проектов и обычно содержащие описание проблем, способов их решения и рекомендаций по недопущению повторения аналогичных ситуаций. Вся эта информация используется в работе служб контроля качества и может быть как полезным источником сведений о текущих практиках организации, так и инструментом управления улучшением бизнес-процессов.

Предположим, по итогам реализации определенного этапа проекта по строительству объекта промышленного назначения было получено экспертное заключение, в результирующей части которого были указаны замечания:

  • использование технических материалов, не соответствующих требованиям по устойчивости к воздействию неблагоприятных факторов окружающей среды с учетом географического района РФ и климатической зоны расположения объекта проектирования;
  • применение гидроизоляционных материалов марок Г-ИГ, С-РМ и кровельных материалов марок С-РК, С-РЧ, Г-ИК, не соответствующих назначению и планируемым условиям эксплуатации объекта проектирования.

Для формализации этого экспертного заключения может быть создана семантическая модель (рис. 1).

Рис. 1. Пример семантической модели для фрагмента текста

Эта модель — лишь фрагмент модели предметной области, в котором зафиксирован набор конкретных фактов. Такой набор может быть сохранен в виде графа и использоваться при проверке параметров будущих проектов или для подготовки аналитики по уже реализованным проектам.

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

В качестве базовой онтологии для работы с лексическим материалом в предлагаемом подходе была выбрана модель The Lexicon Model of Ontologies (lemon, lemon-model.net) [3, 4].

  • Модель разработана для комплексного описания лингвистических параметров языковых единиц для их последующей автоматизированной обработки.
  • Модель решает задачу обработки языковых единиц в увязке с концептуальным (понятийным) и предметным слоями информации. Таким образом, становится возможным четко различить три слоя: концептуальный, лексический и предметный, — что обеспечивает прозрачность и верифицируемость результатов, полученных при обработке данных.
  • Модель имеет модульную структуру, хорошо масштабируется и допускает дополнение семантическими компонентами, необходимыми для конкретной задачи.
  • Модель компактна и использует принцип «экономии усилий» (по аналогии с принципом экономии речевых усилий в языкознании, который заключается в том, что говорящие при использовании естественного языка стремятся сократить количество «работы», необходимой для генерации текста): невысокая сложность модели позволяет эффективнее переиспользовать обрабатываемые ею данные.

На рис. 2 представлена такая модель в обобщенном виде, достаточном для решения прикладной задачи рассматриваемой компании.

Рис. 2. Онтологическая модель на основе «The Lexicon Model of Ontologies»

Центральное место в модели занимает класс «Словарная единица», частным случаем которого является класс «Слово». «Слово» содержит информационные объекты (токены), извлеченные из текстов. Каждое слово может быть, с одной стороны, соотнесено с каким-либо понятием (концептом), с другой — с лексическим смыслом. Обработка слов в их соотнесенности с концептами позволяет создать специализированный корпоративный словарь (бизнес-глоссарий), в котором будут приведены базовые понятия, термины и их определения, специфичные для данной организации с учетом особенностей ее деятельности. Лексические смыслы — это лексические значения слов, учитывающие практику употребления слов в данной предметной области.

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

Данная модель содержит в себе еще ряд возможностей, одной из которых является работа с лексической неоднозначностью. Для этого используются объекты класса «Лексическое поле», каждый из которых представляет собой некоторую совокупность слов, объединенных в сознании носителей языка по принципу близости (смежности) в ситуации лексической репрезентации определенного смысла. С формальной точки зрения слово может входить в разные лексические поля, но лексические смыслы, которые оно при этом реализует, различаются. Соответственно, описав набор сочетаний слов, лексических смыслов, лексических полей, можно разграничить случаи употребления слов в разных контекстах и развести слова (а значит, и соответствующие им сущности предметной области онтологии) с учетом контекстуальных смыслов. Например, в следующих контекстах, имитирующих фрагменты корпоративной переписки, одно и то же слово имеет разные лексические смыслы.

Первый фрагмент. «В настоящее время наблюдается разрушение элементов кровли, а именно разрывы, растрескивания и деформация кровельных листов (полотен), что вызывает коррозию несущих элементов конструкции кровли строений, проникновение влаги и осадков внутрь. Мы полагаем, что это стало следствием нарушений. Просим подготовить мотивированное обоснование использования кровельных и изоляционных материалов указанных в документации марок».

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

Человек способен различить в этих фрагментах разные смыслы слова «лист», учитывая как лексическое значение слова, так и его лексическое окружение. Средству автоматизированной обработки текста на естественном языке, воспроизводящему деятельность человека по разбору текста, для этого необходимы определения разных лексических полей, в которые входит слово «лист».

Особым случаем при работе с лексикой в ходе автоматической обработки текстов являются имена собственные, которые не обладают семантикой, а выступают в качестве указателя/ярлыка для какой-либо сущности, поэтому для их обработки необходимо использовать отдельную методику. Эта методика должна позволять не только идентифицировать слово как имя собственное, но и отграничить его от формально совпадающих с ним имен нарицательных. Для решения этой проблемы предлагается использовать отдельную связь — предикат «Обозначает» в модели Lemon. С его помощью становится возможным связать имена собственные с теми объектами предметной области, которые они репрезентируют. При этом в предметной области должны содержаться каталоги (справочники) таких объектов. Дополнительным средством детерминации имен собственных в данной методике выступает работа со словами-определениями, относящимися к именам собственным и обычно располагающимися в тексте в непосредственной близости от них (город Новороссийск, улица Ивановская). Такие слова-определения обрабатываются как все обычные имена нарицательные, однако также учитывается фактор их пространственной близости к именам собственным в контексте. Использование такой методики работы с лексическим материалом позволяет автоматически обрабатывать контексты следующего вида: «В период с 01.02.2021 по 26.02.2021 были проведены мероприятия по устранению замечаний заказчика ООО “Альфа” по проекту “Титул 2.76.2021 Комплекс ангаров”. Замечания были устранены. 26.02.2021 было проведено совещание с представителями ООО “Альфа”. Дополнительных замечаний от ООО “Альфа” не поступало» (отчет об устранении недостатков по проекту) и «Трубопроводное оборудование станции аэрации подвержено усиленной коррозии. Просим провести консультацию для организации проектных работ по реконструкции станции с применением изоляционных и кровельных материалов. Планируемая реконструкция является сложным инженерно-техническим мероприятием, особенно в связи с тем, что станция располагается в непосредственной близости от реки Ангары» (письмо-обращение потенциального заказчика).

Лексический смысл слова ангар в контексте сооружение может быть распознан в первом фрагменте, однако лексический смысл слова Ангары во втором фрагменте, строго говоря, отсутствует. Путем соотнесения слова-определения река с классом предметной области и лексического вхождения Ангара с каталогом объектов может быть выявлена прагматика река Ангара, которая заключается в использовании данного словосочетания как имени собственного. Результатом такой обработки является ситуация, при которой пользователь получает контексты, в которых разведены имена нарицательные и имена собственные.

Для реализации предлагаемого подхода была создана программная библиотека, выполняющая обработку текста на естественном языке с опорой на онтологию предметной области и связанную с ней лексическую онтологию путем выполнения следующих шагов: поиск упоминаний сущностей онтологии в тексте; связывание найденных сущностей в соответствии с заданной структурой онтологии; выделение объектов; составление машиночитаемого представления выявленной структуры. Каждый шаг состоит из более специфических шагов, которые могут быть при необходимости заменены или модифицированы в соответствии с особенностями прикладной задачи.

Поиск упоминаний сущностей онтологии в тексте. Задача этого этапа обработки — найти в тексте возможное упоминание сущности онтологии, что можно сравнить с выделением именованных сущностей (NER, см. github.com/natasha/naeval#ner). Для ее решения применяются нейросетевые модели для выделения «стандартных» сущностей (персона, организация, адрес и прочее), модели, основанные на шаблонах (номера телефонов, номерные знаки автомобилей, дата и время, идентификаторы и прочее), а также выделение сущностей онтологии предметной области. Каждая сущность, упоминание которой нужно выделить в тексте (LexicalSense), обозначается термином (слово или словосочетание) и связана с лексическим полем (LexicalField). Упрощенно эту задачу можно описать как поиск словосочетания в тексте и наивную классификацию по условию контекста (LexicalField). Для этого используются заданные в онтологии словари терминов и контекста. Подход, использующий словари в явном виде, в отличие от моделей, обученных на размеченных данных, позволяет пройти этап разметки примеров и добиться большего контроля над работой алгоритма. При необходимости можно заменить словари, представленные в явном виде, на векторные представления и использовать обучаемые модели. Особенностью предлагаемого подхода является возможность выделять словосочетания, разбитые в тексте другими словами. Например, в онтологии имеется сущность «Кровельный лист», которая может быть упомянута в тексте как «…кровельный или аналогичный по функциональным свойствам лист строительного материала…».

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

<КровельныйМатериал> <используетсяНаОбъекте> <ПромышленныйОбъект>

<КровельныйМатериал> <имеетМаркуКровельногоМатериала> <МаркаКровельногоМатериала>

<Кровля> <являетсяЧастьюКонструкцииОбъекта> <ПромышленныйОбъект>

В тексте «При возведении кровли использован кровельный материал» сущность ПромышленныйОбъект присутствует в неявном виде (если есть Кровля , есть и ПромышленныйОбъект, частью которого она является).

В тексте «При возведении кровли использован кровельный материал. Использование данной марки не соответствует нормативам» во втором предложении неявно присутствует сущность КровельныйМатериал

Выделение объектов. На этом этапе определяется, являются ли несколько упоминаний сущности одним или разными объектами. Например, в тексте «На объекте произведена укладка кровли. При возведении кровли использованы материалы…» речь идет об одном объекте класса Кровля , а в тексте «На первом объекте использована марка материала А. На втором — Б.» — речь о двух объектах класса ПромышленныйОбъект

Составление машиночитаемого представления. На этом этапе, в соответствии с бизнес-целями, найденные в тексте сущности и предикаты представляются в виде запроса на языке SPARQL [5] или фактов (например, в формате Turtle — www.w3.org/TR/turtle).

Таким образом, инструменты из библиотеки позволяют обработать текст на естественном языке, опираясь и на онтологическую модель предметной области, и на лексическую модель, преобразуя его в набор фактов или в запрос к онтологии, уже содержащей некоторый набор фактов. Библиотека может быть применена как в составе системы управления знаниями — для преобразования текстов в наборы фактов, их логического связывания, классификации и принятия бизнес-решений на их основе, так и в составе других прикладных систем — для обработки входящей корреспонденции (писем, обращений, заявлений и др.), ответов на вопросы пользователей, формирования структурированного описания ситуации по текстам сообщений о ней.

Для демонстрации работы библиотеки написан веб-сервис, позволяющий анализировать текст и представлять результаты в удобном виде. Скриншот вывода результатов сервиса представлен на рис. 3.

Онтологии: от текста к фактам
Рис. 3. Пример преобразования текста в SPARQL-запрос


***

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

Литература

1. Артем Гришковский. Интегрированная обработка неструктурированных данных // Открытые системы. СУБД. — 2013. — № 06. — С.26-29. URL: https://www.osp.ru/os/2013/06/13036849 (дата обращения: 21.11.2020).

2. Павел Велихов. Машинное обучение для понимания естественного языка // Открытые системы. СУБД. — 2016. — № 01. — С. 18-21. URL: https://www.osp.ru/os/2016/01/13048649 (дата обращения: 21.11.2020).

3. John P. McRae et al. OntoLex-Lemon Model: development and applications. URL: http://john.mccr.ae/papers/mccrae2017ontolex.pdf (дата обращения: 21.11.2020). 

4. Ксения Балышева, Елена Карташова, Константин Кондратьев и др. OntoLex as a Model for Creating the Ontology-Based Diсtionary of Russian Grammatical Forms. URL: http://ceur-ws.org/Vol-1899/OntoLex_2017_paper_7.pdf  (дата обращения: 21.11.2020). 

5. Владислав Головков, Андрей Портнов, Виктор Чернов. RDF — инструмент для неструктурированных данных // Открытые системы. СУБД. — 2012. — № 09. — С. 46-49. URL: https://www.osp.ru/os/2012/09/13032513 (дата обращения: 21.11.2020).

Сергей Горшков (serge@trinidata.ru), Константин Кондратьев (kondratiev@trinidata.ru), Роман Шебалов (shebalov@trinidata.ru) — сотрудники, компания «ТриниДата» (Екатеринбург). Статья подготовлена на основе материалов доклада на форуме «Управление данными — 2020».