Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.

Come eseguire l'OCR degli ordini di acquisto per l'automazione

Un tipico processo di approvvigionamento in qualsiasi azienda ha più documenti ad esso associati Fatture, Ordini di acquisto, Bolle di consegna, ecc. Questo processo è stato un focus costante di miglioramenti basati sulla tecnologia per ridurre le spese generali. Un'importante ottimizzazione è avvenuta attraverso la digitalizzazione di questi documenti che ha portato a costi inferiori, tempi di consegna più rapidi e una riduzione dei tassi di errore. Questo post descriverà l'attuale tecnologia all'avanguardia nell'acquisizione di dati basata su OCR da questi documenti concentrandosi specificamente sugli ordini di acquisto.

Senza entrare troppo nei dettagli, un tipico flusso di lavoro di procurement si presenta così:

  1. L'acquirente genera un ordine d'acquisto
  2. Il venditore genera una fattura
  3. L'acquirente genera un GRN/Ordine Ricevimento Note:

Esistono alcune sottili differenze tra il processo di acquisizione dei dati e i requisiti per ciascuno di questi documenti a causa della differenza nelle informazioni contenute e nella struttura di questi documenti. Una differenza importante è dovuta anche a chi sta preparando il documento e di conseguenza a chi ha la necessità di digitalizzare il documento.

Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.

Corrispondenza a 3 vie

Uno dei motivi principali della digitalizzazione è perché tutti questi documenti devono corroborare e raccontare una storia coerente della transazione. Il processo di conferma di questi 3 documenti è denominato corrispondenza a 3 vie. La necessità e il processo di abbinamento a 3 variano notevolmente a seconda di chi sta conducendo l'abbinamento, l'acquirente o il venditore.

Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.

Prospettiva dell'acquirente:

L'Acquirente genera il PO e il Ricevimento e dispone di queste informazioni che possono essere facilmente riconciliate nel loro software. È necessario che corrisponda a Fattura all'Ordine di Acquisto e Ricevimento. L'Acquirente deve digitalizzare il file Fattura gli altri documenti sono già all'interno del loro sistema ERP.

Esistono diversi motivi per cui un acquirente deve eseguire la corrispondenza a 3 vie:

  1. Garantire che l'acquisto sia autorizzato abbinando un fattura e GRN con un ordine di acquisto
  2. Garantire che venga acquistato il prodotto corretto abbinando documenti diversi
  3. Garantire che la quantità corretta autorizzata sia stata acquistata e consegnata.
  4. Garantire che il prezzo pagato per ciascun prodotto fosse autorizzato
  5. Assicurarsi che sia stato selezionato il fornitore corretto e che alla fine il fornitore corretto verrà pagato poiché gli stessi prodotti potrebbero essere acquistati da fornitori diversi
  6. Abbinamento dell'inventario con quantità nel GRN per la qualità dei dati a valle

Prospettiva del venditore:

Il venditore genera il Fattura e deve assicurarsi che l'ordine di acquisto e Ricevimento abbinare le informazioni nella fattura. Il Venditore deve digitalizzare l'Ordine di Acquisto e la Ricevuta la Fattura viene generata dal suo ERP.

Esigenze del venditore per l'abbinamento a 3 vie

  1. Verifica se un ordine di acquisto può essere evaso dato l'inventario nel sistema
  2. Garantire che la merce spedita corrisponda al prodotto richiesto
  3. Garantire che al cliente corretto sia stato inviato il prodotto richiesto
  4. Garantire che i prodotti richiesti siano quelli consegnati al cliente
  5. Garantire che vengano fornite al cliente le quantità corrette
  6. Garantire che il prezzo in PO abbia un margine lordo che può essere soddisfatto

Cerchi una soluzione OCR basata sull'intelligenza artificiale per automatizzare gli ordini di acquisto? Regala NanonetPiattaforma di automazione intelligente un giro e metti i tuoi ordini di acquisto sul pilota automatico!


Problemi con la corrispondenza manuale a 3 vie

Poiché il problema della corrispondenza a 3 vie è abbastanza critico per entrambe le parti per raggiungere la fine del contratto l'efficienza e l'accuratezza sono fondamentali. Tuttavia, si tratta di un costo di processo piuttosto elevato da una varietà di prospettive:

Costo umano della tracciabilità e degli errori del documento

  1. È un processo disordinato, specialmente quando l'OP viene rivista più volte. Mantenere la versione corretta dell'OP può essere difficile. Se non eseguito correttamente, può comportare pagamenti multipli, consegna di articoli extra, ecc.
  2. Esistono più documenti e transazioni simili tra un fornitore frequente, l'acquirente. Queste transazioni possono essere consumate.
  3. Il processo non può essere ridimensionato. Il mantenimento di risorse umane ottimali è difficile quando il volume di elaborazione cambia rapidamente. La maggior parte delle aziende ha questi dipartimenti sovraccarichi per compensare i picchi di volume

Ritardi di pagamento o di approvvigionamento

  1. I dati dai documenti vengono inseriti manualmente. Questo processo diventa un collo di bottiglia quando aumenta il volume dei documenti elaborati
  2. I ritardi possono comportare un ritardo nella consegna / pagamento / approvvigionamento. Ciò comporta un elevato costo del capitale circolante o una perdita di entrate dovuta a ritardi nell'acquisto di materie prime, ecc.

Errori di inventario

  1. Se i sistemi di inventario non sono correttamente integrati con questo processo, può esserci un costo elevato per il calcolo errato dell'inventario. Con conseguente scorte eccessive, ordini duplicati, scorte insufficienti e perdita di entrate.

Errori nella corrispondenza a 3 vie

Esistono numerosi errori diversi in questo processo. Di seguito sono riportati alcuni esempi

Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.

Errori di corrispondenza del fornitore

La corrispondenza del fornitore viene in genere eseguita in base a due elementi, il nome del fornitore e l'indirizzo. Dal momento che la stessa azienda potrebbe avere varie filiali e diverse unità aziendali che emettono simili fatture.

Se l'indirizzo dall'ordine di acquisto e Fattura non hanno l'indirizzo corretto e il nome del fornitore identificato, potrebbero esserci problemi nella corrispondenza. Inoltre, come si può vedere chiaramente, solo la corrispondenza diretta del testo non funziona in corrispondenza della fattura e dell'ordine di acquisto.

Ordine di acquisto Fattura Stato dei servizi
Acme Inc. Acme Inc. Lavori
Acme Inc. Acme Inc Africa Non riesce
Acme Acme LLC. Non riesce
Acme LLC. Acme LLC. Divisione di artiglieria Non riesce

Errori di corrispondenza del prodotto

I prodotti sono l'articolo più difficile da abbinare poiché raramente seguono lo stesso nome nell'ordine di acquisto e nella fattura e ricevimento. Questa è probabilmente la principale causa di errori.

Le cause degli errori potrebbero essere dovute a versioni diverse dello stesso prodotto, dimensioni, specifiche e prezzi diversi. Il prodotto potrebbe essere stato aggiornato di recente, è stato fornito un sostituto per un articolo non disponibile, ecc.

Ordine di acquisto Fattura Stato dei servizi
TYLENOL Pressione e dolore sinusali TYLENOL Pressione e dolore sinusali Lavori
Tylenol TYLENOL Pressione e dolore sinusali Non riesce
TYLENOL Pressione e dolore sinusali TYLENOL® Pressione e dolore sinusali Non riesce
TYLENOL Forza extra TYLENOL Antidolorifico Extra Forte e Riduttore di Febbre da 500 mg compresse Non riesce
TYLENOL Antidolorifico Extra Forte e Riduttore di Febbre da 500 mg compresse TYLENOL Antidolorifico Extra Forte e Riduttore di Febbre da 250 mg compresse Non riesce

Errori di corrispondenza quantità

Anche se il prodotto viene abbinato correttamente, è possibile che si verifichino errori nell'abbinamento della quantità se il prodotto in una quantità specificata non è disponibile ecc. Ciò è in genere vero tra l'ordine di acquisto e GRN, poiché di solito c'è un intervallo di tempo tra questi due documenti.

Errori di corrispondenza dei prezzi

Se si è verificata una variazione del prezzo durante l'intero ciclo di vita dell'acquisto del prodotto o se il prodotto è stato aggiornato o sostituito, potrebbe verificarsi questo errore.

Documenti duplicati

Se ci sono acquisti frequenti di prodotti simili dallo stesso venditore, potrebbero esserci più documenti che sembrano molto simili. Se il numero di riferimento a un ordine di acquisto non è menzionato nella fattura e nel GRN né per la fattura né per l'OP, esiste un ambito significativo per la mancata corrispondenza del documento.


Digitalizzazione degli ordini di acquisto

Per ottenere tutti i dati rilevanti dagli ordini di acquisto, è necessario estrarre i seguenti campi:

Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.

Elenco comune di campi da estrarre (tra gli ordini di acquisto potrebbero avere nomi diversi):

Indirizzo di fatturazione Termini di pagamento Totale parziale
Nome del compratore Numero PO Oggetto
Nome contatto Prodotto Totale
Valuta Data dell'ordine d'acquisto Prezzo unitario
Spedire a Quantità Nome fornitore
Scadenza Richiesta n

Soluzioni attuali e loro problemi

Modello + corrispondenza testo

Ciò comporta la definizione della regione esatta in cui cercare una particolare informazione. Quindi diciamo se stai cercando di estrarre la data e il formato è esattamente lo stesso tra i documenti e la data si verifica esattamente nello stesso posto nel documento. Definiamo l'area da cercare nel documento per la data.
Ecco il processo:

  1. Converti il ​​documento in un'immagine
  2. Diamo un documento di esempio
  3. Contrassegna la regione in cui viene trovata la data (il documento viene visualizzato come un sistema di coordinate in cui l'angolo in alto a sinistra è (0,0)) potremmo contrassegnare da (200,300) a (350,450) che è la regione di interesse per la data
  4. Quando c'è un nuovo documento andiamo e controlliamo da (200,300) a (350,450) ed estraiamo il testo lì

Storicamente questo è stato uno degli approcci più comuni per risolvere questo problema. Ciò è dovuto a vari motivi:

  1. Semplicità del software e dell'attuazione. Un programmatore competente potrebbe creare questa soluzione in meno di un giorno
  2. Non vi è alcuna incertezza su come funzionerà la soluzione, se il documento ha esattamente lo stesso formato funzionerà perfettamente
  3. Richiede risorse di calcolo molto limitate per estrarre i dati

Vi sono tuttavia alcune ovvie sfide date dalla rudimentalità di questo metodo:

  1. Non funziona se c'è anche una leggera differenza nei documenti
  2. Non funziona se l'acquirente aggiorna il proprio formato
  3. Per ogni acquirente esiste un nuovo formato che deve essere impostato
  4. Non funziona per i documenti scansionati
Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.

OCR + NLP + Corrispondenza di testo

OCR + NLP è una tecnica più recente per estrarre dati dai documenti. L'OCR è un problema abbastanza ben studiato e l'estrazione di testo dai documenti funziona per la maggior parte del tempo. Il passaggio successivo consiste nel prendere tutto il testo non elaborato che viene estratto dal documento e quindi provare ad analizzare ciascuno dei singoli pezzi di testo nel documento

Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.

All'interno della PNL esiste una varietà di tecniche che possono essere impiegate per risolvere questo problema

  1. Regex (espressioni regolari)

Per estrarre una data dovrebbe apparire un'espressione regolare:

^(?:(?:31(/|-|.)(?:0?[13578]|1[02]|(?:Jan|Mar|May|Jul|Aug|Oct|Dec)))1|(?:(?:29|30)(/|-|.)(?:0?[1,3-9]|1[0-2]|(?:Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))2))(?:(?:1[6-9]|[2-9]d)?d{2})$|^(?:29(/|-|.)(?:0?2|(?:Feb))3(?:(?:(?:1[6-9]|[2-9]d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1d|2[0-8])(/|-|.)(?:(?:0?[1-9]|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep))|(?:1[0-2]|(?:Oct|Nov|Dec)))4(?:(?:1[6-9]|[2-9]d)?d{2})$

Estratti 01/02/2020

Fonte: https://stackoverflow.com/questions/15491894/regex-to-validate-date-format-dd-mm-yyyy

L'aspetto negativo della soluzione basata su Regex è che ogni nuovo formato deve essere programmato separatamente. Se esiste un nuovo formato, è necessario aggiungerlo all'espressione regolare. Non identifica se una data particolare è la data di consegna, dovuta per data o data dell'ordine d'acquisto.

2. NER (riconoscimento dell'entità denominata)

Per estrarre i tipi di campo utilizzando NER

results = stanford_ner_tagger.tag(article.split()) print('Original Sentence: %s' % (article)) for result in results: tag_value = result[0] tag_type = result[1] if tag_type != 'O': print('Type: %s, Value: %s' % (tag_type, tag_value))

stampe
Type: DATE, Value: 01/02/2020

Fonte: https://towardsdatascience.com/named-entity-recognition-3fad3f53c91e

L'aspetto negativo dell'estrazione basata su NER è che funziona bene per tipi ben definiti ma fallisce per una varietà di tipi come indirizzi e cose che sono formati non standard. Funziona bene per date, valuta, numeri di telefono ecc. Funziona occasionalmente per nomi ed entità. Soffre di un problema simile di non sapere quale sia la data di consegna, dovuta alla data o alla data dell'ordine di acquisto.

3. Forza il fornitore / acquirente a utilizzare il software per inviare il documento

Se un venditore o un acquirente ha un effetto leva significativo in una transazione, può obbligare l'altra parte a utilizzare il proprio software per inviare il proprio documento. Ciò elimina la maggior parte dei problemi e scarica l'intera responsabilità sul fornitore e non è richiesta la digitalizzazione dei documenti. Tuttavia questo soffre dell'ovvio problema di non essere onnipresente e richiede che l'altra parte interagisca con il tuo software. Anche se alcune 3 parti non seguono questo protocollo, è necessario uno sforzo significativo per aggiungerlo al sistema esistente.


Deep Learning

La tecnologia Deep Learning è diventata abbastanza avanzata negli ultimi tempi nell'estrazione di dati e, soprattutto, nell'estrazione di funzionalità che possono portare a previsioni migliori.

Graph Convolutional Neural Networks (GCN) può essere utilizzato per estrarre dati da questi documenti. Forniamo al GCN una varietà di caratteristiche diverse, ognuna delle quali viene utilizzata per essere in grado di estrarre le informazioni corrette.

Può essere suddiviso in 2 passaggi:
1. Estrazione delle caratteristiche

Estraiamo varie funzionalità da ciascun blocco di testo.

a) Funzioni di testo

b) Funzioni visive

c) Caratteristiche della posizione

d) Caratteristiche dimensioni

e) Caratteristiche dei caratteri

2. Creazione del grafico

Queste funzionalità vengono create per ogni blocco di testo e quindi viene creato un grafico. Per ogni blocco di testo vengono passate le funzionalità del suo vicino. Con le funzioni grafiche e le altre funzionalità create per ogni blocco di testo, viene quindi classificato come uno dei campi di interesse o come Nessuno.

Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.

Corrispondenza del documento

Per abbinare i documenti Deep Learning è anche un'ottima soluzione in cui i campi estratti da ciascuno dei tipi di documento possono essere analizzati per fornire una previsione finale se i documenti corrispondono.

Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.

Problemi con l'apprendimento profondo

Esistono due classi di informazioni da estrarre

1. Problemi con i valori chiave (numero PO, data, ecc.)

Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.
  • Identificazione delle coppie chiave-valore. Non sono posizionati in modo uniforme tra i formati e non sono chiari quanti vicini guardare attraverso.
  • Tenendo conto di più lingue.
  • Dati insufficienti per l'addestramento per una chiave particolare (squilibrio di classe)

2. Problemi con i valori della tabella

Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.
  • Classificare qualsiasi casella come tabella
  • Tabelle mancanti nelle pagine con più tabelle
  • Unire due colonne vicine
  • Interpretazione errata dei bordi della pagina come bordi della tabella

3. Altri problemi

  • Rotazione e ritaglio
  • Immagini di scarsa qualità
  • Deriva dei dati

Usando le nanonette

Risolvere i problemi nell'uso di Deep Learning per OCR sugli ordini di acquisto

Utilizzo dell'API Nanonets È possibile estrarre automaticamente tutte le chiavi richieste richieste per la corrispondenza dei documenti. Basta caricare un documento e ottenere tutti i campi estratti restituiti nel formato desiderato.

Affrontiamo la maggior parte dei problemi sopra elencati in modo da non dover perdere tempo a reinventare la ruota.

Coppie di valori chiave:

1.Identificazione delle coppie di valori chiave. Non sono posizionati uniformemente tra i formati.

Utilizzando la nostra implementazione GCN siamo in grado di analizzare le chiavi tra i documenti. La nostra implementazione GCN include ottimizzazioni per trovare la giusta ricerca di quartiere per ottenere il miglior passo tra l'esplosione delle caratteristiche e la mancanza di contesto per il modello per interpretare correttamente a quale chiave appartiene ciascuna

2. Prendere in considerazione più lingue.

I nostri modelli sono stati addestrati con incorporamenti di testo indipendenti dalla lingua. Ciò si ottiene creando uno spazio degli elementi in modo tale che le parole incorporamenti per "Fattura" e "Faktura" (Fattura in tedesco) e चलाना (Fattura in hindi) siano tutti mappati allo stesso spazio degli elementi. Quindi le caratteristiche del testo diventano indipendenti dalla lingua e il modello non deve essere addestrato per lingua.

3. Dati insufficienti per l'addestramento di una chiave particolare (squilibrio di classe)

Disponiamo di un ampio corpus di documenti finanziari sui quali sono stati formati i nostri modelli per mitigare questo problema.

tavoli

1.Classificare qualsiasi scatola come tabella

Abbiamo creato un robusto classificatore in grado di identificare una varietà di tabelle diverse in diversi formati e impostazioni. Questo utilizza una combinazione di funzioni visive e funzionalità di layout insieme a funzionalità di testo per identificare la struttura della tabella.

2. Tabelle mancanti nelle pagine con più tabelle

Dopo aver identificato ciascuna delle diverse strutture di tabella tra le pagine, abbiamo una logica di unione che decide se la struttura è abbastanza simile per unire e se una tabella in una pagina precedente era incompleta per determinare se due tabelle debbano essere unite.

3. Unione di due colonne vicine

Se ci affidiamo esclusivamente alle funzionalità visive, questo diventa un problema in quanto è difficile identificare la separazione basata sullo spazio. Tuttavia, con l'inclusione del testo visivo e delle funzioni basate sulla posizione, è possibile identificare dove il tipo di dati contenuti in una colonna è abbastanza diverso da essere chiamato una nuova colonna.

4. Interpretazione errata dei bordi della pagina come bordi della tabella

Simile al precedente, questo problema viene risolto utilizzando una varietà di funzionalità per determinare se una particolare struttura è una tabella o un bordo della pagina.

Altri problemi

1.Rotazione e ritaglio

Abbiamo implementato un modello di rotazione e ritaglio come parte della nostra fase di pre-elaborazione per identificare i bordi di un documento e quindi orientare correttamente il documento. Questo utilizza un modello simile a un modello di rilevamento di oggetti con la funzione obiettivo modificata per identificare 4 angoli invece di 2 punti che è standard in un problema di rilevamento di oggetti. Questo risolve sia la rotazione che il ritaglio

2. Sfocatura e scarsa qualità del documento

Abbiamo un modello di qualità inserito come parte della nostra pipeline di pre-elaborazione che accetta solo documenti al di sopra di una certa soglia di qualità. Questo è un classificatore binario che è un semplice modello di classificazione delle immagini addestrato su una serie di documenti di buona e cattiva qualità. Nella pipeline di acquisizione dei documenti i documenti possono essere rifiutati in anticipo se non soddisfano gli standard di qualità richiesti e possono essere inviati per la riconquista o l'elaborazione manuale.

2. Deriva dei dati

La deriva dei dati è un problema quando il modello è esposto solo ai dati di un singolo fornitore o di una singola regione. Se il modello è stato storicamente addestrato su una varietà di diversi fornitori, settori geografici, ecc., La possibilità di deriva dei dati si riduce notevolmente poiché è già stato esposto a queste variazioni.

Inizia a digitalizzare gli ordini di acquisto e Fatture Ora con Nanonet - 1 Fare clic su Digitalizzazione PO:

Come eseguire l'OCR degli ordini di acquisto per l'automazione dei dati di PlatoBlockchain. Ricerca verticale. Ai.

Letture consigliate

Aggiornamento 1:
Aggiunto ulteriore materiale di lettura sull'estrazione di informazioni dagli ordini di acquisto e sull'utilizzo dell'OCR per l'automazione

Aggiornamento 2: abbiamo migliorato significativamente la precisione dei nostri modelli per estrarre i dati dagli OP.

Imposta una demo

Installa una demo per scoprire come le nanonette possono aiutarti a risolvere questo problema

Timestamp:

Di più da AI e apprendimento automatico