DISKUZE
https://doi.org/10.5817/RPT2020-1-1
AUTOMATICKÁ KLASIFIKACE VÝZNAMOVÝCH
CELKŮ V JUDIKATUŘE
1
2
3
MARTIN ELIÁŠEK, JAKUB KÓL, MILOŠ ŠVAŇA
ABSTRAKT
Příspěvek popisuje experiment se strojovým učením, kdy na minimálním
datasetu bylo pomocí kombinace známých algoritmů strojového učení dosaženo
relativně vysoké úspěšnosti klasifikace významových celků. Významovými celky
se zde rozumí např. hlavička, procesní historie a argumentace stran.
KLÍČOVÁ SLOVA
judikatura, strojové učení, počítačové zpracování přirozeného jazyka
ABSTRACT
This paper describes a machine learning experiment that showed relatively highfidelity classification of denotation segments on a minimal dataset using
a combination of known machine learning algorithms. By denotation segments
we mean segments such as header, proceeding history and party argumentation.
1
Martin Eliášek vystudoval Právnickou fakultu Masarykovy univerzity a ve společnosti
ATLAS Consulting spol. s r.o. působí na pozici právník-analytik, tj. podílí se na přípravě,
kontrole a čištění dat v systému, e-mail: eliasek@atlasgroup.cz.
2
Jakub Kól vystudoval aplikovanou informatiku na Univerzitě ve Hradci Králové
a u společnosti ATLAS Consulting spol. s r.o. působí jako expert na strojové učení. Vedle
počítačového zpracování přirozeného jazyka (natural language processing) se zabývá také
počítačovým zpracováním obrazu (computer vision), e-mail: kol@atlasgroup.cz.
3
Miloš Švana je softwarový inženýr s tituly z Technické univerzity v Ostravě a Vysokého
učení technického v Brně, pro společnost ATLAS Consulting spol. s r.o. pracoval jako
externista, e-mail: milos.svana@gmail.com.
3
21/2020
Revue pro právo a technologie
ROČ. 11
KEYWORDS
case law, machine learning, natural language processing
1. ÚVOD
Právní profese se již mnoho let nedá vykonávat bez právních informačních
systémů. Ačkoliv původně sloužily pouze k zobrazení aktuálního znění
zákona, postupem času se jejich funkce rozšiřovaly a dnes je již nezbytnou
součástí každého většího právního informačního systému také databáze
judikatury.
Judikatura představuje ohromné množství dat, z velké části v podobě
nestrukturovaného textu. Právní informační systém musí umět tento text
uživateli nejen zobrazit, ale i v něm vyhledávat. Kromě fulltextového
vyhledávání jde také o vyhledávání souvislostí, a to jak mezi právními
předpisy a judikaturou, tak mezi judikáty navzájem.
Základním typem souvislosti mezi judikáty jsou citace. Na kvantitativní
úrovni (např. počet citujících/citovaných judikátů) je lze pomocí
moderních výpočetních prostředků relativně snadno analyzovat. Větší
výzvu však představuje úroveň kvalitativní.
Jedním z potenciálních směrů kvalitativní analýzy je rozlišování citací
podle jejich výskytu v různých částech soudních rozhodnutí. Díky tomu je
pak možné rozlišovat jejich relativní hodnotu. Pokud je například judikát
citován v popisu předchozího řízení, nemá takový význam, jako když na něj
odkazuje ve své argumentaci strana sporu. Největší význam pak má
pochopitelně judikatura citovaná v argumentaci samotného soudu.
Pro realizaci zmíněného typu analýzy je nutná segmentace soudních
rozhodnutí na menší významové celky. Vzhledem k rozsáhlosti judikatury
by manuální zpracování lidským expertem bylo časově náročné
a neefektivní. V tomto příspěvku proto navrhujeme model pro automatické
rozlišování významových částí soudních rozhodnutí založený na metodách
strojového učení a zpracování přirozeného jazyka.
V následující části článku poskytneme přehled základních teoretických
poznatků potřebných pro pochopení prezentovaných metod. V třetí části
4
M. Eliášek, J. Kól, M. Švaňa: Automatická klasifikace významových celků v judikatuře
DISKUZE
popíšeme vstupní data použitá pro trénování a verifikaci navrženého
modelu. Samotnému modelu se pak věnuje část čtvrtá. V části páté
analyzujeme výsledky testování a kvalitu modelu. V závěru pak načrtneme
potenciální využití námi navrženého modelu v praxi a další směry vývoje.
2. PŘEHLED TEORETICKÝCH POZNATKŮ A PŘEDCHOZÍHO
VÝZKUMU
2.1 STROJOVÉ UČENÍ A KLASIFIKACE
Strojové učení je v současnosti jednou z nejperspektivnějších oblastí studia
umělé inteligence. Jeho základní myšlenka spočívá ve snaze nahradit při
tvorbě algoritmů pro zpracování dat programátora automatickým učením.
Strojové učení se ve značné míře aplikuje například při vyhledávání
obrázků nebo strojovém překladu.
V úvodu zmíněný problém automatické segmentace soudních
rozhodnutí představuje typický úkol řešený pomocí strojového učení.
Klasifikaci lze definovat jako zařazení určité entity do některé z konečného
počtu předem definovaných tříd nebo kategorií. Aby bylo možné entity
klasifikovat pomocí počítačových programů, musí být popsané pomocí
číselných hodnot jejích atributů.
Příklad 1: Příkladem klasifikace, kterým začíná mnoho učebnic věnovaných
strojovému učení, je zařazení konkrétního květu kosatce do jednoho ze tří
poddruhů této rostliny – iris setosa, iris versicolor a iris virginica. Tyto poddruhy
reprezentují třídy nebo kategorie. Jako číselné atributy pro popis každého květu
použijeme délku kališního lístku, šířku kališního lístku, délku okvětního lístku
a šířku okvětního lístku. Všechny hodnoty budou uvedeny v centimetrech.
Konkrétní květ pak můžeme reprezentovat posloupností naměřených číselných
hodnot zmíněných atributů, např: (5.1 3.5 1.4 0.2). V terminologii matematiky
se tato posloupnost nazývá vektor. Jelikož se tento vektor skládá ze 4 čísel,
můžeme ho označit jako čtyřdimenzionální.
Aby se počítač mohl naučit, jak automaticky klasifikovat určitou
skupinu objektů, musíme mu poskytnout tzv. trénovací množinu. Tato
5
21/2020
Revue pro právo a technologie
ROČ. 11
množina se skládá z entit, resp. jejich opisu pomocí daných číselných
atributů - tj. vektorů, pro které již známe zařazení do konkrétní třídy.
Příklad 2: Trénovací množina pro klasifikaci květů z příkladu 1 může
mít podobu tabulky s pěti sloupci: délka kališního lístku, šířka kališního
lístku, délka okvětního lístku, šířka okvětního lístku a ručně (odborníkem)
identifikovaný poddruh. Řádky této tabulky pak budou reprezentovat
konkrétní květy – naměřenou hodnotu všech atributů a třídu, do které
skutečně patří.
Počítačové algoritmy strojového učení se z trénovací množiny dokáží
„naučit“ jak klasifikovat entity stejného typu, které předtím „neviděly“
(nejsou součástí trénovací množiny). Jedním z úkolů vědců v oblastí
strojového učení je navrhování těchto algoritmů. Za roky výzkumu jich
přitom bylo vytvořeno hned několik. Podrobný popis všech existujících
možností je nad rámec tohoto článku. Zaměříme se proto jen na algoritmus
Support Vector Machine, který je součástí navrhovaného přístupu pro
automatickou klasifikaci soudních rozhodnutí. V případě zájmu
o seznámení se s dalšími často používanými alternativami se čtenář může
4
5
obrátit např. na Hana, Kambera a Peie nebo Raschku .
2.2 ALGORITMUS SUPPORT VECTOR MACHINE
Support Vector Machine, zkráceně SVM je jedním z algoritmů používaných
pro automatické trénování klasifikátorů pomocí dat z trénovací množiny.
V jeho základní podobě se jedná o tzv. lineární klasifikátor, tj. hledá hranici
mezi třídami v podobě přímky a je omezený na rozlišování mezi dvěma
třídami.
Kdybychom pro popis entit v trénovací množině použili pouze 2 číselné
atributy, pak je možné každou entitu zobrazit jako bod na grafu. Úkolem
algoritmu SVM je najít přímku, která co nejlépe od sebe odděluje 2 třídy
trénovací množiny. Za nejlepší je přitom považovaná přímka
4
HAN, Jiawei, Micheline KAMBER a Jian PEI. Data Mining: Concepts and Techniques. Third
Edition. Waltham: Elsevier, 2011. ISBN 978-0-12-381479-1.
5
RASCHKA, Sebastian. Python Machine Learning. Birmingham: Packt, 2015. ISBN 978-178355-513-0.
6
M. Eliášek, J. Kól, M. Švaňa: Automatická klasifikace významových celků v judikatuře
DISKUZE
maximalizující velikost prázdného prostoru neobsahujícího žádné body na
jejích obou stranách.
Obrázek 1: Ilustrace principu Support Vector Machine.
Výše popsaný princip je ilustrovaný na obrázku 1. Osy grafu
reprezentují určité číselné atributy. Lze si zde například představit, že
vodorovná osa značí rychlost větru v km/h a osa svislá teplotu v °C.
Jednotlivé body reprezentují vektory reálně naměřených hodnot
z trénovací množiny, přičemž body zabarvené červeně jsou naměřené
v zimě a body zabarvené modře na podzim. Klasifikátor má tedy
rozpoznávat mezi těmito dvěma ročními obdobími. Nepřerušovaně je
vyznačená přímka, kterou algoritmus SVM identifikoval jako nejlepší.
Přerušovaně je pak ohraničen prázdný prostor na obou stranách přímky.
Body ležící přesně na těchto hranicích se nazývají podpůrné vektory (angl.
support vectors).
7
21/2020
Revue pro právo a technologie
ROČ. 11
Po tom, co SVM nalezne přímku oddělující obě třídy, je už klasifikace
období podle naměřené teploty a rychlosti větru poměrně jednoduchá.
Graficky by stačilo nové měření zobrazit jako bod na grafu a určit, jestli se
nachází nad nebo pod dělící přímkou.
Při praktické aplikaci SVM lze narazit hned na několik značných
komplikací. Jednou z nich je fakt, že existuje mnoho klasifikačních úloh,
kdy potřebujeme rozlišit mezi více než dvěma třídami. Tato situace se
běžně řeší tím, že se natrénuje několik samostatných SVM klasifikátorů,
které pak mezi sebou „hlasují“, do které třídy bude nová neznámá entita
zařazená.
Druhým problémem je, že situace, kdy lze body tříd od sebe oddělit
dokonale jako na obrázku 1, jsou v praxi pouze ojedinělé. Proto se při
reálném tréningu připouští možnost, že několik bodů dané třídy se může
nacházet na opačné straně přímky.
SVM dokáže obecně pracovat s více než dvěma číselnými atributy
opisujících klasifikované entity (tedy s více než dvoudimenzionálními
vektory). Tuto situaci už nelze jednoduše vizualizovat, ale matematické
vzorce pracující s dvěma dimenzemi fungují i pro stovky dimenzí.
2.3 KLASIFIKACE TEXTOVÝCH DAT
Jak bylo zmíněno výše, klasifikační algoritmy očekávají, že všechny objekty
budou reprezentovány jako vektory, tedy posloupnosti číselných hodnot.
Jedním z nejtěžších úkolů v rámci klasifikace textových dat je tedy nalezení
vhodné číselné reprezentace textu. Mnoho autorů a vědců se specializuje
pouze na řešení tohoto problému. Nejpoužívanější přístupy shrnuje např.
6
Aggarwal a Zhai .
Relativně intuitivní způsob číselné reprezentace textu je pomocí rodiny
metod známých jako Bag of Words. Textový dokument, odstavec nebo věta
je reprezentovaná posloupností čísel, kde každá pozice zastupuje určené
slovo. V nejjednodušším případě pak konkrétní pozice může mít hodnotu 1,
pokud se dané slovo v dokumentu nachází, nebo 0, pokud tomu tak není.
6
8
AGGARWAL, Charu C. a ChengXiang ZHAI. Mining text data. New York: Springer, 2012.
ISBN 978-1-4614-3222-7.
M. Eliášek, J. Kól, M. Švaňa: Automatická klasifikace významových celků v judikatuře
DISKUZE
Alternativně můžeme místo hodnot 0 a 1 použít přesný počet výskytů
daného slova v dokumentu.
Příklad 3: Pomocí Bag of Words chceme vytvořit číselnou reprezentaci
následujících vět: „Dnes svítí slunce.“ a „Dnes neprší ani nefouká“. Prvním
krokem je vytvoření seznamu všech unikátních slov. V tomto případě se
jedná o slova „dnes“, „svítí“, „slunce“, „neprší“, „ani“, „nefouká“. Následně
stačí zjistit, zda se dané slovo v konkrétní větě nachází, a správně na danou
pozici v číselném vektoru zadat hodnotu 0 nebo 1, jak ilustruje tabulka 1.
dnes
svítí
slunce
neprší
ani
nefouká
Věta 1
1
1
1
0
0
0
Věta 2
1
0
0
1
1
1
Tabulka 1: Ukázka reprezentace textu pomocí Bag of Words
První větu je tedy možné reprezentovat vektorem čísel (1 1 1 0 0 0),
větu druhou pak vektorem (1 0 0 1 1 1).
S metodami Bag of Words jsou spojené dvě zásadní nevýhody: (a) Běžně
se od klasifikačních algoritmů očekává zpracování i tisíců dokumentů. Tyto
dokumenty obsahují velké množství unikátních slov, což vede k tomu, že
vektory reprezentující text mají řádově i desetitisíce dimenzí. Většina
hodnot v těchto vektorech je přitom 0 (jedná se o tz v. řídké vektory).
Zpracování takového množství dat je výpočtově náročné. (b) Reprezentace
pomocí Bag of Words ignoruje jak pořadí slov v dokumentu, tak i jejich
sémantiku (význam). Tyto prvky mohou být pro přesnou automatickou
klasifikaci nápomocné, často dokonce nezbytné.
2.4 EMBEDDINGS
Kvůli výše zmíněným nevýhodám je dnes Bag of Words přístup postupně
nahrazovaný tzv. embeddings. Podobně jako v případě Bag of Words
i embeddings reprezentují text ve formě vektorů. Na rozdíl od Bag of Words
jsou ale tyto vektory o mnoho menší – k popsání textu je zpravidla
9
21/2020
Revue pro právo a technologie
ROČ. 11
potřebných jen několik set čísel. Tyto vektory jsou husté – většina, ne-li
všechny hodnoty v nich jsou nenulové.
Embeddings se dají použít pro reprezentaci libovolných textových
dokumentů, ale jejich primárním cílem je reprezentace jednotlivých slov.
Zde se projevuje jejich největší výhoda, a sice schopnost do určité míry
zachytit sémantiku (význam). Slova s podobným významem jsou
reprezentována vektory, ve kterých se jednotlivé číselné hodnoty od sebe
liší jen málo. Se slovy reprezentovanými pomocí embeddings je navíc možné
manipulovat pomocí základních operací jako sčítání a odečítání.
Příklad 4: Pokud od reprezentace slova „král“ pomocí embeddings
odečteme reprezentaci slova „muž“ a přičteme slovo „žena“, měl by
výsledný vektor být velice podobný reprezentaci slova „královna“. Sčítaní
a odčítaní vektorů přitom spočívá ve sčítaní a odčítaní hodnot na
jednotlivých pozicích. Po sečtení třídimenzionálních vektorů (5 1 8) a (2 4
1) tedy získáme vektor (7 5 9).
Jednou z nevýhod embeddings je, že je problematické interpretovat, co
jednotlivé číselné hodnoty ve vektorech znamenají. Vytvoření embedding
reprezentace slova se nedá realizovat pomocí předem daného postupu, jak
je tomu u Bag of Words. Tento problém se proto sám o sobě řeší pomocí
metod strojového učení.
7
Jedním z nejpoužívanějších přístupů ke tvorbě embeddings je Word2Vec.
Je založený na myšlence, že slova s podobným významem se vyskytují
v podobném kontextu, tj. v jejich okolí v textu se opakují podobná slova.
Pro nalezení embeddings je nutné disponovat rozsáhlou množinou
textových dokumentů. V praxi se například využívá archiv Wikipedie.
Pomocí metod strojového učení se pak trénuje matematický model,
schopný predikovat slovo podle slov nacházejících se v jeho okolí.
Alternativně je možné použít i opačný přístup, tedy predikci několika
okolních slov pro dané vstupní slovo. Embeddings jsou pak vedlejším
produktem řešení tohoto problému. Typicky se používají Word2Vec
7
10
MIKOLOV, Tomáš, Kai CHEN, Greg CORRADO a Jefrey DEAN. Efficient Estimation of Word
Representations in Vector Space. CoRR, 2013. Dostupné z: https://arxiv.org/abs/1301.3781
M. Eliášek, J. Kól, M. Švaňa: Automatická klasifikace významových celků v judikatuře
DISKUZE
embeddings s 300 dimenzemi – slovo je tedy reprezentováno jako
posloupnost 300 čísel.
Word2Vec byl později původními autory použit jako základ metody
8
Doc2Vec , která, jak název napovídá, vytváří embeddings pro libovolné
textové dokumenty (věty, odstavce, celé texty). Je založená na jednoduché
agregaci Word2Vec embeddings jednotlivých slov v dokumentu, tj. počítaní
sumy nebo průměrné hodnoty. Zachovává se přitom dimensionalita: pokud
Word2Vec embeddings pro reprezentaci jednotlivých slov v dokumentu měli
300 dimenzí, pak i Doc2Vec embedding reprezentující dokument jako celek
bude mít 300 dimenzí.
2.5 SEGMENTACE SOUDNÍCH ROZHODNUTÍ V ČEŠTINĚ
Samotnému problému segmentace soudních rozhodnutí v českém jazyce
9
na menší významové celky se věnuje Harašta , jehož přístup je založený na
predikci pomocí conditional random fields. Pro trénování a verifikaci přitom
využívá rozhodnutí pouze nejvyšších soudních instancí.
3. DATASET
Dokumenty pro trénování a verifikaci modelu byly vybrány z databáze
právního informačního systému Codexis. Z nejnovějších 15 tisíc soudních
rozhodnutí bylo náhodně zvoleno 260 tak, aby vzorek věrohodně
reprezentoval obsah databáze. Tabulka 2 zobrazuje počty ve výběru podle
typu soudní instance.
Typ instance
Počet rozhodnutí
Podíl na datasetu
Nejvyšší soud
89
34.23 %
8
MIKOLOV, Tomáš a Quoc V. LE. Distributed Representations of Sentences and Documents.
CoRR, 2014. Dostupné z: https://arxiv.org/abs/1405.4053
9
HARAŠTA, Jakub, Jaromír ŠAVELKA, František KASL a Jakub MÍŠEK. Automatic
Segmentation of Czech Court Decisions into Multi-Paragraph Parts. Jusletter IT. Weblaw
AG, 2019, roč. 4, 23. Mai 2019, s. 1-10. ISSN 1664-848X. Dostupné z:
https://www.muni.cz/en/research/publications/1534440
11
21/2020
Revue pro právo a technologie
ROČ. 11
Ústavní soud
51
19.62 %
Krajské soudy
50
19.23 %
Nejvyšší správní soud
43
16.54 %
Vrchní soudy
14
5.38 %
Městský soud v Praze
10
3.85 %
Okresní a obvodní
2
0.77 %
1
0.38 %
soudy
Zvláštní senát NS
a NSS
Tabulka č. 2: Dokumenty v trénovací/verifikační množině podle typu soudní
instance
Soudní rozhodnutí byla následně ručně anotovaná pomocí nástroje
10
Dataturks. Anotace proběhla dvoufázově, kdy určité části dokumentů byly
označovány jako Ostatní a po anotaci celého korpusu anotátor tyto
segmenty analyzoval podrobněji a zařadil je do nejbližší podobné třídy
nebo ponechal odstavec bez anotace. Neoznačené tak zůstaly např.
informace o tom, že veškerou citovanou judikaturu lze nalézt na určitém
URL.
3.1 TŘÍDY
Každý anotovaný odstavec je přiřazený do jedné z následujících
významových tříd:
1. Hlavička - Identifikace soudu, stran a zpravidla i napadeného
rozhodnutí
2. Výrok - Rozhodnutí soudu
10
12
Dostupný na: https://dataturks.com/
M. Eliášek, J. Kól, M. Švaňa: Automatická klasifikace významových celků v judikatuře
DISKUZE
3. Věcná historie - Skutková zjištění
4. Procesní historie - Popis předcházejícího řízení, včetně
argumentace stran a soudů uplatněných v těchto řízeních; zahrnuje
i předchozí správní řízení
5. Argumentace stran - Argumenty, námitky a návrhy stran (vč.
konstatování, že se někdo nevyjádřil nebo že nemá námitky)
6. Argumentace soudu - Prakticky zbytková kategorie, zahrnuje mj.
i citace aplikovatelných zákonných ustanovení, popis procesního
postupu rozhodujícího soudu nebo obiter dictum
7. Závěr - Závěrečné shrnutí argumentace soudu (např. “Z těchto
důvodů soud … zamítl/odmítl/zrušil.”) obsahuje také instrukce pro
soud nižší instance, pokud se věc vrací
8. Náklady - Odůvodnění rozhodnutí o nákladech řízení, jakož
i informace, že o nákladech řízení nebude rozhodnuto nebo že
nebudou odůvodněny
9. Poučení - Formální poučení soudu, nadepsáno slovem Poučení
Uvedená taxonomie byla založená na metodice Harašty
11
avšak
s několika podstatnými rozdíly. Z původní třídy Hlavička se vyčlenila třída
Výrok, neboť toto rozdělení považujeme za praktické pro další zpracování
soudních rozhodnutí (např. detekce opravných prostředků nebo
formátování textu). Byla zavedena třída Věcná historie, neboť součástí
datasetu jsou i prvoinstanční rozhodnutí. Třída Patička byla rozdělena na
t ř í d y Náklady a Poučení. Dále byla zavedena třída Závěr, kterou lze
považovat za poměrně experimentální, protože segmenty do ní patřící byly
v první fázi anotace označeny jako Ostatní. Dataset neobsahuje žádné
poznámky pod čarou ani disenty.
Z časových důvodů byly položky třídy Argumentace soudu anotované
zpravidla jako úsek od počátku soudní argumentace až po její závěr.
V argumentaci soudu se někdy opakují skutková zjištění, rekapituluje se
11
HARAŠTA, Jakub, Jaromír ŠAVELKA, František KASL a Jakub MÍŠEK. Automatic
Segmentation of Czech Court Decisions into Multi-Paragraph Parts. Jusletter IT. Weblaw
AG, 2019, roč. 4, 23. Mai 2019, s. 1-10. ISSN 1664-848X. Dostupné z:
https://www.muni.cz/en/research/publications/1534440
13
21/2020
Revue pro právo a technologie
ROČ. 11
procesní historie a argumentace stran, ale pro potřeby klasifikace
judikatorních odkazů je toto rozlišení bezpředmětné, jelikož ke všem
judikátům citovaným v této pasáži se soud nějakým způsobem vyjadřuje.
Takto prováděná anotace judikátu byla mnohem rychlejší, než kdyby
anotátor pročítal a anotoval každý odstavec soudní argumentace zvlášť.
Zvolený postup však mohl mít negativní dopad na kvalitu natrénovaného
modelu.
Celkem bylo anotováno 2684 odstavců. Podíl jednotlivých tříd je možné
vidět na obrázku č. 2. Nejvíce jsou zastoupeny třídy Procesní historie
a Argumentace soudu, nejméně naopak třídy Věcná historie a Náklady.
Obr. č. 2: Podíl jednotlivých významových tříd na celkovém počtu anotovaných
odstavců.
4. MODEL PRO AUTOMATICKOU SEGMENTACI SOUDNÍCH
ROZHODNUTÍ
Řešený problém automatické segmentace soudních rozhodnutí chápeme
jako klasifikační úlohu, tedy zařazení jednotlivých odstavců jedné z předem
stanovených tříd. Většina algoritmů pro automatickou klasifikaci dokáže
14
M. Eliášek, J. Kól, M. Švaňa: Automatická klasifikace významových celků v judikatuře
DISKUZE
pracovat pouze s číselnými daty (viz teoretická část). Navržené řešení je
proto nutné rozdělit do dvou po sobě následujících kroků: (1) převod
odstavců do číselné reprezentace a (2) natrénovaní modelu pro
automatickou klasifikaci.
K vytvoření numerické reprezentace textu je použitá metoda Doc2Vec,
která je detailněji popsána v sekci 2.4. K natrénování byl přitom použitý
korpus 364 199 soudních dokumentů z databáze Codexis obsahujících
celkem 8 932 074 odstavců, přičemž dimensionalita výsledných vektorů
byla nastavena na standardní hodnotu 300.
D o c 2 V e c v e k t o r y j s o u d á l e r o z š í ř e n y o informaci o pozici
klasifikovaného odstavce v soudním rozhodnutí složené z:
1. relativní pozice prvního znaku odstavce v dokumentu (kolik
procent dokumentu se nachází před odstavcem),
2. relativní pozice posledního znaku odstavce v dokumentu (kolik
procent dokumentu se nachází za odstavcem),
3. relativní délky odstavce (kolik procent dokumentu je tvořeno
daným odstavcem).
Každý odstavec je tedy reprezentován jako 303dimenzionální vektor.
Mimochodem, na základě vypočtených ANOVA F-hodnot lze konstatovat,
že atributy pozice jsou pro rozlišení jednotlivých tříd odstavců
nejdůležitější. Není to překvapivé, jelikož některé části rozhodnutí jsou
typicky na začátku či konci odůvodnění, a existuje určitá neformálně
ustálená struktura soudních rozhodnutí, kdy nejdříve se popíše procesní
historie a až poté se uvádí argumenty stran, a nakonec argumenty
samotného soudu.
Číselné reprezentace odstavců jsou následně použity jako vstup pro
druhou fázi, tedy trénování modelu pro automatickou klasifikaci. Pro tuto
část byl zvolen algoritmus SVM, detailně popsaný v sekci 2.2.
5. METODOLOGIE TESTOVÁNÍ NAVRŽENÉHO MODELU
Celý průběh experimentu lze rozdělit do následujících kroků:
1. Vytvoření trénovacího datasetu (viz část třetí)
15
21/2020
Revue pro právo a technologie
ROČ. 11
2. Natrénování modelu pro převod textu do číselné reprezentace
metodou Doc2Vec
3. Převod anotovaných odstavců z kroku 1 do číselné reprezentace
pomocí modelu z kroku 2
4. Natrénování SVM klasifikátoru
5. Testování klasifikátoru na neznámých datech
Je nutno zdůraznit, že Doc2Vec model byl natrénován pomocí rozsáhlé
databáze programu Codexis, přičemž nebyla vyžadována žádná ruční
anotace. Až trénování SVM klasifikátoru využilo anotaci dokumentů
k sestavení trénovací množiny.
5.1 POUŽITÝ HARDWARE
Celý experiment byl realizovaný na serveru vybaveném procesorem AMD
Ryzen 7 2700X, 64 GB DDR4 RAM, 250 GB NVMe SSD úložištěm a dvěma
grafickými kartami Nvidia RTX 2080Ti. Na serveru byl nainstalovaný
operační systém Ubuntu 18.04.
5.2 POUŽITÝ SOFTWARE
Implementace navrženého modelu je realizována pomocí standardních
knihoven pro strojové učení v programovacím jazyce Python. Pro
implementaci Doc2Vec modelu byla použita knihovna gensim a pro
12
samotnou klasifikaci a verifikaci knihovna scikit-learn . Experimenty byly
spuštěné v prostředí Jupyter umožňující interaktivní práci se zdrojovým
kódem v jazyce Python, R nebo Julia, snadnou replikaci a sdílení
experimentů.
6. VÝSLEDKY EXPERIMENTŮ
Výše popsaný model byl vyhodnocen pomocí metody 7-fold cross-validation.
Při použití této metody je trénovací dataset rozdělený na 7 částí, přičemž 6
z nich je použito pro trénování klasifikátoru a 1 slouží pro vyhodnocení
13
jeho kvality. Trénování a vyhodnocení se přitom opakuje sedumkrát ,
přičemž pro vyhodnocení kvality je vždy použitá jiná část datasetu.
12
16
Dostupná na https://scikit-learn.org/stable/
M. Eliášek, J. Kól, M. Švaňa: Automatická klasifikace významových celků v judikatuře
DISKUZE
V rámci vyhodnocení byly sledované následující parametry:
1. precision – kolik (podíl) ze vzorků algoritmem zařazených do dané
třídy do ní skutečně patří
2. recall – kolik (podíl) ze vzorků skutečně patřících do dané třídy
bylo algoritmem do této třídy zařazeno
3. f1-score – interpretovatelné jako vážený průměr precision a recall.
Výsledky modelu jsou porovnány s výsledky Zero Rule klasifikátoru,
který každý vzorek jednoduše zařadí do nejpočetnější třídy v trénovacím
datasetu, a s výsledky stratifikovaného náhodného třídění, které každému
vzorku přidělí náhodnou třídu, přičemž je respektována distribuce tříd
v trénovacím datasetu.
Zero Rule
Stratif. náhodné
Doc2Vec + SVM
třídění
prec.
recall
f1
prec.
recall
f1
prec.
recall
f1
0.00
0.00
0.00
0.23
0.23
0.23
0.83
0.85
0.84
0.00
0.00
0.00
0.11
0.11
0.11
0.74
0.74
0.74
Hlavička
0.00
0.00
0.00
0.11
0.11
0.11
1.00
0.97
0.99
Náklady
0.00
0.00
0.00
0.07
0.08
0.08
0.94
0.95
0.95
Poučení
0.00
0.00
0.00
0.15
0.16
0.15
0.99
1.00
0.99
Procesní
0.19
1.00
0.32
0.21
0.20
0.20
0.77
0.79
0.78
Výrok
0.00
0.00
0.00
0.12
0.12
0.12
0.93
0.96
0.95
Věcná historie
0.00
0.00
0.00
0.04
0.04
0.04
0.56
0.44
0.49
Argumentace
soudu
Argumentace
stran
historie
13
Mezi jednotlivými průchody klasifikátor již naučené "zapomene". Netestují se naučená data,
ale schopnost algoritmu se učit.
17
21/2020
Závěr
Celková
Revue pro právo a technologie
0.00
0.00
0.00
0.12
0.193
0.11
0.145
ROČ. 11
0.12
0.87
0.90
0.89
0.850
Přesnost
Tabulka č. 3: Průměrné hodnoty vypočtené z jednotlivých testovacích měření
v rámci cross-validace
Obr. č. 3: Matice záměn (confusion matrix) ukazující anotované třídy (vlevo)
a klasifikované třídy (dole)
Výslednou přesnost 85 % považujeme za více než dostačující, protože
klasifikace odstavců do daných tříd není vždy jednoduchý úkol.
U některých tříd navíc k omylům prakticky nedochází, a t o i při
natrénování na velmi malém datasetu.
18
M. Eliášek, J. Kól, M. Švaňa: Automatická klasifikace významových celků v judikatuře
DISKUZE
Nejproblematičtější třídou je Věcná historie. Odstavce patřící do této
kategorie klasifikátor na rozdíl od jejich anotace označuje jako Procesní
historii, Argumentaci stran nebo Argumentaci soudu. Je tomu jednak proto,
že tato třída má v trénovací množině nejmenší počet vzorků, ale především
proto, že skutková tvrzení jsou běžnou součástí jak Procesní historie, tak
Argumentace. Pokud bychom klasifikovali jednotlivé věty, bylo by možné
oddělit skutková tvrzení od procesních a právních, ale jelikož byly
klasifikovány celé odstavce, jde o záležitost krajně neřešitelnou.
Ze stejného důvodu Procesní historie prorůstá do Argumentace stran
a soudu. Je pochopitelné, že ve svojí argumentaci se strany i soud velmi
často odkazují na proběhnuvší řízení. Zde navíc dost záleží na tom, v jakém
řízení bylo rozhodnutí vydáno, protože odstavec “Proti rozhodnutí se
žalovaný odvolal z důvodu ...” může být procesní historií u Ústavního
a Nejvyššího soudu, ale Argumentací stran u krajského či vrchního soudu.
Když k tomu přičteme neduh, že soudy o sobě často mluví ve třetí osobě
(slovy “Krajský soud shledal žalobu nedůvodnou” může začínat
Argumentace soudu vydaná krajským soudem, nebo může jít o popis
předchozího řízení), jsou jednotlivé odstavce bez znalosti procesního práva
reálně neklasifikovatelné.
6.1 MODIFIKACE MODELU
Kromě modelu popsaného v předchozích sekcích byly testovány i jeho další
modifikace. Zkoušeno bylo například použití vyššího počtu dimenzí
u Doc2Vec vektoru nebo zahrnutí Doc2Vec vektoru předchozího odstavce
do popisu odstavce aktuálního. Tyto změny však nepřinesly žádné výrazné
zlepšení.
V rámci fáze klasifikace byly testovány další metody běžně
doporučované pro klasifikaci textu: rozhodovací stromy, random forests,
jednoduché neuronové sítě nebo SVM s polynomiálním a radial basis
function kernelem. S výjimkou neuronových sítí ale tyto varianty
dosahovaly výrazně horších výsledků. Přesnost dosažená neuronovou sítí
byla se zvoleným lineárním SVM klasifikátorem porovnatelná, nedostatkem
ale byla delší doba potřebná pro trénování modelu.
19
21/2020
Revue pro právo a technologie
ROČ. 11
7. ZÁVĚR
Prezentovaný model pro automatickou klasifikaci významových celků
v soudních rozhodnutích dosahuje uspokojivých výsledků. Především při
početnějších třídách lze pozorovat výrazné zlepšení oproti algoritmu
navrženém Haraštou et al. (2019). Jak bylo zmíněno v úvodu, model bude
dále použit pro klasifikaci judikatorních citací. Pro sofistikovanější využití
se může jako vhodnější alternativa ukázat tzv. měkká klasifikace, při které
model místo predikce konkrétní třídy určí pravděpodobnost zařazení do
jednotlivých tříd. Vzhledem k použitým nástrojům a knihovnám toto
rozšíření vyžaduje jen triviální úpravy zdrojového kódu.
Perspektivním směrem dalšího výzkumu je využití metod hlubokého
učení (deep learning), např. konvolučních nebo rekurentních neuronových
sítí. Pro jejich trénování je ale nutné podstatně rozšířit dataset anotovaných
částí soudních rozhodnutí.
8. SEZNAM POUŽITÝCH ZDROJŮ
[1] AGGARWAL, Charu C. a ChengXiang ZHAI. Mining text data. New York: Springer, 2012.
ISBN 978-1-4614-3222-7.
[2] HAN, Jiawei, Micheline KAMBER a Jian PEI. Data Mining: Concepts and Techniques. Third
Edition. Waltham: Elsevier, 2011. ISBN 978-0-12-381479-1.
[3] HARAŠTA, Jakub, Jaromír ŠAVELKA, František KASL a Jakub MÍŠEK. Automatic
Segmentation of Czech Court Decisions into Multi-Paragraph Parts. Jusletter IT. Weblaw AG,
2 0 1 9 , r o č . 4 , 2 3 . M a i 2 0 1 9 , s . 1 - 1 0 . I S S N 1 6 6 4 - 8 4 8 X . D o s t u p n é z :
https://www.muni.cz/en/research/publications/1534440
[4] MIKOLOV, Tomáš, Kai CHEN, Greg CORRADO a Jefrey DEAN. Efficient Estimation of Word
Representations in Vector Space. CoRR, 2013. Dostupné z: https://arxiv.org/abs/1301.3781
[5] MIKOLOV, Tomáš a Quoc V. LE. Distributed Representations of Sentences and Documents.
CoRR, 2014. Dostupné z: https://arxiv.org/abs/1405.4053
[6] RASCHKA, Sebastian. Python Machine Learning. Birmingham: Packt, 2015. ISBN 978-178355-513-0.
Toto dílo lze užít v souladu s licenčními podmínkami Creative Commons BY-SA 4.0 International
(http://creativecommons.org/licenses/by-sa/4.0/legalcode).
20