Время прочтения: 3 мин.

В последнее время всё чаще сотрудники службы внутреннего аудита анализируют с использованием инструментов Process mining процессы в деятельности компании.

В нашем случае на помощь пришли инструменты Text Mining.

В ходе анализа процесса предоставления подразделением безопасности компании видеоматериалов по запросам внутренних клиентов участники проектной группы на этапе «Оценка результатов» обратили внимание на наличие значительного количества заявок, в которых содержание в колонке «Описание» заявки одинаковое по смыслу, но статус закрытия заявок в колонке «Решение» разный: «Отказ», «Невозможно решить», «Решено полностью».

Вот тут и возникла необходимость выяснить, в чем суть отклонений, по каким причинам заявки не исполняются, насколько объективно отказано заказчику. Сразу же был отвергнут вариант перечитать каждое заключение в обоснование закрытия по всем заявкам, жизни не хватит — заявок более 100 тыс. Было принято решение использовать Text mining – произвести автоматизированную классификацию содержания решений с отказом исполнения заявок.

Разметили текст колонки «Решение» на фразы: отсутствие ТСВ; истек срок архива; отсутствовал ресурс для передачи видеоматериала; технический сбой в системе ТСВ; — отсутствие доступа по причине пандемии COVID-19.

Далее шли этапами:

Первый этап. Токенизация разделение данных на элементарные части, в нашем случае это слова.

Второй этап. Очистка данных удалены все знаки и слова, длина которых менее 2-х символов.

Машина не знает разницы или связи слов, но эту проблему способны решить модели. В состав Python библиотеки gensim входит модель Word2Vec, разработанная для получения векторного представления слов. Векторные представления основываются на контекстной близости слов, встречающиеся рядом слова будут иметь близкие векторы. Третий этап. Передачи корпуса слов на обучение Word2Vec.

w2v_model = w2v(min_count=0,window=2,
               size=300,negative=10,
               alpha=0.03,min_alpha=0.0007,
               sg=1) # Инициализируем модель Word2Vec

w2v_model.build_vocab(model_table['text_need']) # Получаем словарь

w2v_model.train(model_table['text_need'],
                 total_examples=w2v_model.corpus_count,
                epochs=30,report_delay=1) # Обучить модель

Четвертый этап. Обучение модели классификации. В данном случае мы использовали не малоизвестную библиотеку xgboost. Подготовив Data set, предварительно разметив данные на классы и переведя все текста в векторное пространство, обучили модель XGBClassifier:

model = XGBClassifier()
model.fit(np.array(endtext,dtype='float32'),np.array(good_bad,dtype='float32'))
XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
       colsample_bynode=1, colsample_bytree=1, gamma=0, gpu_id=-1,
       importance_type='gain', interaction_constraints='',
       learning_rate=0.300000012, max_delta_step=0, max_depth=6,
       min_child_weight=1, missing=nan, monotone_constraints='()',
       n_estimators=100, n_jobs=0, num_parallel_tree=1,
       objective='binary:logistic', random_state=0, reg_alpha=0,
       reg_lambda=1, scale_pos_weight=1, subsample=1, tree_method='exact',
       validate_parameters=1, verbosity=None)

Обучив модель на 500 размеченных текстов, мы проверили ее точность на новых данных и после первой итерации точность составила 90%. Для повышения точности модели провели 5 итераций и итоговый Data set составил 3500 размеченных текстов, что позволило добиться точности в 97% в распознавании содержания решений с отказом исполнения заявок на предоставление видеоматериалов.

Кластеризация позволила определить корневые причины отклонений и проблемы в реализации процесса. Например, одна из выявленных проблем: заказчики делали заявки, исполнение которых заведомо было невозможно:

в одних случаях — на момент составления заявки уже истекли нормативные сроки хранения видеоматериалов;

в других случаях — на объекте отсутствовала ТСВ и видеоматериалов быть не могло.

Шаблоны заявок в АС можно было автоматизировано связать с информацией о нормативных сроках хранения видеоматериалов, объектах, на которых установлена ТСВ. Этим исключить формирование неисполнимых заявок.

Кроме этого, были установлены обращения с подозрением на ФРОД (код закрытия не соответствует контексту описания решения; статус «Выполнено» без фактического выполнения работ; перевод общения с внутренним клиентом на другие каналы связи с целью избежать повторных обращений/возвратов).

Инструменты Text mining и Process mining позволили эффективно и оперативно обработать информацию, выделить в ней важные для анализа моменты, с их помощью определить подходы для устранения отклонений и улучшения процесса.

Как говорил У.Черчилль: «Кто владеет информацией, тот владеет миром». С данным мнением трудно не согласиться.