Ich benötige Unterstützung bei einem ML-Projekt, das ich gerade erstellen möchte.
Ich erhalte viele Rechnungen von vielen verschiedenen Lieferanten - alle in ihrem eigenen Layout. Ich muss 3 Schlüsselelemente aus den Rechnungen extrahieren . Diese 3 Elemente befinden sich alle in einer Tabelle / Werbebuchung für alle Rechnungen.
Die 3 Elemente sind:
- 1 : Tarifnummer (Ziffer)
- 2 : Menge (immer eine Ziffer)
- 3 : Gesamtzeilenbetrag (Geldwert)
Bitte beachten Sie den folgenden Screenshot, in dem ich dieses Feld auf einer Musterrechnung markiert habe.
Ich habe dieses Projekt mit einem Vorlagenansatz gestartet, der auf regulären Ausdrücken basiert . Dies war jedoch überhaupt nicht skalierbar und ich endete mit Tonnen verschiedener Regeln.
Ich hoffe, dass maschinelles Lernen mir hier helfen kann - oder vielleicht eine hybride Lösung?
Der gemeinsame Nenner
In allen meinen Rechnungen besteht trotz der unterschiedlichen Layouts jede Werbebuchung immer aus einer Tarifnummer . Diese Tarifnummer besteht immer aus 8 Ziffern und ist immer wie folgt formatiert:
- xxxxxxxx
- xxxx.xxxx
- xx.xx.xx.xx
(Wobei "x" eine Ziffer von 0 bis 9 ist).
Des Weiteren , wie Sie auf der Rechnung sehen kann , gibt es sowohl einen Einheitspreis und ein Gesamtbetrag pro Zeile. Der Betrag, den ich benötige, ist immer der höchste für jede Zeile.
Die Ausgabe
Für jede Rechnung wie oben benötige ich die Ausgabe für jede Zeile. Dies könnte zum Beispiel so aussehen:
{
"line":"0",
"tariff":"85444290",
"quantity":"3",
"amount":"258.93"
},
{
"line":"1",
"tariff":"85444290",
"quantity":"4",
"amount":"548.32"
},
{
"line":"2",
"tariff":"76109090",
"quantity":"5",
"amount":"412.30"
}
Wohin von hier aus?
Ich bin mir nicht sicher, was ich tun möchte, fällt unter maschinelles Lernen und wenn ja, in welche Kategorie. Ist es Computer Vision? NLP? Named Entity Recognition?
Mein erster Gedanke war:
- Konvertieren Sie die Rechnung in Text. (Die Rechnungen sind alle in textfähigen PDFs, so dass ich so etwas wie verwenden kann
pdftotext
, um die genauen Textwerte zu erhalten) - Erstellen Sie benutzerdefinierte benannte Entitäten für
quantity
,tariff
undamount
- Exportieren Sie die gefundenen Entitäten.
Ich habe jedoch das Gefühl, dass mir etwas fehlt.
Kann mir jemand in die richtige Richtung helfen?
Bearbeiten:
Im Folgenden finden Sie einige weitere Beispiele dafür, wie ein Abschnitt mit einer Rechnungstabelle aussehen kann:
Bearbeiten 2:
Die drei Beispielbilder ohne Rahmen / Begrenzungsrahmen finden Sie weiter unten :
Tariff No.:
oder $
) oder der Spalte, zu der es gehört, zu koppeln (hier kann es Ihnen helfen, die räumlichen Informationen der Buchstaben zu speichern). wenn irgendein OCR-Tool das tut). Ich glaube, Sie müssen sich weder mit diesem Problem (abgesehen von der vorgefertigten OCR) noch mit NLP (es ist keine natürliche Sprache) mit maschinellem Lernen befassen. Ohne zu sehen, wie gut diese Tools mit Ihren Daten funktionieren, können wir nur spekulieren, was der nächste Schritt ist und was notwendig ist: D