О нас | Наши проекты | Публикации | Контакты
Русский | English

Детектор: модуль обнаружения нежелательных сообщений (ООО ЦентраСиб)

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).

Схема разработки модуля на PHP с использованием PKBD
Рис.1 Схема разработки модуля на PHP с использованием PKBD

Далее рассмотрим этапы подробнее.

Этап 1. На этапе построения модели предметной области был выполнен ее анализ и выделены ключевые абстракции (Рис.2). На концептуальном уровне основными элементами в решаемой задаче является «СМС-сообщение» (Message), содержащее «ключевые слова» (Keyword), так называемые «маркеры» СПАМ-сообщений, и отправитель сообщений (Sender). В дальнейшем при формализации модель была упрощена с целью более полного соответствия структуре логических правил.

Для выделения комбинаций маркеров (ключевых слов) был произведен анализ базы данных из 1366490 сообщений и отобраны 829 сообщений клиентов, уличенных ранее в рассылке СПАМ-сообщений.

Концептуальная модель решаемой задачи
Рис.2 Концептуальная модель решаемой задачи

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

Основные группы нежелательных сообщений
Рис.3 Основные группы нежелательных сообщений

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

Фрагмент таблицы решений
Рис.3 Фрагмент таблицы решений

Этап 3. Построение платформо-зависимых моделей осуществлялось с использованием PKBD путем импорта разработанной таблицы решений (Рис.5) с последующим их уточнением в виде RVML (Рис.6), включая приоритет правил и значения «по умолчанию».

Фрагмент экранной формы PKBD: импорт таблицы решений
Рис.5 Фрагмент экранной формы PKBD: импорт таблицы решений

Фрагмент экранной формы PKBD: представление правила в виде RVML
Рис.6 Фрагмент экранной формы PKBD: представление правила в виде RVML

Этап 4. Посредством генератора PKBD было синтезировано 6871 строчек PHP кода, описывающих 487 правило. При этом каждое логическое правило было представлено в форме условного оператора, в условии которого анализируется вхождение определенных ключевых слов в отправляемое сообщение. Фрагмент полученного кода приведен ниже:

<?php //************** exported from PKBD **************** // version: 4.2018.0201.6 // knowledge base: // info: //****************** classes *********************** class InputData_1{ var $Keyword; function Init(){ $this->Keyword = ""; } } class OutPut_1{ var $MesStatus; var $ClientStatus; var $FiredRule; function Init(){ $this->MesStatus = ""; $this->ClientStatus = ""; $this->FiredRule = ""; } } //******** Initialization (facts) ****************** $InputData_1_ = new InputData_1; $InputData_1_->Init(); $OutPut_1_ = new OutPut_1; $OutPut_1_->Init(); //**************** rules *************************** //rule_1-2 if ( ((strpos($InputData_1_->Keyword, "1п+1п=2п") !== false)) ){ $OutPut_1_->MesStatus = "ошибка"; $OutPut_1_->ClientStatus = "1"; $OutPut_1_->FiredRule = "rule_1-2"; } …

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

В дальнейшем сгенерированный код был синтерирован в платформу «СМС-Органайзер».

Этап 5. Тестирование разработанного модуля «Детектор» осуществлялось с использованием выделенной ранее базы сообщений. В частности, после модификации база знаний модуля составила 498 правил, которые обеспечили обнаружение 653 нежелательных сообщений из тестового набора, таким образом, точность (accuracy) составила 0,83. Среднее время выполнения (быстродействие) составило 0,00026 с. В результате проверки подсистемой «Детектор» набора из 1366490 сообщений было выявлено 1145 СПАМ-сообщений и 25 клиентов (отправителей), нарушивших положения 38-ФЗ «О рекламе», но которые ранее не были обнаружены.

RSS.The Knowledge Core Новости: