Детектор: модуль обнаружения нежелательных сообщений (ООО ЦентраСиб)
Personal Knowledge Base Designer использовался при разработке веб-модуля принятия решений «Детектор» для платформы «СМС-Органайзер».
В ходе выполенния проекта была расширена функциональность PKBD в части поддержки импорта (трансформации) таблиц решений, а также генеации программных кодов на PHP. Как основной результат разработана база знаний для модуля обнаружения сообщений, нарушающих положения 38-ФЗ «О рекламе», а также отправляющих их абонентов. В качестве источника информации использовались данные об отправленных сообщений платформы «СМС-Органайзер».
Разработанный модуль тестировался на выделенной базе из 1 366 490 сообщений. В частности, после модификации база знаний модуля составила 498 правил, которые обеспечили обнаружение 653 нежелательных сообщений из тестового набора, таким образом, точность (accuracy) составила 0,83. Среднее время выполнения (быстродействие) составило 0,00026 с. В результате проверки подсистемой «Детектор» набора из 1 366 490 сообщений было выявлено 1 145 СПАМ-сообщений и 25 клиентов (отправителей), нарушивших положения 38-ФЗ «О рекламе», но которые ранее не были обнаружены. Детальное описание применения приведено в работе:
Юрин А.Ю. Применение трансформаций таблиц решений при создании интеллектуального программного модуля «Детектор» для веб-приложений // Программные продукты и системы. – 2020. – №4. – С. 573-581. DOI:10.15827/0236-235X.132.573-581
Процесс разработки прототипа баз знаний для модуля может быть представлен в виде схемы (Рис.1).
Рис.1 Схема разработки модуля на PHP с использованием PKBD
Далее рассмотрим этапы подробнее.
Этап 1. На этапе построения модели предметной области был выполнен ее анализ и выделены ключевые абстракции (Рис.2). На концептуальном уровне основными элементами в решаемой задаче является «СМС-сообщение» (Message), содержащее «ключевые слова» (Keyword), так называемые «маркеры» СПАМ-сообщений, и отправитель сообщений (Sender). В дальнейшем при формализации модель была упрощена с целью более полного соответствия структуре логических правил.
Для выделения комбинаций маркеров (ключевых слов) был произведен анализ базы данных из 1366490 сообщений и отобраны 829 сообщений клиентов, уличенных ранее в рассылке СПАМ-сообщений.
Рис.2 Концептуальная модель решаемой задачи
Выделенные сообщения сформировали обучающую выборку (тестовый набор), в которой были выделены пять основных групп (Рис. 3): пропаганда запрещенных веществ; недобросовестная реклама; мошенничество; угрозы и оскорбления; не несущие признаков нежелательных сообщений. По каждой группе определена возможная рекомендация модуля поддержки принятия решения, в частности, блокировка или нет отправки сообщения (изменения его статуса) и блокировка или нет отправителя.
Рис.3 Основные группы нежелательных сообщений
Этап 2. Выделенные концепты были использованы при построении платформо-независимых моделей, в том числе в форме таблицы решений, содержащей информацию о 487 уникальных наборах (Рис. 4). Таблица была разработана путем автоматизированного анализа базы данных сообщений, структура таблицы формируется путем перечисления свойств всех концептов, где каждое свойство - это столбец таблицы.
Рис.3 Фрагмент таблицы решений
Этап 3. Построение платформо-зависимых моделей осуществлялось с использованием PKBD путем импорта разработанной таблицы решений (Рис.5) с последующим их уточнением в виде RVML (Рис.6), включая приоритет правил и значения «по умолчанию».
Рис.5 Фрагмент экранной формы PKBD: импорт таблицы решений
Рис.6 Фрагмент экранной формы PKBD: представление правила в виде RVML
Этап 4. Посредством генератора PKBD было синтезировано 6871 строчек PHP кода, описывающих 487 правило. При этом каждое логическое правило было представлено в форме условного оператора, в условии которого анализируется вхождение определенных ключевых слов в отправляемое сообщение. Фрагмент полученного кода приведен ниже:
Приоритеты правил были учтены путем сортировки атомарных условных операторов в рамках вычислительного блока (функции), таким образом, в случае активации правила происходила остановка вывода и выход из блока, при этом возвращался результат последнего активированного правила.
В дальнейшем сгенерированный код был синтерирован в платформу «СМС-Органайзер».
Этап 5. Тестирование разработанного модуля «Детектор» осуществлялось с использованием выделенной ранее базы сообщений. В частности, после модификации база знаний модуля составила 498 правил, которые обеспечили обнаружение 653 нежелательных сообщений из тестового набора, таким образом, точность (accuracy) составила 0,83. Среднее время выполнения (быстродействие) составило 0,00026 с. В результате проверки подсистемой «Детектор» набора из 1366490 сообщений было выявлено 1145 СПАМ-сообщений и 25 клиентов (отправителей), нарушивших положения 38-ФЗ «О рекламе», но которые ранее не были обнаружены.