Всем привет!
В предыдущей статье «Смысл текста или представление знаний в системе, основанной на действиях» я описал способ представления знаний в виде семантической сети, построенной на действиях.
Учитывая, что данный подход обещал ряд преимуществ, таких как:
упрощение описания знаний через базовые наборы действий за счет исключения необходимости предварительной классификации предметной области на классы, подклассы, экземпляры классов как это предполагают существующие онтологии (проект SemanticWeb и пр.);
легкая масштабируемость семантической сети и универсальность описания самых разных понятий (действия, свойства, объекты и пр.) для различных задач и областей;
обеспечение единого подхода, как к хранению знаний, так и запросов к ним;
было принято решение реализовать прототип описанной системы в ограниченном объеме понятий для проверки реализуемости подхода на практике и соответствия указанным выше ожиданиям.
В течение, примерно, полугода был разработан прототип на языке Python, обеспечивающий разбор примеров текстов приказов организаций и возможных вопросов к ним, а также реализован поиск и формирование ответов. Построенная модель текста сохраняется в файл в формате JSON. Визуальное представление модели, в виде сети понятий, реализовано с помощью библиотеки cytoscape.js.
В целом прототип показал реальность и практическую реализуемость указанного подхода к представлению знаний и подтвердил наличие приведенных выше преимуществ. Наряду с этим стали понятны особенности и требования, которые должны быть выполнены при решении реальных задач.
В статье предлагаю кратко рассмотреть возможности созданного прототипа, а также обсудить потенциал данного подхода для решения задач в различных предметных областях.
Краткое описание подхода
Вначале напомню ключевые тезисы, на которых базируется прототип:
Человек познает мир, получая сигналы в соответствии с выполняемыми действиями, следовательно, знания возможно представить в виде набора результатов выполнения действий. Примеры подобной передачи знаний – устная речь, текст, изобразительные искусства - кодируют действия, их результаты и параметры в различной форме.
Набор базовых действий человека ограничен. Любые действия могут быть выражены через базовые действия. Общий набор действий у всех людей делает возможным взаимопонимание несмотря на различие во внешнем обозначении действий (наличие разных языков).
Исходя из указанных тезисов - базовыми понятиями при описании знаний могут быть следующие элементы системы – описание Действия, описание Свойства (определенное действие с параметрами плюс его результат, например свойство «мяч красный» - действие «цвет» с параметром «мяч» плюс результат «красный») и описание Объекта (определяемого как группа описаний свойств).
Для реализации прототипа была выбрана предметная область, ограниченная внутренними распорядительными документами организации, а именно приказами. Приказы, в отличие от технической или художественной литературы, содержат ограниченный объем импликатур (дополнительных знаний, которыми должны обладать все участники обмена информации для корректного ее восприятия), что облегчает работу по формированию базы знаний прототипа, набора базовых действий, объектов и свойств.
Примеры построенных моделей
Итак, в процессе работы семантический анализатор использует встроенную базу понятий и их свойств, как морфологических, так и концептуальных (например, о том, что объект действия «направить» должен быть выражен существительным в винительном падеже и должен быть документом). Также анализируются и структурные свойства внешнего представления, то есть взаимное расположение понятий, расположение их в одном или разных разделах и т.д.
В результате строится семантическая сеть понятий, представляющая смысловую модель текста. Рассмотрим далее некоторые примеры построенных моделей, после чего зададим системе вопросы к имеющимся знаниям.
Итак, простейший Пример 1 - «Приказываю направить приказ Заказчику»
Поясним изображение. Описания свойств (действие с аргументами плюс результат) изображены дугами. Описания действий, описание объектов и базовые объекты в узлах сети.
В модели присутствует описание некоего конкретного действия «Направить» (прямоугольник со скругленными углами), ссылающегося на базовое действие «Направить» (бирюзовый эллипс) с параметром act_object «Приказ» и параметром act_object_komu «Заказчик».
Базовое действие определяет требуемые ему параметры (задаваемые в виде свойств act_object, act_object_komu, act_object_kuda и др.). То есть, при необходимости реально выполнить действие «Направить» (бирюзовый эллипс), ему должны быть переданы эти параметры (результаты соответствующих свойств).
«Приказ» и «Заказчик» (серые эллипсы) представляют конкретные объекты (мы помним, что объекты - это наборы свойств), у которых имеется только одно свойство «есть» указывающее на базовый объект (бирюзовые эллипсы «Приказ» и «Заказчик»).
Пример 2(простой) – «Приказываю начальнику Отдела качества направить приказ Заказчику»
Модель более сложная – в ней появляется свойство (act_actor) Актор, субъект действия – Начальник, декомпозированный на объекты «Начальник» и «Отдел», связанные свойством «начальник». Объект «Отдел» имеет два свойства «есть» и «чего».
Далее для примера покажем более сложные фразы и их представление в виде семантических моделей, основанных на действиях.
Пример 3 (сложный) «Приказываю до 20.05.2024 начальнику отдела качества направить Приказ №2339 от 10 января 2010 Заказчику»
Пример 4 (сложный, причастие) «Приказываю начальнику отдела качества направить Заказчику Приказ №2339 от 10 января 2010, утвержденный Президентом 11.01.2010»
В данном примере можно увидеть, как слово «утвержденный» представляется в виде результата действия – «утвердил» с соответствующими параметрами
Ну и пятый пример, к которому будем задавать вопросы в следующем разделе – полноценный приказ организации, разложенный через действие «Приказываю»
Смысловая схема данного документа выглядит достаточно объемно:
Вопросы и их представление
Теперь рассмотрим, каким образом возможно взаимодействие с созданной моделью документа.
Как было отмечено в начале статьи – представление знаний через действия дает определенную гибкость и это можно увидеть на этапе взаимодействия с моделью документа.
Тот же механизм семантического анализатора строит модель вопроса при необходимости добавляя в него специальный объект – указатель объекта вопроса.
Нахождение ответа заключается в поиске одной модели (модели вопроса) в другой (модель документа)
Например, вопрос «Кто должен ознакомить всех работников подчиненных структурных подразделений?» будет представлен в виде следующей сети:
После формирования представления вопроса система выполняет поиск в модели документа и возвращает, в данном случае, Акторов, связанных с описанным действием – Руководитель структурного подразделения.
Подобный подход позволяет легко задавать вопросы, направленные, по сути, на поиск свойств – например, Когда, Кто, Какой документ и так далее.
Посмотрим еще один пример вопроса: «Что надо сделать заместителю директора по информационным технологиям?». Модель вопроса в данном случае будет выглядеть вот так:
И, как результат, вывод действий, связанных с моделью – «Актуализировать информацию; Обеспечить исполнение; Обеспечить учет».
Заключение
Прототип, в целом, подтвердил работоспособность предлагаемого подхода. Продемонстрирована возможность построения взаимосвязанной сети понятий, отражающей то, что обычно подразумевают, когда говорят о смысле текста. Подход действительно позволяет представить в объективной форме заложенные в тексте понятия и их взаимосвязи.
Вместе с этим стали понятны проблемы и задачи, которые должны быть решены при развитии данного подхода для решения реальных задач:
Реализация семантического анализатора более эффективным и унифицированным образом. Так как в начале разработки прототипа были не вполне ясны требования к структуре и функциям системы, то некоторые вопросы решены не оптимальным, как это видится сейчас, способом, что усложняет внесение изменений для разбора новых оборотов речи.
Наполнение базы знания анализатора большим числом понятий. Так как, для построения корректной модели необходимо знание системой использованных в тексте слов и стоящих за ними понятий, то для получения удовлетворительного результата в реальных задачах, требуется обучение системы большому числу понятий.
Наполнение базы знания анализатора большим числом понятий. Так как, для построения корректной модели необходимо знание системой использованных в тексте слов и стоящих за ними понятий, то для получения удовлетворительного результата в реальных задачах, требуется обучение системы большому числу понятий.
Связанная с предыдущей, задача повышения устойчивости разбора при наличии неизвестных понятий, а также проработка возможных механизмов диагностики построенной модели на корректность.
Для формирования связных фраз отражающих найденные в качестве ответа объекты, включая их свойства, необходима разработка полноценного функционального модуля, генерирующего правильную фразу русского языка на базе имеющихся у объекта свойств (синтезатор ответа).
Указанные проблемы/задачи не выглядят принципиально невозможными и носят скорее количественный, а не качественный характер и при наличии определенных ресурсов могут быть решены.
Учитывая текущие наработки в теоретической и технической части представления знаний и смысла, видятся следующие дальнейшие шаги:
Доработка прототипа и размещение на сайте real-ai.ru для организации открытого тестирования.
Выбор предметной области для пилотной коммерческой реализации. Например: Документооборот - интеллектуальный поиск документов на основании смыслового содержания; Управление требованиями - выявление требований в документах (проектных, организационно-распорядительных и др.), а также мониторинг корректности закрытия требований; Наука и Образование – автоматизированная оценка содержания статей или развернутых письменных ответов; Перевод – текст понимается и переводится на уроне содержания, а не конкретных слов.
Проработка применения описанной модели знаний для систем сильного искусственного интеллекта, способных как самостоятельно приобретать знания (отражая их в виде семантических моделей, основанных на действиях), так и планировать свое поведение опираясь на эти знания.
Доведение до приемлемого уровня генерации ответов, что откроет новые возможности для создания голосовых помощников, чат-ботов и информационно-справочных систем.
Если читатели видят конкретные коммерческие задачи для данной технологии, будем рады взаимодействию для обсуждения возможности практической реализации.