Können Sie sich vorstellen, wie viele behördliche Dokumente pro Stunde ein Unternehmensanwalt durchsehen muss und zu welchen Konsequenzen seine NachlĂ€ssigkeit fĂŒhren kann? Ein armer Mitanwalt muss jeden Vertrag lesen, insbesondere wenn es keine Standardvorlage fĂŒr ihn gibt, was hĂ€ufig vorkommt.
Mit Blick in die mĂŒden Augen unseres Unternehmensrechtsanwalts haben wir beschlossen, einen Dienst zu schaffen, der Probleme in den Dokumenten findet und sie dem dösenden Anwalt signalisiert. Als Ergebnis haben wir eine Lösung mit der Zusammenfassung von Wissen auf einer bestimmten Basis von VertrĂ€gen und Tipps fĂŒr AnwĂ€lte geschaffen, die besondere Aufmerksamkeit erhalten sollten. NatĂŒrlich nicht ohne Magie. Mathematische Magie namens Anomalieerkennung.
GrundsĂ€tzlich werden AnomalieerkennungsansĂ€tze verwendet, um das Verhalten einer Vielzahl von GerĂ€ten zu analysieren, um Fehler zu erkennen, oder im Bankensektor, um Betrug festzustellen. Und wir haben versucht, diese Algorithmen fĂŒr die Analyse von Rechtsdokumenten anzuwenden. Folgen Sie dem Schnitt, um herauszufinden, wie wir es gemacht haben.
1. Wir beschÀftigen uns mit strukturierten Informationen
Wir haben GlĂŒck, weil Die Texte in den VertrĂ€gen sind ausreichend strukturiert, trocken und nach bestimmten Vorlagen zusammengestellt. Um an dem Projekt zu arbeiten, wurde die Idee vorgeschlagen, einen Prototyp zu implementieren, der auf VertrĂ€gen und VertrĂ€gen der Website zakupki.gov.ru basiert (wir haben 200.000 Dokumente erhalten). Bei 170.000 VertrĂ€gen konnten wir die Struktur identifizieren: PrĂ€ambel, Kapitel, AbsĂ€tze und AnhĂ€nge des Vertrags unter BerĂŒcksichtigung der SchlĂŒsselwörter, der Position im Text und der Nummerierung.
2. Eine Vielzahl von Vertragsarten
Es ist zu berĂŒcksichtigen, dass VertrĂ€ge unterschiedlicher Art sein können. Alle unterscheiden sich stark in Inhalt, Vertragsgegenstand, Hauptkapiteln usw. Um die Analyse der einzelnen Vertragstypen zu optimieren, mĂŒssen Arbeiten an ihrer Klassifizierung oder Clusterbildung durchgefĂŒhrt werden.
Vielleicht wissen Sie bereits, welche Arten von VertrĂ€gen in Ihrer Datenbank vorhanden sind, und Sie kennen die Zeichen, anhand derer sie bestimmt werden können. In unserem Fall haben wir eine Reihe von VertrĂ€gen ohne zusĂ€tzliche Informationen zu jedem Vertrag und ohne Annahmen ĂŒber die Klassifizierung von BeschaffungsvertrĂ€gen. Daher waren wir gezwungen, unsere Vertragsbasis zu bĂŒndeln.
Sie können das Clustering mithilfe des DokumentprĂ€sentationsvektors tf-idf standardisieren. Wir haben uns jedoch entschlossen, den Doc2Vec-Algorithmus nur zum SpaĂ auszuprobieren. Unter Verwendung des Doc2Vec-Algorithmus wurden VertrĂ€ge in Vektoren konvertiert und die resultierenden Vertragsvektoren an die Eingabe des Clustering-Algorithmus gesendet. Wir haben den K-Means-Algorithmus verwendet, um Vektoren zu clustern. Da die Ăhnlichkeit normalerweise anhand des Kosinusabstands gemessen wird, haben wir ihn anstelle des euklidischen Abstands verwendet.
Nach Erhalt von 20 Dokumentenclustern musste die QualitĂ€t des Clusters ĂŒberprĂŒft werden. Da wir keine Klassifizierung von VertrĂ€gen haben, können wir die resultierenden Cluster nicht mit der vorhandenen Partition vergleichen. Dann haben wir uns die Wörter angesehen, die den Cluster beschreiben. Zu diesem Zweck haben wir fĂŒr jeden Cluster die Elemente "Vertragsgegenstand" verwendet und Stoppwörter, Zahlen und Wörter entfernt, die in den meisten Clustern gefunden wurden. Dann haben wir die 5 hĂ€ufigsten Wörter fĂŒr jeden Cluster als SchlĂŒsselwörter ausgewĂ€hlt. Auf diese einfache Weise kann man die QualitĂ€t der Clusterbildung subjektiv beurteilen.
Beispiele fĂŒr Wörter, die Cluster beschreiben:
- Mieter, Vermieter, Wohnung, Vermietung, BautrÀger
- Kompetenz, Lehre, Bildung, akademische, Vollzeit
- Generalunternehmer, Subunternehmer, Generalbau, Designer, Stadtplanung
- Apotheke, QuarantÀne, Ausgaben, Pflanzenschutz, luftdicht
- Detektiv, Wachmann, UnterdrĂŒckung, Angst, Beleidigung
- Lizenznehmer, Unterlizenznehmer, Film, Lizenzgeber, Staffel
- Kreditnehmer, Treuhandkonto, GlÀubiger, Darlehen, Pfandgeber
- zentralisiert, Energieversorgung, Intrazone, SanitÀr, Kanalisation
3. Auf welche Anomalien können wir bei VertrĂ€gen stoĂen?
Lassen Sie uns bestimmen, welche FÀlle wir als abnormal betrachten und was wir damit tun können. Wir haben die folgenden Szenarien identifiziert:
- Dem Vertrag wurde eine zusĂ€tzliche Klausel hinzugefĂŒgt, die in diesem Zusammenhang noch nie gesehen wurde. Es ist notwendig, die Aufmerksamkeit eines Anwalts auf ihn zu lenken.
- Der Vertrag enthĂ€lt keine Klausel, die zuvor in solchen VertrĂ€gen angetroffen wurde. Wir mĂŒssen dem Anwalt raten, es hinzuzufĂŒgen.
- Ein Absatz Ă€hnelt einem bestimmten Punkt aus der Geschichte, wird jedoch irgendwie umformuliert. Einige Wörter werden hinzugefĂŒgt oder gelöscht. Sie können den Anwalt informieren und Ihnen raten, zu bearbeiten.
4. In welcher Form sollen VertrÀge eingereicht werden?
Wie bereits erwĂ€hnt, besteht der Vertrag aus Kapiteln, Kapitel sind in AbsĂ€tze unterteilt, jeder Absatz kann UnterabsĂ€tze enthalten usw. Um den Vertrag in Kapitel und AbsĂ€tze zu unterteilen, haben wir die Nummerierung, Ăbertragungen, SchlĂŒsselwörter berĂŒcksichtigt: "Kapitel", "Artikel" usw. Jeder Gegenstand besteht aus einem oder mehreren SĂ€tzen. Um ein Element in SĂ€tze zu unterteilen, wurde sent_tokenize aus dem Modul nltk.tokenize verwendet.
Der Vertrag selbst enthĂ€lt mehrere globale Kapitel, deren Inhalt und Inhalt in den Ăberschriften enthalten ist: Vertragsgegenstand, Rechte und Pflichten der Parteien, Preis- und Abwicklungsverfahren ... Wir haben versucht, die Kapitel mit denselben Ăberschriften zu kombinieren und unabhĂ€ngig voneinander mit verschiedenen Kapiteln zu arbeiten. Die Titel der Kapitel werden hĂ€ufig umformuliert, haben Tippfehler oder zusĂ€tzliche Satzzeichen. Um die Kapitelgruppen groĂ genug zu machen, haben wir die Ăberschriften, die sich in Levenshtein-Entfernung befanden, zu einer Gruppe zusammengefasst.
Eines der Probleme, auf die wir definitiv stoĂen können, ist das groĂe Volumen an benannten EntitĂ€ten in VertrĂ€gen, die oft einzigartig sind und mit einer Anomalie verwechselt werden können. Es gibt viele EntitĂ€ten in den VertrĂ€gen, wie Namen, Firmennamen, Daten, Adressen usw., die von Vertrag zu Vertrag variieren. Es ist notwendig, solche Einheiten zu finden und aus dem Vertrag zu streichen, d.h. Bringen Sie den Vertrag auf ein Vorlagenformular. Wir hatten GlĂŒck mit dem Datensatz, weil Beim Entladen von VertrĂ€gen gab es einen groĂen Anteil von VorlagenvertrĂ€gen, die als EntitĂ€ten bezeichnet wurden und durch Unterstriche ersetzt wurden. Wir haben festgestellt, zwischen welchen Phrasen Unterstriche normalerweise vorkommen, um diese Phrasen in ausgefĂŒllten Dokumenten zu finden und benannte EntitĂ€ten aus ihnen zu entfernen. Es ist klar, dass wir auf diese Weise nicht alle benannten EntitĂ€ten gelöscht haben. Deshalb gingen wir noch einmal mit der Natasha-Bibliothek durch den Rumpf und löschten die EntitĂ€ten, die sie gefunden hatte.
5. Definition abnormaler Klauseln im Vertrag
Wir konnten die VertrĂ€ge bereits mithilfe von Clustering nach Typ trennen und Gruppen Ă€hnlicher Kapitel identifizieren. Anhand des gesammelten Wissens ĂŒber eine bestimmte Klausel eines bestimmten Vertragstyps können wir nun verstehen, was im aktuellen Vertrag behoben werden muss. Berechnen wir die Wahrscheinlichkeit seiner Anomalie fĂŒr jeden Satz des Kapitels.
FĂŒr jede Gruppe von Kapiteln speichern wir alle Angebote, die wir getroffen haben, in unseren Schulungsunterlagen aus dem staatlichen Beschaffungswesen. Weil Es gibt ziemlich viele von ihnen. FĂŒr jede Gruppe von Kapiteln wurde das Word2Vec-Modell trainiert, und jeder Satz ist einem Vektor der gewichteten (durch tf-idf) Summe der Vektoren der darin enthaltenen Wörter zugeordnet. Ferner wurden Satzvektoren Ă€hnlich der Aufteilung von Vektoren fĂŒr Dokumente in Cluster unterteilt.
Wenn nun ein Vorschlag zu uns kommt, bestimmen wir, aus welcher Gruppe von VertrĂ€gen er stammt, aus welcher Gruppe von Kapiteln, welcher Gruppe von VorschlĂ€gen er am nĂ€chsten liegt, und in diesem Cluster finden wir den nĂ€chstgelegenen. Die Entfernung zum nĂ€chsten Angebot kann als MaĂ dafĂŒr angesehen werden, wie abnormal dieses Angebot ist. Wenn der Abstand zum nĂ€chsten Angebot Null ist, ist unser Angebot nicht ungewöhnlich. Mit zunehmender Entfernung bezweifeln wir zunehmend, dass der Vorschlag keine Anomalien enthĂ€lt. Höchstwahrscheinlich stimmt etwas mit ihm nicht.
6. Was tun mit fehlenden Elementen?
Wir haben herausgefunden, wie man anomale Punkte im Vertrag findet, aber nicht gelernt, wie man Anomalien in Form fehlender SĂ€tze oder Punkte findet. Eine solche Anomalie kann leicht gefunden werden, wenn wir eine Vorlage fĂŒr diese Art von Vereinbarung zur Hand haben. Es gibt jedoch Zeiten, in denen uns ein anderes Unternehmen eine Vereinbarung gesendet hat, die nach unserer eigenen Vorlage erstellt wurde.
Um solche Anomalien zu erkennen, mĂŒssen wir eine Vorlage fĂŒr den Vertrag mit einer Reihe von verbindlichen Angeboten / Klauseln erstellen, die wiederum ausschlieĂlich auf der Grundlage unserer VertrĂ€ge basieren.
Wir haben den Algorithmus zum Erstellen der Vorlage entwickelt und getestet. Dieser Algorithmus geht davon aus, dass es in unserer Vertragsdatenbank ein Àhnliches Kapitel mit den richtigen Elementen gibt, die wir identifizieren und als Vorlage angeben möchten.
Algorithmus:

- Trainieren Sie fĂŒr jede Gruppe von Kapiteln ein Modell, das auf dem MinHashLSH-Algorithmus basiert, mit dem Sie schnell nahe Texte finden können.
- Suchen Sie fĂŒr jedes Kapitel des heruntergeladenen Vertrags eine Liste der AbsĂ€tze in der NĂ€he aus der Datenbank.
- Erstellen Sie basierend auf den erhaltenen engen AbsÀtzen ein Sprachmodell und wÀhlen Sie als Vorlagenabsatz mit der höchsten vom Sprachmodell vorhergesagten Wahrscheinlichkeit aus.
Nachdem wir fĂŒr jedes Kapitel eine Vorlage erhalten haben, können wir die fehlenden Elemente identifizieren, die in der Vorlage vorhanden sind, aber nicht im aktuellen Vertrag enthalten sind, und dem Anwalt raten, sie hinzuzufĂŒgen.
7. VollstÀndige Pipeline
Um alle Schritte zusammenzufassen und zu sammeln:
I. Sammlung, Bearbeitung und Lagerung von AuftragskorpsA. Stellen Sie den Körper der MustervertrÀge zusammen.
B. Klassifizieren / Cluster-VertrÀge nach Typ.
C. Teilen Sie den Vertrag in Kapitel, AbsÀtze und SÀtze auf.
D. Entfernen Sie benannte EntitÀten aus VertrÀgen.
E. Gruppieren Sie die Kapitel nach ihren Ăberschriften.
F. Trainieren Sie fĂŒr jede Kapitelgruppe Word2Vec.
G. Ordnen Sie jeden Satz dem Vektor der gewichteten Summe der Vektoren der darin enthaltenen Wörter zu.
H. Gruppieren Sie die empfangenen Satzvektoren und speichern Sie jeden Cluster separat, um schnell nach dem nÀchsten Vektor im nÀchsten Cluster zu suchen.
I. Trainieren Sie fĂŒr jede Kapitelgruppe MinHashLSH.
II. Suchen Sie in einem neuen Dokument nach AnomalienA. Hervorheben abnormaler Punkte
1. Definieren Sie die Art des Vertrags (Klasse oder Cluster).
2. Teilen Sie das Dokument in Kapitel, AbsÀtze und SÀtze auf
3. Suchen Sie fĂŒr jedes Kapitel die entsprechende Gruppe von Kapiteln in der Datenbank
4. Ordnen Sie jedem Satz einen Vektor zu
5. Finden Sie fĂŒr jedes Angebot des Vertrags die nĂ€chstgelegene Angebotsgruppe und darin das nĂ€chstgelegene Angebot
6. Berechnen Sie die AbstÀnde zwischen den Vorschlagsvektoren und fÀrben Sie die SÀtze basierend auf den erhaltenen AbstÀnden.
7. FÀrben Sie nur Teile von SÀtzen, wenn sie sich mit den nÀchsten in wenigen Wörtern unterscheiden.
8. Empfehlen Sie die Bearbeitung in Form des nÀchsten Satzes.
B. Suchen Sie nach fehlenden Elementen
1. Erstellen Sie fĂŒr jedes Kapitel eine Vorlage
2. Empfehlen Sie, die fehlenden Elemente aus der Vorlage hinzuzufĂŒgen
8. QualitÀtsbewertung
Um die QualitĂ€t der Problemlösungen zu beurteilen, wurde ein Testsatz von VertrĂ€gen gebildet. Anomalien wurden den VertrĂ€gen kĂŒnstlich hinzugefĂŒgt, indem ein Teil von Wörtern gelöscht, Wörter / Phrasen in SĂ€tze eingefĂŒgt, SĂ€tze aus anderen Kapiteln eingefĂŒgt und SĂ€tze gelöscht wurden. Wir haben die QualitĂ€t fĂŒr jede Art von Anomalie bewertet und die folgende Verteilung der Bestimmungsfehler erhalten:

Das heiĂt, der vorgeschlagene Algorithmus ermöglicht es uns, in 4 von 5 FĂ€llen falsche EinschlĂŒsse zu bestimmen. Es ist anzumerken, dass wir mit der Zunahme des Volumens der Ausbildungsstichprobe und der BĂŒndelung von VertrĂ€gen fĂŒr verschiedene Typen eine Verbesserung dieser Bewertung erzielen können.
9. Visualisierung
Um eine solche Lösung des Problems zu visualisieren, wurde eine WeboberflĂ€che implementiert, in die ein neuer Vertrag geladen werden kann, dessen Text auf der Seite angezeigt und abnormale Angebote hervorgehoben werden. Je dunkler die Farbe des Satzes ist, desto stĂ€rker sind wir sicher, dass er anomal ist. Weil Wir haben das nĂ€chstgelegene Angebot gefunden. Wir empfehlen, es fĂŒr den Benutzer in Form dieses nĂ€chsten Angebots zu bearbeiten, oder wir empfehlen, den spezifischen Teil des Angebots zu Ă€ndern, wenn das nĂ€chste einen geringfĂŒgigen Unterschied zum Original aufweist.

10. Wo zutreffend?
Die praktische Anwendung der daraus resultierenden Dienstleistung ist am besten geeignet, wenn eine âStreamâ -PrĂŒfung der Rechtsreinheit einer groĂen Anzahl von Dokumenten des gleichen Typs erforderlich ist: beispielsweise bei der Vergabe von Sicherheitenkrediten an die Ăffentlichkeit (Hypothek, Autokredite und Versicherungen). Im Falle einer Hypothek sind dies beispielsweise VertrĂ€ge ĂŒber den Verkauf von Immobilien, Immobilien- und KreditnehmerversicherungsvertrĂ€ge, ImmobilienbewertungsvertrĂ€ge usw. - Hunderte von Textseiten in den Dossiers jedes Mandanten, die fast sofort analysiert werden können, und abnormale Stellen werden dem Anwalt zur Analyse auf Risiken oder Betrug "hervorgehoben".
AnwÀlte aus Fleisch und Blut können also nicht ganz darauf verzichten, aber moderne Technologien ermöglichen es ihnen, das Leben leichter zu machen.
Material vorbereitet von Elena Sannikova (
helen_sunny ).