Как мы обучали нейросеть распознавать юридические документы
Проверка юридических документов с помощью визуальных помощников может оказаться важной задачей. Если человек способен хранить в голове одновременно в зоне его мозговых вычислений 6–8 параметров, ну может и больше, если гений… А остальные держать в блокноте. То ИИ учитывает больше параметров, те же модели LLM доступны с количеством 70 миллиардов параметров. То есть мы-то тоже ежедневно принимаем решения на основе большого количества входных параметров: купить ли сегодня эту вещь, поехать ли отдыхать на море, бросив все, доехать на такси или на автобусе. Но учитываем не все сразу, хотя что-то учитывается на подсознательном уровне. Эдакое дело вкуса, когда просто чувствуешь, что так правильнее, и в итоге не прогадал.
Правда люди еще не научились влиять на решения сети. У нейросетей особенные вкусы. Если GAN-сеть создает нам девушку, у которой 2 руки, то для каких-нибудь художников эпохи Сюрреализма это могло бы показаться гениальным. Двумя руками обнимает парня, словно вцепилась в него всей душой и влюбилась всем сердцем… К сожалению или к счастью, в задачах создания юридических документов мало необходимости творить что-либо на уровне латентного вектора в цепочке между кодировщиком и декодировщиком. Но работа с юридическими документами — тот самый скоп задач, где важно найти судебную практику, предшествующие документы и просто оформить все примерно также.
Таким образом, работа с юридическими документами — лакомый кусочек уже лет так 5, особенно на зарубежном рынке, где задача автоматизации рутинной деятельности сводится именно к тому, чтобы из исторически предшествующих документов собрать что-то стоящее, применимое к текущему документу. По семантическому окрасу и истории работы с документом можно понимать, что именно перед тобой: проигрышная трактовка, выигрышная трактовка, доводы, играющие в пользу истца или аргументы, помогающие ответчику, если дело идет о судебных исках.
Проблемы автоматизации поднимались, кстати, на Хабре и ранее:
Программа для анализа судебной и арбитражной практики
https://habr.com/ru/articles/651201/
Как систематизировать работу с входящими документами
https://habr.com/ru/companies/lanit/articles/781990/
Во второй работе поднимаются вопросы по автоматизации классификации входящих обращений и документов. То есть актуально не только составить юридический документ и сделать это грамотно, но и еще «распознать» его суть и если не понять, какому конкретно юристу отправить это в юридический отдел или какому руководителю компании… То хотя бы понять в целом, что документ представляет собой реальную угрозу для компании, составлен корректно и с учетом закрепившейся судебной практики.
Мы нашли интересный кейс на хакатоне Цифровой Прорыв и решили подойти к вопросу проверки юридических документов на примере именно Нормативно-правовых актов, так как это предложил кейсодержатель.
Практическая значимость результатов состоит в создании Российского решения по дополнительной визуализации текстовых данных. Продукт, ориентированный на автоматизированное создание стильно оформленных визуально должностных инструкций, может быть использован для генерации аналогичных документов: описаний работы программ и приложений, отчетов, инструкций по созданию чего-либо, цифровых двойников каких-либо физических объектов, например, квартир, выставленных на продажу, и так далее. Частная задача в продукте — качественная проверка на грамотность (в том числе и юридическую) текстовых документов.
Решаемая задача — разработка веб-сервиса, позволяющего в автоматическом режиме проверять нормативно-правовые акты при помощи выявления соответствия определенных текстовых абзацев классам, полученным за счет машинного обучения. Выбор подходящего алгоритма нужен для того, чтобы с высокой точностью (более 60%, желательно более 90%) определять корректность составления текста в документе.
Существуют такие методы, как мешок слов, TF-IDF, Word2Vec (Skip-Gram, CBOW), GloVe [1].
В инструментарии NLP характерны такие методы, как формирование n-грамм, векторизация, создание словаря [9]. Словарь можно использовать на базе уже существующих решений, а можно формировать исключительно под предоставленные входные данные.
Исходные данные
Постановления правительства Российской Федерации, такие как, например, от 18 февраля 2022 г. N 208, от 19 февраля 2022 г. N 221, от 24 марта 2022 г. N 453, всего это — 165 таких НПА. Классы указаны в [2], их 39 штук. В документы заранее внесены метки, по которым разбит текст на абзацы. Каждый абзац соответствует определенному классу. Примеры этих классов ниже.
Понятия, используемые для целей правового акта (при необходимости).
Цель предоставления субсидии.
Наименование органа государственной власти (государственного органа).
Решение
Разработка модели проведена на языке Python. При первоначальном анализе классов [13] выявлено, что они не сбалансированы. Проведена токенизация с использованием библиотеки nltk. Использованы полносвязные слои. Проба сверхточных показала, что они не подходят.
Использована самоличная модель нейросети, при этом делалось и на готовом решении на базе Spacy, которое также дало менее привлекательный результат. Таким образом, в системе задействован трансформер RoBERTa, для векторизации больше всего подошел метод TF-IDF.
Если документ составлен в схожей стилистике с актами, на которых происходило обучение, проценты по каждому классу будут на уровне 100% (близки к этому показателю). Если документ совсем отличается от типового, то будут выданы низкие показатели по классам и сравнительно небольшой суммарный показатель.
Точность работы решения на незнакомых документах колебалась в пределах от 60% до 90%, но это хороший результат с учетом количества входного датасета. Таким образом можно говорить о том, что подход адекватный. Вариант реализации на BERT и решение на Spacy дало нам менее адекватные результаты.
На пальцах все получается очень красиво. У нас есть документы, которые разбиваются на разделы определенной длины и затем векторизуются. В исходных документах для обучения нейросети заложены определенные формулировки и правила построения предложений. Если в новом, незнакомом документе, они отличаются, будет несоответствие по тому или иному классу.