Tech Talk: Efficiënte factuurverwerking met OCR-automatisering

Facturen vormen het hart van een bedrijf, of het nu B2B of B2C is. Elk bedrijf heeft te maken met facturen in verschillende volumes van leveranciers.

Voor onze klanten en hun accounts payable teams waren facturen zowel een bron als een hindernis. Hun uitdaging bestond uit het verwerken van talloze PDF-bestanden en het handmatig invoeren van factuurgegevens in hun systeem, een uiterst tijdrovende en overbodige taak.

We zijn begonnen met het maken van software die deze taak kan automatiseren en versnellen met behulp van OCR-technologie ( optische tekenherkenning ). Met andere woorden, het vermogen van AI om tekst in documenten te herkennen. Verschillende industrieën die te maken hebben met veel gegevens en documentverwerking zouden deze technologie nuttig moeten vinden voor veel use cases.

Bestaande tools

Op de markt zijn er verschillende bestaande projecten voor factuurbehandeling. We besloten dit eerst te onderzoeken om de toonaangevende beschikbare tools te beoordelen. Ondanks verschillende projecten konden we niet tot één tool komen die tegelijkertijd kon weergeven:

  • voldoende leesnauwkeurigheid,

  • voldoende flexibiliteit in sjablonen,

  • en voldoende maatwerk om aan de behoeften van onze klanten te voldoen.

Om aan deze behoefte te voldoen, hebben we onze eigen oplossing ontwikkeld.

De OCR-oplossing

We hebben een tool ontwikkeld om ontvangen facturen als PDF of afbeelding te behandelen. Het eerste obstakel was de mogelijkheid om precies dat veld te extraheren dat nodig was en dat verschillende vormen kon hebben. Denk bijvoorbeeld aan een datum. Deze kan verschillende formaten hebben, zoals dd/MM/JJJJ, dd/mm/JJ, JJ/mm/dd, of uitgeschreven met letters. We begonnen met het definiëren van reguliere expressies voor elk veld om dit probleem aan te pakken. Maar dat was niet genoeg. Je kon verschillende datums op facturen hebben - geboortedatum, factuurdatum, vervaldatum, herinneringsdatum, enz.

We hebben besloten om dit probleem te minimaliseren door een tweede logische laag toe te voegen. We kunnen enkele regels aannemen voor alle geïdentificeerde datums om datumkandidaten te sorteren en labelen. Als de geïdentificeerde datum bijvoorbeeld de oudste is en tientallen jaren verwijderd is van de huidige datum, kun je aannemen dat dit de geboortedatum is.

Toen we deze eerste actie hadden voorbereid, bleek het resultaat niet zo nauwkeurig te zijn als we wilden. Stel je nu voor dat je handmatig op de factuur kunt aangeven waar de geboortedatum staat. Op dit moment heb je de coördinaten, de reguliere expressie en de logische regels om de geboortedatum te detecteren in een bestand van honderden woorden en soms meerdere pagina's. Pas deze logica toe op elk veld dat nodig is en je krijgt een resultaat dat niet nauwkeurig genoeg is. Pas deze logica toe op elk veld dat nodig is en je krijgt een model dat bijna elke factuur met voldoende nauwkeurigheid kan lezen.

Coördinaten

Het probleem is echter dat ons OCR-model afhankelijk is van de toegang tot de coördinaten van elk veld. We moeten nog steeds identificeren en structureren welk stuk tekst zich in welk geëxtraheerd veld bevindt. Betekent dit dat we voor elke factuur nog steeds elke coördinaat voor elk veld handmatig moeten registreren? Gelukkig niet.

Ons model is gebruiksvriendelijk voor veldidentificatie. Het toont gewoon de afbeelding en laat de gebruiker klikken en slepen op het specifieke gebied. Laten we zeggen dat je tien velden moet identificeren. Je herhaalt dit tien keer. Dan zal ons programma voor elke factuur het sjabloon herkennen en controleren of er naar verwezen wordt in onze bestaande DB. Zo ja, dan hoeven de gebruikers niets meer te doen. Zo niet, dan hebben ze de mogelijkheid om het sjabloon te registreren met de eerder beschreven methode. Hieronder staat een voorbeeld van hoe we de coördinaten in het model kunnen identificeren:

Resultaten

De resultaten van ons model worden weergegeven in een Excel-bestand met een nauwkeurigheidsscore en verschillende waarschuwingsvlaggen.

Onze nauwkeurigheidsscore is afhankelijk van de kwaliteit van de PDF-scan, het gewogen gemiddelde van de OCR-kwaliteitsscores en de aan- of afwezigheid van ongeldige tekens. Bijvoorbeeld cijfers in een naam. Waarschuwingsvlaggen zorgen voor snelle menselijke supervisie. Onze waarschuwingen omvatten scankwaliteit, identificatie van potentiële niet-coherente velden of ongeldige bedragen. In dit geval hebben we een vlag opgenomen voor het totale bedrag van uitschieters in vergelijking met de verdeling van de batchbestanden.

Tot slot kan dit excel door een persoon worden beoordeeld op mogelijke incoherentie. De belangrijkste toegevoegde waarde van ons OCR-project is de tijdsbesparing. Maar het automatiseren van factuurverwerking kan ook de kosten verlagen en fouten elimineren, wat resulteert in minder hindernissen en een hogere productiviteit.

Wat uren had moeten duren, kan nu worden opgestart terwijl je aan een ander project werkt of een welverdiende koffiepauze neemt om een ander artikel op Agilytic te lezen!

Vorige
Vorige

Team Quest: Een geavanceerde oplossing ontwikkelen in slechts 9 uur

Volgende
Volgende

Stage reflectie: Maxime's ervaring bij Agilytic