Kanadier hier,
ich habe euch ueber Google gefunden, nachdem ich neugierig war, wie deutsche Firmen das handhaben.
Wir arbeiten an demselben Problem in eine der groessten Steuerfirmen unseres Landes in Kanada.
Lass uns ueber die Extrahierung von Key-Value Paaren reden (Tabellen sind eine Sache fuer sich).
Ich habe lange ueber dieses Problem nachgedacht, und bin schliesslich auf die fuer mich "weiseste" Loesung gekommen, die "gut genug" zu sein scheint, eine simple Loesung zu einem sehr komplizierten Thema. (Ich habe spaeter auch herausgefunden, dass Google einen aehnlichen Ansatz mit ihrem System verfolgt, das hier schon empfohlen wurde. Nein, nicht nur im aehnlichen Ansatz... die machen es haargenauso)
Du erstellst dir zuerst "Kandidaten", das sind Tokens, also "Woerter" die von ihrer Zusammensetzung aus Buchstaben ein moeglicher Match sein koennen.
Danach schaust du dir die Nachbarn von jedem Kandidaten "nach links" an und wenn du nicht fuendig wirst um 10% "nach oben" (behalte beim OCR-Prozess also die x-y Koordinaten, die sind wichtig)
Der "weise" Teil ist ein Verifizierungsprozess, um "Fehltreffer" auszuwerfen. Du kannst schon von vornherein einige Heuristiken aufstellen:
Die Gesamtsumme ist der hoechste Geldbetrag.
Mehrwertsteuer ist bei euch ~19% von der Gesamtsumme; neben der Gesamtsumme wuerde nicht ein anderes Keyword (z.B. "Rueckgeld") stehen.
Das Zahldatum kommt nach dem Rechnungsdatum etc. etc.
Es gibt knapp ueber 500 Keywords in Rechnungen bei uns, nach denen wir suchen. Alles KI ist nur "Kurvenanpassung."
Ich habe meiner Assitentin gesagt, 80% Treffsicherheit ist top. 90% Erfolgsrate ist 5 Jahre Entwicklungszeit und um von 90% auf 95% zu kommen sind nochmal 10 Jahre. Ich denke, jeder der aus diesem Bereich kommt, wird bestaetigen: Bei 95% flacht auch dann diese Kurve ab.
So gut wie alle Forschungspapiere ueber dieses Thema gelesen zu haben gebietet mir diesen Loesungsweg zu favoritisieren (obgleich ich auch widersprochen werden moechte). TensorFlow, um auf Fabian von dem Link zu entwickler.de einzugehen, ist eine gute Idee, bis du skalieren musst. Daniel Holanda Noronha hat mit LeFlow versucht TensorFlow auf FPGAs zu werfen. FPGAs sind eine gute Idee.
Wir brauchen definitiv mehr FPGA-OCR Forschungen. Ich habe auch einige Ideen zum Thema OCR, aber ich moechte damit nicht mein Leben verschwenden.
"Wahre Semantik" in Rechnungen reinzubringen... dazu muesstest du vorerst ein System wie Cyc haben, das ueber die "groessere Welt" bescheid weiss. Der Kerninterpreter von CYC ist im Wesentlichen wie ein metazirkulaerer Lisp Interpreter. Die Inferenzregeln koennen etwa zwei Dutzend sein und sind im Wesentlichen Einzeiler im Pradikatenkalkuel 2. Ordnung. Der Rest von CYC besteht im Wesentlichen aus verschiedenen Arten von Wissen, die als Beziehungen und Kausalketten kodiert sind.
Die Inferenzmaschine ist pille-palle, wenn man die praktische Vergroesserung dieser Regeln zur Optimierung ignoriert. Die Einstein-Frage lautet, "Was genau muss es wissen - und wie viel, um das ganze praktisch zu machen?"