Hvert ciffer er blevet genkendt. Alligevel ender subtotalen i dataposten som slutbeløbet. Fejl som denne ser pæne ud: gyldig JSON, udfyldte felter, ingen rød fejlmeddelelse. Det, der mangler, ligger i forholdet mellem tal, betegnelse og tabelrække.
Mistrals OCR-dokumentation beskriver blandt andet struktureret tekst, tabelformater og blokkoordinater. Document Annotations kan desuden konvertere oplysninger til et foruddefineret JSON-format. Disse byggesten løser forskellige dele af vejen fra dokument til applikation.
Fire niveauer for et enkelt felt
Først skal tegnene læses. Derefter har applikationen brug for deres position og rækkefølge. Herefter skal den genkende, hvilket felt en værdi beskriver. Til sidst kommer de faktuelle sammenhænge: Stemmer slutbeløbet overens med de linjeposter, der er angivet i eksemplet, og den angivne rabat?
En fejl på et hvilket som helst af disse niveauer kan ende med at give det samme forkerte tal. Derfor er komplet tekstoutput alene ikke et tilstrækkeligt kvalitetsmål. For en vigtig værdi bør vejen tilbage til, hvor den blev fundet, bevares.
Det behøver ikke altid at være en omfattende grafisk markering. En dokumentidentifikator, siden og en entydig feltbeskrivelse hjælper allerede. Hvis der bruges koordinater, skal de høre til den rigtige side og gengivelse. Et rektangel uden en klart identificeret dokumentversion kan i sig selv skabe forvirring senere.
Lav en faktura, hvis indhold du kender
Til en overskuelig test designer du din egen PDF med to linjeposter. Post A indeholder to enheder til ti euro hver, post B én enhed til femten euro. Under dem står en rabat på fem euro og et slutbeløb på tredive euro. Et ordrenummer mangler bevidst. Tallene tjener kun som teknisk forklaring, ikke som skabelon til skatteformål.
Notér før udtrækningen de forventede værdier, og hvor de er placeret. I en anden version ændrer du kun layoutet: Rabat og total står nu tættere på linjeposterne. På den måde kan du senere se, om tildelingen bruger betegnelsen eller forlader sig på en tilfældig position.
Lad først en egnet ekstern OCR-vej levere tekst og struktur. En efterfølgende udtrækning skal returnere slutbeløb, valuta, ordrenummer og placering i dokumentet. Det manglende ordrenummer bevares som ukendt. Et opfundet erstatningsnummer ville være en fejl, selv om det udfylder outputformatet fuldstændigt.
En lille faktuel kontrol uden for modellen
Den enkle aritmetiske sammenhæng i det syntetiske eksempel kan kontrolleres uafhængigt. Til decimalbeløb som disse bruger du for eksempel Decimal frem for binære kommatal. Dette Python-eksempel, som vi selv har skrevet, kontrollerer kun den undervisningsberegning, vi har defineret:
from decimal import Decimal
positionen = [
(Decimal("2"), Decimal("10.00")),
(Decimal("1"), Decimal("15.00")),
]
rabatt = Decimal("5.00")
ausgewiesen = Decimal("30.00")
berechnet = sum((menge * preis for menge, preis in positionen), Decimal("0")) - rabatt
assert berechnet == ausgewiesen
En bestået aritmetisk kontrol ville kun vise, at de tal, der bruges her, passer sammen. Den beviser ikke, at OCR'en har hentet disse tal fra det rigtige dokument. Derfor forbliver den aritmetiske kontrol og kildekontrollen to forskellige trin.
I en rigtig applikation skal du desuden overholde reglerne for den specifikke dokumenttype. Skatter, afrunding, valutaer og særtilfælde kan ikke udledes af denne forenklede faktura. Opgaven her er blot at overføre en kendt tildeling på en sporbar måde.
Usikkerhed hører hjemme i overleveringskontrakten
Definér eksplicit, hvad der sker ved et ulæseligt ciffer eller en modsigelse. En datapost kan indeholde værdien, hvor den blev fundet, og en afklaringsstatus. Først en bekræftet overførsel udløser derefter det tilsigtede næste trin.
En egnet instruktion: “Tilføj ikke manglende oplysninger. Henvis for hvert beløb, du overfører, til det betegnede felt. Registrér modstridende totaler separat. Lav kun en forhåndsvisning, ikke en bogføringspost.”
Den konkrete test går dermed ud over blot at læse PDF op. Du kontrollerer tegn, struktur, feltbetydning og en kendt sammenhæng hver for sig. Det er netop det, der skaber en brugbar vej til data, som ikke bare ser pæne ud, men også fører tilbage til originalen.
Kilder og status
Kilder pr. 25. oktober 2026. Document AI OCR processor · Document Annotations.

