This work was part of an internship in Zucchetti, Innovation Lab, a research and development division of the company. The accountancy division commissioned a project to the laboratory to implement new features for their product, AGO Infinity. It is an accountancy software and it can record invoices to the clients and from the suppliers. It allows to track all the closed and pending payments and their due dates. The company bank statements are periodically uploaded in the application, with both ingoing and outgoing transactions. AGO can be configured to split apart transactions according to some user-defined regular expressions. Generating these is demanded to the user, which is unlikely to be a specialized IT technician. The first goal was to implement an algorithm which could automatically find patterns among transaction descriptions and generate the corresponding regular expressions. In particular, the aim was to find the strictest simple regular expression that matches a fixed set of texts. Each time a new statement is uploaded, an accountant manually associates each transaction to due payments, in order to keep track of those that are being fulfilled. This is a very slow and repetitive task and its core is to identify useful data inside the transaction description. The second goal was then to build a natural language (NLP) model that could automatically associate transactions and due payments according to the data available in the transaction descriptions. This process has been split into extracting data from text and scoring the similarity between those data and all the due payments. This way it is possible to rank all the due payments and let the user select the best available option. The model has been fully implemented and is being deployed into AGO Infinity.

Il presente lavoro è stato sviluppato durante un periodo di tirocinio presso Zucchetti, in particolare all'interno dell'Innovation Lab, divisione che si occupa di sviluppo e innovazione. Il laboratorio ha seguito un progetto nato per implementare alcune feature ad AGO Infinity, applicativo legato alla contabilità, realizzato e gestito dalla divisione commercialisti dell'azienda. Tra le sue funzionalità, AGO tiene conto delle fatture emesse verso i clienti e ricevute dai fornitori, così da permettere il tracciamento delle scadenze di pagamento. Gli estratti conto dell'azienda vengono regolarmente caricati all'interno del software e comprendono tutti i movimenti in entrata e in uscita. L'applicativo può essere configurato per catalogare i vari movimenti mediante dei pattern individuati da espressioni regolari. La generazione di queste ultime è demandata all'utente, che spesso non ha competenze tecnico-informatiche. Il primo obiettivo che è stato perseguito durante il lavoro consisteva nella realizzazione di un algoritmo che permettesse l'individuazione di pattern all'interno delle descrizioni e la generazione automatica delle espressioni regolari. In particolare, il problema è stato ricondotto a quello dell'individuazione delle espressioni regolari semplici più stringenti che siano verificate da un insieme fissato di testi. Inoltre, a ogni caricamento l'utente effettua un'associazione manuale dei movimenti e delle scadenze in modo da identificare quelle che vengono saldate. Questa operazione è lunga e onerosa e si basa quasi esclusivamente sull'identificazione delle informazioni rilevanti contenute nella descrizione del movimento. Il secondo obiettivo del progetto è stato quello di costruire un modello di linguaggio naturale (NLP) che permettesse l'associazione automatica tra movimento e scadenza utilizzando le informazioni fornite in descrizione. Il processo di associazione è stato organizzato in due diversi momenti: l'estrazione dal testo di tutte le informazioni rilevanti e la generazione di un punteggio che ne valuti la coerenza con le varie scadenze non ancora saldate. In questo modo è possibile generare una graduatoria delle scadenze candidate all'associazione, permettendo all'utente di scegliere tra più opzioni nel caso in cui la prima non sia soddisfacente. Il modello presenta attualmente una versione funzionante ed è in corso una prima implementazione all'interno dell'applicativo.

Estrazione di pattern e informazioni da testi strutturati nelle scritture contabili

PRIVITERA, LUIGI
2020/2021

Abstract

This work was part of an internship in Zucchetti, Innovation Lab, a research and development division of the company. The accountancy division commissioned a project to the laboratory to implement new features for their product, AGO Infinity. It is an accountancy software and it can record invoices to the clients and from the suppliers. It allows to track all the closed and pending payments and their due dates. The company bank statements are periodically uploaded in the application, with both ingoing and outgoing transactions. AGO can be configured to split apart transactions according to some user-defined regular expressions. Generating these is demanded to the user, which is unlikely to be a specialized IT technician. The first goal was to implement an algorithm which could automatically find patterns among transaction descriptions and generate the corresponding regular expressions. In particular, the aim was to find the strictest simple regular expression that matches a fixed set of texts. Each time a new statement is uploaded, an accountant manually associates each transaction to due payments, in order to keep track of those that are being fulfilled. This is a very slow and repetitive task and its core is to identify useful data inside the transaction description. The second goal was then to build a natural language (NLP) model that could automatically associate transactions and due payments according to the data available in the transaction descriptions. This process has been split into extracting data from text and scoring the similarity between those data and all the due payments. This way it is possible to rank all the due payments and let the user select the best available option. The model has been fully implemented and is being deployed into AGO Infinity.
2020
Pattern and information extraction from structured texts in accounting records
Il presente lavoro è stato sviluppato durante un periodo di tirocinio presso Zucchetti, in particolare all'interno dell'Innovation Lab, divisione che si occupa di sviluppo e innovazione. Il laboratorio ha seguito un progetto nato per implementare alcune feature ad AGO Infinity, applicativo legato alla contabilità, realizzato e gestito dalla divisione commercialisti dell'azienda. Tra le sue funzionalità, AGO tiene conto delle fatture emesse verso i clienti e ricevute dai fornitori, così da permettere il tracciamento delle scadenze di pagamento. Gli estratti conto dell'azienda vengono regolarmente caricati all'interno del software e comprendono tutti i movimenti in entrata e in uscita. L'applicativo può essere configurato per catalogare i vari movimenti mediante dei pattern individuati da espressioni regolari. La generazione di queste ultime è demandata all'utente, che spesso non ha competenze tecnico-informatiche. Il primo obiettivo che è stato perseguito durante il lavoro consisteva nella realizzazione di un algoritmo che permettesse l'individuazione di pattern all'interno delle descrizioni e la generazione automatica delle espressioni regolari. In particolare, il problema è stato ricondotto a quello dell'individuazione delle espressioni regolari semplici più stringenti che siano verificate da un insieme fissato di testi. Inoltre, a ogni caricamento l'utente effettua un'associazione manuale dei movimenti e delle scadenze in modo da identificare quelle che vengono saldate. Questa operazione è lunga e onerosa e si basa quasi esclusivamente sull'identificazione delle informazioni rilevanti contenute nella descrizione del movimento. Il secondo obiettivo del progetto è stato quello di costruire un modello di linguaggio naturale (NLP) che permettesse l'associazione automatica tra movimento e scadenza utilizzando le informazioni fornite in descrizione. Il processo di associazione è stato organizzato in due diversi momenti: l'estrazione dal testo di tutte le informazioni rilevanti e la generazione di un punteggio che ne valuti la coerenza con le varie scadenze non ancora saldate. In questo modo è possibile generare una graduatoria delle scadenze candidate all'associazione, permettendo all'utente di scegliere tra più opzioni nel caso in cui la prima non sia soddisfacente. Il modello presenta attualmente una versione funzionante ed è in corso una prima implementazione all'interno dell'applicativo.
File in questo prodotto:
Non ci sono file associati a questo prodotto.

È consentito all'utente scaricare e condividere i documenti disponibili a testo pieno in UNITESI UNIPV nel rispetto della licenza Creative Commons del tipo CC BY NC ND.
Per maggiori informazioni e per verifiche sull'eventuale disponibilità del file scrivere a: unitesi@unipv.it.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14239/14217