Tehnicka biljeska o hijerarhijskom suzavanju nad hrvatskim sudskim spisima. 332 retka, bez vanjskih ovisnosti, 47 testova.
Semanticki dohvat vraca dokumente koji zvuce slicno. Upit "sve revizije istog suda iz 2024." nije pitanje o znacenju nego o polozaju u hijerarhiji.
Gore od netocnosti je nestabilnost granice. Kad se skupina odredjuje pragom nad kontinuiranom mjerom, dokument na rubu jednom upadne a drugi put ne, ovisno o tome sto je jos u korpusu. Za pravnu pretragu, gdje odgovor mora biti isti svaki put, to nije prihvatljivo.
Adresa dokumenta je uredjena petorka
a = (razina suda, oznaka suda, godina, upisnik, redni broj)
Poslovni broj St-3774/2021 pri trgovackom sudu daje (1, 13, 2021, 'St', 3774).
Za dvije adrese a, b neka je v(a, b) najveci indeks do kojeg se
podudaraju po komponentama. Udaljenost je
d(a, b) = DEPTH - v(a, b), DEPTH = 5
Nepostojeca komponenta prekida podudaranje i strogo je manja od svakog broja.
Vrijedi jaca nejednakost od trokutne:
d(a, b) <= max(d(a, c), d(c, b))
Posljedica je da su sve kugle disjunktne ili ugnijezdene, nikad djelomicno preklopljene. Granica skupine je deterministicka: ne postoji dokument koji malo pripada dvjema granama.
Ekvivalentno i lakse za provjeru: od tri medjusobne udaljenosti, dvije najvece su jednake.
>>> a = PADICAddress(1, 13, 2021, 'St', 3774)
>>> b = PADICAddress(1, 13, 2021, 'St', 3775) # susjedni spis
>>> c = PADICAddress(1, 13, 2020, 'St', 12) # isti sud, druga godina
>>> vp_distance(a, b), vp_distance(a, c)
(4, 2)
>>> ultrametric_distance(a, b), ultrametric_distance(a, c), ultrametric_distance(b, c)
(1, 3, 3)Svojstvo se ne provjerava primjerima nego kao invarijanta nad generiranim
adresama; assert_ultrametric_triple pada ako adresna shema prestane biti
ultrametricka.
Prema hijerarhijskom grupiranju. Ondje granica ovisi o izabranoj funkciji povezivanja; promjena s jedne na drugu daje druge skupine nad istim podacima. Ovdje nema izbora, jer je ultrametrika svojstvo podataka, a ne shema nametnuta poslije.
Prema navigacijskim grafovima nad vektorima. Ondje su slojevi aproksimacija brzog trazenja, a udaljenost ostaje Arhimedova, pa je djelomicno preklapanje normalno. Ovdje je razina prirodna kategorija.
Prvo kugla, pa semanticko rangiranje unutar nje. Adresni filtar radi bez modela i bez vektora:
addr = encode_doc(parsed_meta, case_number="St-3774/2021")
susjedi = query_ball(conn, addr, radius=2) # isti sud, ista godina
grane = cluster_hierarchy(conn, level=2) # skupine po godiniProvjereno 15. 8. 2026., Python 3.13.1:
git clone https://github.com/hm53-byte/padic-address-index && cd padic-address-index
pip install pytest && python -m pytest testovi -q # 47 prolazi, 0,10 sPokrivenost je bila 29 posto, i uzrok nije bio ovdje. Naziv suda dolazio je iz izvlacenja i za 71 posto dokumenata bio je neupotrebljiv, pa adresa nije imala drugu komponentu. Popravak je bila normalizacija naziva na ulazu, sesnaest redaka izvan ove komponente. Pouka: pokrivenost se mjeri odvojeno od tocnosti, jer je komponenta cijelo vrijeme radila ispravno nad onim sto je dobivala.
Zbog istog uzroka modul nosi vlastito popravljanje pokvarenih dijakritickih
znakova i podnosi naziv sa i bez prijedloga (Trgovacki sud Zagreb naspram
Trgovacki sud u Zagrebu).
Nije izmjereno: dobitak na kvaliteti dohvata naspram cistog vektorskog pristupa. Cilj je bio postavljen prije izvedbe, usporedba s osnovicom nije napravljena, pa se ovdje ne navodi nikakav broj. Tvrdnja koja stoji je uza: adresni filtar je deterministican i jeftin.
Ne primjenjivati na korpus bez strukturne adresne sheme. Adresa mora doci iz metapodataka; izvucena iz slobodnog teksta, degenerira i daje laznu sigurnost.
Izvor popisa sudova namjerno je izvan modula: load_sudovi_cache trazi
klijenta s metodom list_sudovi().
Apache-2.0, LICENSE.