DE102018006481A1 - Nutzung von Deep-Learning-Techniken zum Bestimmen einer kontextbezogenen Lesereihenfolge in einem Dokument - Google Patents

Nutzung von Deep-Learning-Techniken zum Bestimmen einer kontextbezogenen Lesereihenfolge in einem Dokument Download PDF

Info

Publication number
DE102018006481A1
DE102018006481A1 DE102018006481.7A DE102018006481A DE102018006481A1 DE 102018006481 A1 DE102018006481 A1 DE 102018006481A1 DE 102018006481 A DE102018006481 A DE 102018006481A DE 102018006481 A1 DE102018006481 A1 DE 102018006481A1
Authority
DE
Germany
Prior art keywords
text
pass
network
reading order
character
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018006481.7A
Other languages
English (en)
Inventor
Shagun Sodhani
Kartikay Garg
Balaji Krishnamurthy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Inc filed Critical Adobe Inc
Publication of DE102018006481A1 publication Critical patent/DE102018006481A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/416Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Multimedia (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Character Discrimination (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Beschrieben werden Techniken zum Bestimmen einer Lesereihenfolge in einem Dokument. Es werden ein aktueller markierter Textdurchlauf (R1), ein RECHTS-Textdurchlauf (R1) und ein UNTERHALB-Textdurchlauf (R3) generiert. Der mit R1 markierte Textdurchlauf wird von einem ersten LSTM verarbeitet, der mit R2 markierte Textdurchlauf wird von einem zweiten LSTM verarbeitet, und der mit R3 markierte Textdurchlauf wird von einem dritten LSTM verarbeitet, wobei jedes der LSTMs eine jeweilige interne Darstellung (R1', R2' und R3') generiert. Neben den LSTMs können auch andere Deep-Learning-Werkzeuge genutzt werden. Die jeweiligen internen Darstellungen R1', R2' und R3' werden verkettet oder auf andere Weise zu einer Vektor- oder Tensordarstellung kombiniert und für ein Klassifizierernetzwerk bereitgestellt, das eine vorhergesagte Markierung für einen nächsten Textdurchlauf als RECHTS, UNTERHALB oder EOS in der Lesereihenfolge des Dokumentes generiert.

Description

  • Gebiet der Offenbarung
  • Die vorliegende Offenbarung betrifft Techniken zum Verarbeiten von Dokumenten und insbesondere Techniken zum Bestimmen der Lesereihenfolge von Dokumenten.
  • Hintergrund
  • Die übliche Nutzung der Digitalisierung eines Papierdokumentes oder Formulars und der Umwandlung desselben in ein adaptives oder auswertbares Dokument bringt vielerlei Probleme mit sich. Das bloße Scannen eines Dokumentes ist nicht ausreichend, da hierdurch lediglich eine „Bildversion“ des Dokumentes bereitgestellt wird und eine weitere Verarbeitung notwendig ist, um Aufgaben wie Strukturextraktion und Textextraktion durchzuführen. Für den Sonderfall der Textextraktion besteht die einfachste Lösung in der Durchführung eines OCR-Prozesses (Optical Character Recognition OCR, optische Schriftzeichenerkennung) an dem gescannten Dokument und der Speicherung des erkannten textartigen Contents.
  • Diese einfache Lösung hat jedoch mehrere erhebliche Nachteile. Insbesondere umfasst ein allgemeines Dokument Sätze, Absätze, Überschriften, Bilder, Tabellen und andere Elemente, die über eine Anzahl von Reihen und Spalten beliebig verteilt sind. Ein natürliches Problem, das beim Zerlegen gescannter Dokumente auftritt, ist daher das Bestimmen der richtigen Lesereihenfolge des Dokumentes. Ein menschlicher Leser kann beim Lesen eines Dokumentes die richtige Lesereihenfolge in dem Dokument auf natürliche Weise herleiten, da ein menschlicher Leser den Kontext des Dokumentes erkennt, wodurch er die nächste Richtung der Lesereihenfolge auf Grundlage des aktuellen Punktes, bis zu dem er im Dokument gelesen hat, herleiten kann. Eine Rechenvorrichtung ist selbstredend nicht für diesen Typ von Herleitung ausgelegt, der es ihr ermöglichen würde, die richtige Lesereihenfolge eines Dokumentes zu bestimmen. Da Dokumente üblicherweise in mehreren Spalten und Reihen angeordnet sind, ist die Lesereihenfolge eines Dokumentes nicht offensichtlich, und das Extrahieren der Lesereihenfolge eines Dokumentes ist nicht ohne Weiteres als Satz von Regeln, die eine Rechenvorrichtung beachten soll, kodifizierbar. Ein OCR-System kann die richtige Lesereihenfolge eines Dokumentes beispielsweise nicht bestimmen. Es bedarf vielmehr einer gewissen Intelligenz, um die richtige Lesereihenfolge des Dokumentes zu verstehen, damit die richtige Lesereihenfolge auch in der digitalen Version erhalten bleiben kann.
  • Einer der spezifischen Fälle des Zerlegens gescannter Dokumente ist das Analysieren von Papierformularen und das sodann erfolgende Umwandeln derselben in digitale Form. Die Lesereihenfolge ist wichtig, da ein kritischer Aspekt bei der Schaffung eines auswertbaren Dokumentes aus einem gescannten Dokument das Beibehalten der Lesereihenfolge des Textes in den verschiedenen Teilen des Dokumentes ist, und zwar so, wie es auch für die Papierform gilt. Herkömmliche Lösungen versuchen, dieses Problem unter Nutzung von optischen Modalitäten zu lösen, was bedeutet, dass sie nur ein Formular als Bild verarbeiten. Hierbei wird der Text, der in das Formular geschrieben ist, nicht explizit berücksichtigt, wodurch die wesentliche Information, die zum Erhalten des Kontextes des Formulars erforderlich ist, verlorengeht, wodurch es wiederum unmöglich wird, die richtige Lesereihenfolge in dem Formular während des Zerlegens beizubehalten. Im Ergebnis gehen herkömmliche Lösungen zur Bestimmung der Lesereihenfolge eines Dokumentes heuristisch von einer Lesereihenfolge von links nach rechts und von oben nach unten aus. Die heuristische Lösung versagt jedoch bereits in einfachen gängigen Fällen, in denen ein Dokument beispielsweise ein Spaltenlayout aufweist.
  • Eine weitere Lösung zur Beibehaltung der Lesereihenfolge von Text in den verschiedenen Teilen eines Dokumentes ist der Einsatz eines n-Gramm-Sprachmodells zum Extrahieren relevanter Merkmale, die in ein Modell eingespeist werden. Alternativ kann ein einfaches RNN-Modell (Recurrent Neural Network RNN, rekurrentes neuronales Netzwerk) eingesetzt werden, um Merkmale zu detektieren und zu extrahieren. Diese Lösungen weisen jedoch einige Einschränkungen auf. Zunächst ist bei der Bestimmung der richtigen Lesereihenfolge wichtig, den gesamten bislang in dem Formular betrachteten Text kontextbezogen zu modellieren. Obwohl RNN-sprachbasierte Modelle zur Ausarbeitung von n-Gramm-Modellen mit Blick auf die Erfassung von Langzeitabhängigkeiten bekannt sind, bringen Sprachmodelllösungen erhebliche Einschränkungen mit sich. Insbesondere muss bei einem auf Wortebene gegebenen Modell der Text tippfehlerfrei sein, da die auf Wortebene gegebenen Merkmale ansonsten nicht richtig extrahiert werden. Insbesondere wenn Text unter Nutzung eines optischen Systems, so beispielsweise eines OCR-Systems, extrahiert wird, ist die Textextraktion selbst nicht vollkommen, und es treten Tippfehler in Form fehlender Schriftzeichen, auseinandergerissener Worte und dergleichen mehr auf, was beim Leistungsvermögen der Bestimmung der Lesereihenfolge insgesamt zu Fehlern führt.
  • Es ist mithin ein beträchtliches ungelöstes Problem bei der automatischen und robusten Bestimmung der Lesereihenfolge eines Dokuments vorhanden.
  • Figurenliste
    • 1 ist ein Flussdiagramm für einen Prozess zum Bestimmen einer Lesereihenfolge in einem Dokument entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 2a zeigt einen Textdurchlauf und einen Textblock entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 2b zeigt den Betrieb eines Textblockanalysemoduls, das Teil eines Dokumentlesereihenfolgeverarbeitungssystems entsprechend einer Ausführungsform der vorliegenden Offenbarung sein kann.
    • 2c zeigt R1-, R2- und R3-Durchläufe sowie ein EOS entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 2d zeigt eine alternative Identifikation eines R3-Textdurchlaufes in Bezug auf einen aktuellen R1-Textdurchlauf entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 2e zeigt verschiedene Beispiele für R1-, R2- und R3-Textdurchläufe wie auch ein EOS entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 3a ist ein Blockdiagramm zur Darstellung des Betriebs eines Dokumentlesereihenfolgeverarbeitungssystems entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 3b ist ein Flussdiagramm zur Darstellung des Betriebs eines Textdurchlaufmarkierungsmoduls entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 3c ist ein Flussdiagramm zur Darstellung des Betriebs eines Textblockanalysemoduls entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 3d ist ein Blockdiagramm eines Lesereihenfolgevorhersagenetzwerkes zum Durchführen eines Dokumentlesereihenfolgevorhersageprozesses entsprechend einer Ausführungsform der vorliegenden Erfindung.
    • 4a zeigt den Betrieb eines rekurrenten neuronalen Netzwerkes entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 4b zeigt ein detaillierteres Beispiel für den Betrieb eines RNN, das der analytischen Klarheit halber zerlegt ist.
    • 4c zeigt den Betrieb eines LSTM entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 4d zeigt eine Detailansicht eines Vergessensgatters (forget gate) entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 4e zeigt eine erste Phase des Betriebs eines Eingabegatters entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 4f zeigt eine zweite Phase des Betriebs eines Eingabegatters entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 4g zeigt den Betrieb eines Ausgabegatters entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 5a zeigt den Trainingsbetrieb für ein zustandsunabhängiges Netzwerk entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 5b zeigt den Trainingsbetrieb für ein zustandsabhängiges Netzwerk entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 6 zeigt ein exemplarisches Dokument, bei dem eine Lesereihenfolge entsprechend einer Ausführungsform der vorliegenden Offenbarung bestimmt werden soll.
    • 7a zeigt ein exemplarisches Rechensystem, das ein interaktives Sprachbearbeitungssystem entsprechend Ausführungsformen der vorliegenden Offenbarung ausführt.
    • 7b zeigt eine exemplarische in eine Netzwerkumgebung erfolgende Integration eines interaktiven Sprachbearbeitungssystems entsprechend einer Ausführungsform der vorliegenden Offenbarung.
  • Detailbeschreibung
  • Die vorliegende Offenbarung beschreibt computerimplementierte Techniken zum Bestimmen der Lesereihenfolge in einem Dokument. Im Sinne der vorliegenden Offenbarung bezeichnet der Begriff „Lesereihenfolge“ (reading order) die korrekte Sequenz von Schriftzeichen, die die in natürlicher Sprache gegebene Reihenfolge, in der ein Dokument von einem Menschen gelesen wird, definiert.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird die Lesereihenfolge eines Dokumentes unter Nutzung eines auf Schriftzeichenebene gegebenen Modells bestimmt, das erhebliche Verbesserungen hinsichtlich Genauigkeit und Robustheit gegenüber herkömmlichen Lösungen, die ein auf Wortebene gegebenes Modell einsetzen, aufweist. Entsprechend einigen Ausführungsformen der vorliegenden Offenbarung werden LSTM-RNNs (Long Short Term Memory LSTM, Recurrent Neural Networks RNNs) unter Nutzung eines zugrundeliegenden auf Schriftzeichenebene gegebenen Modells trainiert, das Langzeitabhängigkeiten modellieren kann. Die Nutzung eines auf Schriftzeichenebene gegebenen Modells erfordert keine wohldefinierten Worte und vermeidet daher die zahlreichen Nachteile, die vorstehend im Zusammenhang mit auf Wortebene gegebenen Modellen angesprochen worden sind.
  • Entsprechend einigen Ausführungsformen der vorliegenden Offenbarung kann die Lesereihenfolge eines Dokumentes dadurch bestimmt werden, dass etwas, das hier als „Textdurchläufe“ (text runs) bezeichnet wird, „Textblöcken“ (text blocks) zugeordnet wird. Im Sinne der vorliegenden Diskussion umfasst der Begriff „Textdurchlauf“ eine endliche Sequenz von Schriftzeichen. Der Begriff „Textblock“ umfasst eine endliche Sequenz von Textdurchläufen und kann effektiv als Satz verstanden werden. Eine detailliertere Beschreibung der Begriffe „Textdurchlauf“ und „Textblock“ folgt nachstehend anhand 2a-2b.
  • Entsprechend einigen Ausführungsformen der vorliegenden Offenbarung wird ein aktueller Kontext bei der Lesereihenfolge eines Dokumentes dadurch aufrechterhalten, dass ein aktueller Textdurchlauf, der als R1-Textdurchlauf bezeichnet wird, verfolgt wird. Der Textdurchlauf unmittelbar rechts von dem R1-Textdurchlauf wird als R2-Textdurchlauf (RECHTS) bezeichnet. Auf ähnliche Weise wird der Textdurchlauf unmittelbar unterhalb von dem R1-Textdurchlauf als R3-Textdurchlauf (UNTERHALB) bezeichnet. Diese Textdurchläufe können dynamisch mit R1, R2 und R3 markiert werden. Die spezielle Markierung EOS (End Of Statement, Ende der Aussage) kann genutzt werden, um das Ende eines Textblocks (das heißt das Ende eines Satzes) anzugeben.
  • Entsprechend einer Ausführungsform können diese Textdurchläufe und ihre Markierung als R1, R2 und R3 durch einen optischen Prozess, so beispielsweise einen OCR-Prozess, und einen Textdurchlaufmarkierungsprozess generiert werden. Entsprechend einer derartigen Ausführungsform kann der mit R1 markierte Textdurchlauf von einem ersten RNN (das entsprechend einigen Ausführungsformen ein LSTM sein kann) verarbeitet werden, das unter Nutzung eines zustandsabhängigen Modells (stateful model) (nachstehend noch beschrieben) trainiert wird, während die mit R2 und R3 markierten Textdurchläufe von einem zweiten RNN (das entsprechend einigen Ausführungsformen ein LSTM sein kann) verarbeitet werden können, das unter Nutzung eines zustandsunabhängigen Modells (stateless model) (nachstehend noch beschrieben) trainiert wird.
  • Jedes der RNNs/LSTMs generiert eine jeweilige interne Darstellung (R1', R2' und R3'), die den internen Zustand des RNN/LSTM umfassen kann, auf Grundlage der jeweiligen Eingabe R1, R2 und R3. Sodann werden die jeweiligen internen Darstellungen R1', R2' und R3 entsprechend einer bestimmten Ausführungsformen verkettet oder auf andere Weise zu einer Vektor- oder Tensordarstellung kombiniert und für ein Klassifizierernetzwerk bereitgestellt, das eine Vorhersagemarkierung zur Vorhersage dessen generiert, ob der nächste Textdurchlauf rechts ist (RECHTS/R2), unterhalb ist (UNTERHALB/R3) oder ob ein EOS (End OF Statement) in der Lesereihenfolge des Dokumentes vorhergesagt wird. Diese Vorhersagemarkierungen können von einem Textblockanalysemodul genutzt werden, um bestimmte Textdurchläufe zu einer Sequenz innerhalb eines Textblocks und einer Gesamtsequenz von Textblöcken zu gruppieren, wobei die Gesamtheit dieser Entitäten die Lesereihenfolge des Dokuments umfasst.
  • Herleitungszeitverarbeitung
  • 1 ist ein Flussdiagramm eines Prozesses zum Bestimmen der Lesereihenfolge in einem Dokument entsprechend einer Ausführungsform der vorliegenden Offenbarung. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kam der in 1 gezeigte Prozess von einem Dokumentlesereihenfolgeverarbeitungssystem durchgeführt werden, das ein Lesereihenfolgevorhersagenetzwerk, das selbst verschiedene neuronale Netzwerke (nachstehend noch erläutert) umfasst, zu Herleitungszeit beinhaltet. Eine exemplarische Struktur eines Dokumentlesereihenfolgeverarbeitungssystems wird nachstehend beschrieben. Techniken zum Trainieren der verschiedenen neuronalen Netzwerke, so beispielsweise des Lesereihenfolgevorhersagenetzwerkes, das dem in 1 gezeigten Dokumentlesereihenfolgeverarbeitungssystem zugeordnet ist, werden nachstehend beschrieben. Es wird bei der Erläuterung davon ausgegangen, dass das Dokument analysiert werden soll, um die Lesereihenfolge des textartigen Contents in dem Dokument zu bestimmen.
  • Es sollte im Sinne der vorliegenden Diskussion einsichtig sein, dass kurzgesagt ein Dokumentlesereihenfolgeverarbeitungssystem eine Sequenz von Textdurchläufen als Eingabe (beispielsweise von einer OCR) empfangen kann und eine Ausgabe als Lesereihenfolge für die Textdurchläufe bereitstellen kann. Als zwischengeschalteter Betriebsvorgang kann das Dokumentlesereihenfolgeverarbeitungssystem (nachstehend noch beschrieben) als Ausgabe eine Zuordnung zwischen Textdurchläufen und Textblöcken bereitstellen. Eine Detailbeschreibung der Textdurchläufe und Textblöcke wie auch der zugeordneten exemplarischen Datenstrukturen erfolgt nachstehend. Des Weiteren bezeichnen, wie vorstehend kurz beschrieben worden ist, die Markierungen/Variablen R1, R2, R3 und EOS einen aktuellen Textdurchlauf, den Textdurchlauf rechts von dem aktuellen Textdurchlauf, den Textdurchlauf unterhalb von dem aktuellen Textdurchlauf beziehungsweise das Ende der Aussage/des Satzes (End OF Statement).
  • Der Prozess beginnt bei 102. Bei 128 wird ein neuer aktueller Textblock erstellt/initiiert. Bei 116 wird bestimmt, ob sämtliche Textdurchläufe analysiert worden sind. Ist dem so („Ja“-Zweig bei 116), so endet der Prozess bei 118. Ist dem nicht so („Nein“-Zweig bei 116), so wird die Variable R1 bei 126 entweder auf Grundlage des Textdurchlaufes, der der vorherigen Klassifiziererausgabe zugeordnet ist, oder in einem Fall, in dem die vorherige Klassifiziererausgabe EOS gewesen ist und keine vorherige Klassifiziererausgabe generiert worden ist, auf Grundlage des anfänglichen Textdurchlaufes in dem Dokument eingestellt. Bei 104 werden Textdurchläufe in dem Dokument, die R2 und R3 entsprechen, empfangen. Im Allgemeinen können, wie nachstehend noch offenbar wird, die Textdurchläufe, die R1, R2 und R3 entsprechen, von einem OCR-System generiert werden.
  • Bei 106 wird der Textdurchlauf, der R2 entspricht, durch etwas verarbeitet, das hier als zustandsunabhängiges Netzwerk bezeichnet wird, um eine interne Darstellung des R2-Textdurchlaufes R2 zu generieren. Details zu exemplarischen Netzwerken sowie einem zustandsunabhängigen Modell werden nachstehend noch beschrieben. Wie nachstehend noch offenbar wird, kann ein zustandsunabhängiges Netzwerk ein RNN/LSTM umfassen, das unter Nutzung eines zustandsunabhängigen auf Schriftzeichenebene gegebenen Modells trainiert werden kann, wobei der interne Zustand des Netzwerkes beispielsweise beim Verarbeiten eines Batches von Schriftzeichen periodisch zurückgesetzt wird. Im Sinne der vorliegenden Diskussion sollte einsichtig sein, dass die verschiedenen Netzwerke, die zur Verarbeitung genutzt werden (das heißt RNNs/LSTMs), einen internen Zustand oder eine interne Darstellung beibehalten können. Um den Begriff „zustandsunabhängig“ im Kontext eines zustandsunabhängigen auf Schriftzeichenebene gegebenen Modells weiter zu erläutern, bezeichnet dieses Konzept den Umstand, dass während eines Trainingsprozesses der interne Zustand des Netzwerkes (RNN/LSTM) bei jedem Trainingsbatch oder in einem anderen Rhythmus (cadence) zurückgesetzt werden kann, weshalb das Netzwerk keinen Langzeitzustand beibehält. Die Nutzung eines auf Schriftzeichenebene gegebenen Modells erfordert keine wohldefinierten Worte und vermeidet daher viele Nachteile, die vorstehend im Zusammenhang mit auf Wortebene gegebenen Modellen diskutiert worden sind. Im Sinne der vorliegenden Diskussion soll der Begriff „zustandsunabhängig“ daher in einem solchen Kontext verstanden werden, dass der Begriff „zustandsunabhängig“ eine bestimmte methodische Vorgehensweise beim Trainieren des Netzwerkes (RNN/LSTM) und nicht dasjenige bezeichnet, dass das Netzwerk (RNN/LSTM) eine Zustandsinformation nicht beibehält oder beibehalten kann. Details im Zusammenhang mit der Struktur und dem Betrieb eines LSTM sind nachstehend noch angegeben. Sodann wird bei 106 der Textdurchlauf R2 durch ein erstes zustandsunabhängiges Netzwerk verarbeitet, um eine interne Darstellung des R2-Textdurchlaufes zu generieren, die als R2' bezeichnet wird und die entsprechend einigen Ausführungsformen einem internen Zustand des ersten zustandsunabhängigen Netzwerkes (RNN/LSTM) entspricht.
  • Auf analoge Weise wird bei 108 der Textdurchlauf R3 durch ein zweites zustandsunabhängiges Netzwerk (RNN/LSTM) verarbeitet, um eine interne Darstellung R3 zu generieren. Bei 110 wird der Textdurchlauf R1 durch ein zustandsunabhängiges Netzwerk verarbeitet, um eine interne Darstellung R1' zu generieren. Wie nachstehend noch offenbar wird, kann ein zustandsabhängiges Netzwerk ein RNN/LSTM umfassen, das unter Nutzung eines zustandsabhängigen auf Schriftzeichenebene gegebenen Modells trainiert wird, wobei der interne Zustand des Netzwerkes über Batches von Schriftzeichen hinweg erhalten bleibt. Gleichwohl kann, wie nachstehend noch beschrieben wird, das zustandsabhängige Netzwerk / zustandsabhängige Modell bei Detektion eines EOS, das das Ende eines Textblocks signalisiert, eine Zurücksetzung des Zustandes erfahren. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann das Netzwerk, das zur Verarbeitung des R1-Textdurchlaufes genutzt wird, auch ein LSTM sein. Der Begriff „zustandsabhängig“ bezeichnet in diesem Kontext den Umstand, dass während des Trainings im Gegensatz zu den beiden zustandsunabhängigen Netzwerken, die zur Verarbeitung der R2- und R3-Textdurchläufe genutzt werden, ein interner Zustand des Netzwerkes nicht zurückgesetzt wird und hierdurch eine Zustandsinformation über eine beliebige Schriftzeichensequenz hinweg erhalten bleibt. Der Zustand des zustandsabhängigen Netzwerkes kann jedoch am Ende eines Textblocks (das heißt bei Detektion eines EOS) zurückgesetzt werden.
  • Bei 112 werden die Darstellungen der internen Zustände für die beiden zustandsunabhängigen Netzwerke zur jeweiligen Verarbeitung der R2- und R3-Textdurchläufe (R2' und R3') und des internen Zustandes des zustandsabhängigen Netzwerkes zur Verarbeitung des R1-Durchlaufes (R1') zu einer verketteten Darstellung (Vektor oder Tensor) verkettet. Die internen Zustandsdarstellungen von R1', R2' und R3' können Vektoren/Tensoren beliebiger Länge sein, deren allgemeine Form auf dem Gebiet der Verarbeitung mittels Deep-Neuronalnetzwerken bekannt ist. Die verkettete Darstellung wird hier als R' = [R1'R2'R3'] bezeichnet.
  • Bei 114 wird die verkettete Darstellung R' = [R1'R2'R3'] durch ein Klassifizierernetzwerk verarbeitet, um eine der Markierungen R2, R3 oder EOS vorherzusagen, wodurch die vorhergesagte Richtung des nächsten Textdurchlaufes in der Lesereihenfolge des Dokumentes oder ein EOS, das das Ende eines Textblocks signalisiert, angegeben werden. Die Struktur eines exemplarischen Klassifizierernetzwerkes wird nachstehend noch beschrieben, kann jedoch allgemein ein vollständig verbundenes Deep-Neuronalnetzwerk („DNN“) mit Softmaxausgabe umfassen. Das Klassifizierernetzwerk kann Vorhersagemarkierungen von R2, R3 oder EOS generieren, die einen vorhergesagten nächsten Textdurchlauf als RECHTS oder UNTERHALB angeben oder ein EOS (das heißt das Ende eines Textblocks) vorhersagen. Bei 130 geht, wenn die EOS-Markierung vorhergesagt wird („Ja“-Zweig bei 130), der Ablauf zu 128 über, wo ein neuer aktueller Textblock generiert wird. Dies bedeutet, dass der Klassifizierer ein Ende der Aussage (des Satzes) (End Of Statement) vorhergesagt hat, weshalb beliebige nachfolgende Textdurchläufe einem neuen Textblock zugeordnet werden sollen. Der Ablauf geht sodann zu 116 über.
  • Ist demgegenüber bei 130 kein EOS vorhergesagt worden („Nein“-Zweig bei 130), so bedeutet dies, dass der Klassifizierer eine der R2- oder R3-Markierungen vorhergesagt hat. Dies bedeutet wiederum, dass der nächste Textdurchlauf in der Lesereihenfolge entweder RECHTS oder UNTERHALB ist. In diesem Fall wird der Textdurchlauf, der jeweils der Vorhersagemarkierung (entweder R2 oder R3) zugeordnet ist, dem aktuellen Textblock zugeordnet. Der Ablauf geht sodann bei 116 weiter, wo bestimmt wird, ob sämtliche Textdurchläufe analysiert worden sind.
  • Textdurchlauf und Textblöcke
  • 2a zeigt einen Textdurchlauf und einen Textblock entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 2a gezeigt ist, kann ein Textdurchlauf 202 eine Sequenz von Schriftzeichen beliebiger Länge umfassen, wobei die Schriftzeichen durch die in 2a gezeigten Blöcke bezeichnet werden. Wie nachstehend noch beschrieben wird, kann ein OCR-System oder Modul 206 oder ein anderer optischer Verarbeitungsalgorithmus entsprechend einer Ausführungsform der vorliegenden Offenbarung die Textdurchläufe 202 aus einem Dokument unter Nutzung einer optischen Modalität generieren. Insbesondere kann der Textdurchlauf 202 entsprechend einer Ausführungsform der vorliegenden Offenbarung eine inkrementelle Ausgabe eines OCR-Systems 206 umfassen, die eine Sequenz von Schriftzeichen ist. Die Anzahl von Schriftzeichen in der inkrementellen Ausgabe des OCR-Systems 206 muss nicht fest, kann jedoch oben oder unten beschränkt oder alternativ auch beliebig sein. Entsprechend alternativen Ausführungsformen kann ein Dokument bereits in einem textbasierten Format gegeben sein, weshalb ein OCR oder ein anderes optisches System gegebenenfalls nicht erforderlich ist.
  • Des Weiteren kann der Textblock 204, wie in 2a gezeigt ist, einen Satz von Textdurchläufen 202(1)-202(N), die in einer bestimmten Sequenz angeordnet sind, umfassen. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein Textblock 204 einem Satz entsprechen. Dies bedeutet, dass ein Textblock 204 (Satz) als Sequenz von Textdurchläufen (202(1)-202(N)) in einer definiten sequenziellen Anordnung gedeutet werden kann. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann die EOS-Markierung, die von einem Klassifizierer vorhergesagt wird, das Ende eines Textblocks 204 und den Beginn eines weiteren festlegen. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann der Textblock 204 einem Satz entsprechen.
  • 2b zeigt den Betrieb eines Textblockanalysemoduls, das Teil eines Dokumentlesereihenfolgeverarbeitungssystems entsprechend einer Ausführungsform der vorliegenden Offenbarung sein kann. Das Textblockanalysemodul 210 kann eine Zuordnung zwischen verschiedenen Textdurchläufen, die beispielsweise durch ein OCR-System 206 generiert werden, und bestimmten Textblöcken 204(1)-204(M) durchführen. Wie vorstehend erwähnt worden ist, kann ein Dokument entsprechend alternativen Ausführungsformen bereits in einem textbasierten Format gegeben sein, weshalb eine OCR oder ein anderes optisches System nicht erforderlich sind. Sprachinformation 208 kann beliebige Daten oder Information umfassen, die eine Lesereihenfolge einer bestimmten Sprache, für die eine Lesereihenfolgeanalyse durchgeführt werden soll, bezeichnen. Im Englischen läuft Text beispielsweise von links nach rechts und von oben nach unten. Andere Sprachen können jedoch gegebenenfalls auch eine andere inhärente Lesereihenfolge nutzen. Bei Sprachen wie Arabisch läuft die Lesereihenfolge beispielsweise von rechts nach links und von oben nach unten. Entsprechend einigen Ausführungsformen kann die Lesereihenfolge anstelle dessen, dass sie von links nach rechts und von oben nach unten definiert ist, auch als „Horizontalleserichtung“ und „Vertikalleserichtung“ definiert werden. Sprachinformation 208 kann von dem Textblockanalysemodul 210 genutzt werden, um eine Textblockanalyse durchzuführen, und kann beispielsweise angeben, dass eine bestimmte Sprache, so beispielsweise Englisch, eine inhärente von links nach rechts und von oben nach unten laufende Lesereihenfolge aufweist.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann das Textblockanalysemodul 210 mehrere Textdurchläufe 202(1)-202(N), die beispielsweise von dem OCR-System 206 generiert werden, empfangen und jeden der empfangenen Textdurchläufe 202(1)-202(N) einem bestimmten Textblock 204(1)-204(N) zuordnen. Der Detailbetrieb des Textblockanalysemoduls 210 wird anhand 3c beschrieben. Im Sinne der vorliegenden Diskussion ist ausreichend zu erkennen, dass das Textblockanalysemodul 210 einen aktuellen Textblock 204 beibehalten und empfangene Textdurchläufe 202 dem aktuellen Textblock zuordnen kann, bis eine EOS-Vorhersagemarkierung von einem Klassifizierer vorhergesagt wird, wodurch die Lesereihenfolge eines Dokumentes ermittelt wird.
  • 2c zeigt die R1-, R2- und R3-Textdurchläufe und ein EOS entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 2c gezeigt ist, kann ein Textdurchlauf 202 ein R2- oder R3-Textdurchlauf 202 in Bezug auf einen aktuellen Textdurchlauf R1 202 sein. Dies bedeutet, dass dann, wenn R1 einen aktuellen Textdurchlauf 202 identifiziert, ein R2-Textdurchlauf 202 einen Textdurchlauf 202 rechts (RECHTS) von dem R1-Textdurchlauf 202 umfassen kann. Des Weiteren kann ein R3-Textdurchlauf 202 einen Textdurchlauf unterhalb (UNTERHALB) von dem aktuellen Textdurchlauf R1 202 umfassen.
  • 2d zeigt eine alternative Identifikation eines R3-Textdurchlaufes in Bezug auf einen aktuellen R1-Textdurchlauf entsprechend einer Ausführungsform der vorliegenden Offenbarung. Das in 2d gezeigte Szenario kann auftreten, wenn der aktuelle Textdurchlauf R1 202 am unteren Ende einer Spalte eines Dokumentes ist. In diesem Fall ist, wie in 2d gezeigt ist, kein R3-Textdurchlauf 202 (UNTERHALB) in der aktuellen Spalte vorhanden. Um hiermit umzugehen, kann der Textdurchlauf 202 am oberen Ende der nächsten Spalte als R3-Textdurchlauf 202 in Bezug auf den aktuellen Textdurchlauf R1 202 behandelt werden.
  • 2e zeigt verschiedene Beispiele für R1-, R2- und R3-Textdurchläufe wie auch ein EOS entsprechend einer Ausführungsform der vorliegenden Offenbarung.
  • Dokumentlesereihenfolgeverarbeitungssystem
  • 3a ist ein Blockdiagramm zur Darstellung des Betriebs eines Dokumentlesereihenfolgeverarbeitungssystems entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 3a gezeigt ist, kann das Dokumentlesereihenfolgeverarbeitungssystem 320 des Weiteren ein Textdurchlaufmarkierungsmodul 322, ein Lesereihenfolgevorhersagenetzwerk 300 und ein Textblockanalysemodul 210 umfassen.
  • Ein Dokument 328 kann von dem OCR-System 206 verarbeitet werden, um mehrere Textdurchläufe 202 zu generieren. Obwohl 3a nur einen einzigen Textdurchlauf 202 zeigt, sollte einsichtig sein, dass das OCR-System 206 eine beliebige Anzahl von Textdurchläufen 202 entweder im Batch- oder Streaming-Modus generieren und diese für das Dokumentlesereihenfolgeverarbeitungssystem 320 bereitstellen kann. Wie vorstehend bereits diskutiert worden ist, kann der Textdurchlauf 202 eine beliebige Anzahl von Schriftzeichen in einer Sequenz beinhalten. Des Weiteren kann die Anzahl der Schriftzeichen in jedem Textdurchlauf 202 über Iterationen des OCR-Systems 206 hinweg variieren.
  • Das Textdurchlaufmarkierungsmodul 322 kann das Markieren eines jeden Textdurchlaufes 202 mit einer bestimmten Markierung (das heißt R1, R2, R3, EOS) auf Grundlage einer Ausgabe des Lesereihenfolgevorhersagenetzwerkes 300 durchführen, um markierte Textdurchläufe 202(1)-202(3) zu generieren. Insbesondere kann das Textdurchlaufmarkierungsmodul 322, wie nachstehend noch anhand 3b beschrieben wird, einen aktuellen R1-Textdurchlauf 202 beibehalten. Es kann sodann einen RECHTEN (R2) Textdurchlauf 202 in Bezug auf den aktuellen R1-Textdurchlauf 202 als den Textdurchlauf 202 unmittelbar rechts von dem aktuellen Textdurchlauf R1 202 bestimmen. Auf ähnliche Weise kann es einen UNTERHALB befindlichen (R3) Textdurchlauf 202 in Bezug auf den aktuellen R1-Textdurchlauf 202 als den Textdurchlauf 202 unmittelbar unterhalb von dem aktuellen Textdurchlauf R1 202 bestimmen. Auf Grundlage einer Vorhersagemarkierung 340, die von dem Lesereihenfolgevorhersagenetzwerk 300 empfangen wird und die den nächsten Textdurchlauf 202 angibt, kann das Textdurchlaufmarkierungsmodul 322 den aktuellen Textdurchlauf R1 202 in Abhängigkeit von der Vorhersagemarkierung 340 entweder auf den R2-Textdurchlauf 202 oder den R3-Textdurchlauf aktualisieren. Ist die Vorhersagemarkierung 340 ein EOS, so kann das Textdurchlaufmarkierungsmodul 322 auch den aktuellen Textdurchlauf R1 aktualisieren.
  • Man beachte, dass die Textdurchläufe 202, die in das Textdurchlaufmarkierungsmodul 322 eingespeist werden (beispielsweise 202), gegebenenfalls nicht markiert sind, während die Textdurchläufe 202(1)-202(3) an der Ausgabe des Textdurchlaufmarkierungsmoduls 322 entweder als R1-Textdurchlauf 202, R2-Textdurchlauf 202 oder R3-Textdurchlauf 202 markiert sind. Die markierten Textdurchläufe 202(1)-202(3) können sodann von dem Lesereihenfolgevorhersagenetzwerk 300 empfangen werden, wo sie von dem Lesereihenfolgevorhersagenetzwerk 300 verarbeitet werden, um vorherzusagen, ob der nächste Textdurchlauf 202 RECHTS (R2), UNTERHALB (R3) ist oder anstatt dessen ein EOS vorhergesagt wird.
  • Wie in 3a gezeigt ist, kann das Lesereihenfolgevorhersagenetzwerk 300 die markierten Textdurchläufe 202(1)-202(3) empfangen und als Ausgabevorhersagemarkierung 340 generieren, die wiederum für das Textdurchlaufmarkierungsmodul 322 und das Textblockanalysemodul 210 bereitgestellt werden kann. Entsprechend einer Ausführungsform der vorliegenden Offenbarung gibt die Vorhersagemarkierung 340 eine Vorhersage dessen an, ob der nächste Textdurchlauf 202 in der Lesereihenfolge RECHTS (R2), UNTERHALB (R3) ist oder ob er ein EOS ist. Die Struktur und der Betrieb des Lesereihenfolgevorhersagenetzwerkes 300 werden nachstehend beschrieben. Zu Zwecken der vorliegenden Diskussion ist ausreichend zu erkennen, dass das Lesereihenfolgevorhersagenetzwerk 300 eine beliebige Rechenstruktur umfassen kann, die eine Herleitung im Zusammenhang mit einer Vorhersage einer Markierung in Bezug auf einen nächsten Textdurchlauf 202 (das heißt die Richtung RECHTS, UNTERHALB oder EOS) auf Grundlage der empfangenen markierten Textdurchläufe 202(1)-202(3) vornehmen kann. Eine exemplarische Struktur eines Lesereihenfolgevorhersagenetzwerkes 300 wird nachstehend anhand 3d beschrieben.
  • Das Textblockanalysemodul 210 kann die Vorhersagemarkierung 340 und die markierten Textdurchläufe 202(1)-202(3) dafür nutzen, die Textdurchläufe 202(1)-202(3) bestimmten Textblöcken 204 (das heißt Sätzen) zuzuordnen, um die Dokumentlesereihenfolge 324 zu generieren. Entsprechend einer Ausführungsform der vorliegenden Offenbarung ist die Dokumentlesereihenfolge 324 eine geordnete Sequenz von Textdurchläufen 202, wo jeder Textdurchlauf 202 einem bestimmten Textblock 204 (das heißt Satz) zugeordnet ist.
  • 3b ist ein Flussdiagramm zur Darstellung des Betriebs eines Textdurchlaufmarkierungsmoduls entsprechend einer Ausführungsform der vorliegenden Offenbarung. Der in 3b gezeigte Prozess kann von dem in 3a gezeigten Textdurchlaufmarkierungsmodul 322 durchgeführt werden. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann das Textdurchlaufmarkierungsmodul 322 derart arbeiten, dass es von dem OCR-System 206 empfangene Textdurchläufe 202 markiert und den aktuellen R1-Textdurchlauf 202 auf Grundlage der Ausgabe aus dem Lesereihenfolgevorhersagenetzwerk 300 beibehält.
  • Wie in 3b gezeigt ist, wird der Prozess bei 380 initiiert. Bei 342 wird bestimmt, ob sämtliche Textdurchläufe 202 verarbeitet worden sind (das heißt, von dem OCR-System 206 empfangen worden sind). Ist dem so („Ja“-Zweig bei 342), so endet der Prozess bei 348. Ist dem nicht so („Nein“-Zweig bei 342), so geht der Ablauf zu 344 über, und es wird der aktuelle Textdurchlauf 202 gemeinsam mit einer entsprechenden Markierung R1 entweder zusammen mit dem Textdurchlauf 202 entsprechend R2 oder R3 (und der entsprechenden Markierung R2 oder R3) in Abhängigkeit von der Vorhersagemarkierung 304, die von dem Lesereihenfolgevorhersagenetzwerk 300 ausgegeben wird, ausgegeben.
  • Bei 346 wird der aktuelle R1-Textdurchlauf 202 auf Grundlage der Ausgabe des Klassifizierers aus dem Lesereihenfolgevorhersagenetzwerk 300 und insbesondere der Vorhersagemarkierung 340, die von dem Lesereihenfolgevorhersagenetzwerk 300 generiert wird, aktualisiert. Generiert das Lesereihenfolgevorhersagenetzwerk 300 beispielsweise eine Vorhersagemarkierung 340 als R2, so wird das aktuelle R1 auf den Textdurchlauf 202, der R2 zugeordnet ist (das heißt auf den Textdurchlauf 202, der RECHTS in Bezug auf den aktuellen Textdurchlauf R1 202 befindlich ist) eingestellt. Generiert das Lesereihenfolgevorhersagenetzwerk 300 auf ähnliche Weise eine Vorhersagemarkierung 340 als R3, so wird das aktuelle R1 auf den Textdurchlauf 202, der R3 zugeordnet ist (das heißt auf den Textdurchlauf, der UNTERHALB in Bezug auf den aktuellen Textdurchlauf R1 202 befindlich ist) eingestellt.
  • 3c ist ein Flussdiagramm zur Darstellung des Betriebs eines Textblockanalysemoduls entsprechend einer Ausführungsform der vorliegenden Offenbarung. Der Prozess wird bei 350 initiiert. Bei 352 wird ein neuer Textblock 204 erstellt. Bei 354 wird bestimmt, ob sämtliche Textdurchläufe 202 verarbeitet worden sind. Ist dem so („Ja“-Zweig bei 354), so endet der Prozess bei 348. Ist dem nicht so („Nein“-Zweig bei 354), so geht der Ablauf zu 356 über, und es wird ein neuer markierter Textdurchlauf 202 von dem Textdurchlaufmarkierungsmodul 322 empfangen. Bei 358 wird bestimmt, ob ein EOS detektiert worden ist (und zwar von dem Lesereihenfolgevorhersagenetzwerk 300). Ist dem nicht so („Nein“-Zweig bei 358), so geht der Ablauf zu 360 über, und der markierte Textdurchlauf 202, der bei 356 empfangen wird, wird dem aktuellen Textblock 204 zugeordnet. Ist dem so („Ja“-Zweig bei 358), so geht der Ablauf zu 352 über, und es wird ein neuer Textblock 204 erstellt.
  • 3d ist ein Blockdiagramm eines Lesereihenfolgevorhersagenetzwerkes zur Durchführung eines Dokumentlesereihenfolgevorhersageprozesses entsprechend einer Ausführungsform der vorliegenden Erfindung. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann das Lesereihenfolgevorhersagenetzwerk 300 von dem Dokumentlesereihenfolgeverarbeitungssystem 320 genutzt werden, um die Lesereihenfolge des Dokumentes 328 zu bestimmen. Wie in 3d gezeigt ist, kann das Lesereihenfolgevorhersagenetzwerk 300 das zustandsabhängige LSTM 312(1) und die zustandsunabhängigen LSTMs 312(2)-312(3), den Verkettungsblock 310 und das vollständig verbundene neuronale Netzwerk 314 umfassen. Wie vorstehend beschrieben worden ist, kann das zustandsabhängige Netzwerk 312(1) ein LSTM umfassen, das unter Nutzung eines zustandsabhängigen auf Schriftzeichenebene gegebenen Modells (nachstehend noch beschrieben) trainiert wird. Die Struktur und der Betrieb eines LSTM werden nachstehend noch beschrieben. Im Sinne der aktuellen Diskussion ist ausreichend zu wissen, dass ein LSTM eine Zellenstruktur umfassen kann, die einen internen und verborgenen Zustand beibehält und bei der die Ausgabe auf irgendeine Weise mit der Eingabe gekoppelt ist. Diese Art von Topologie ermöglicht, dass sich ein LSTM an sequenzielle Information „erinnert“. Der konzeptuellen Klarheit halber kann ein LSTM, wie beispielsweise in 312(1) dargestellt ist, zerlegt werden und umfasst eine Sequenz von sich wiederholenden Zellstrukturen 302(1) -302(M). Zusätzlich kann jede Zelle 302(1)-302(M) einen internen Zustand auf Grundlage der vergangenen Historie eines Eingabesignals beibehalten. Es sollte jedoch einsichtig sein, dass die zerlegte Darstellung lediglich der konzeptuellen Klarheit dient und die tatsächliche logische oder physische Struktur eines LSTM nicht darstellt.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung ist das Netzwerk 312(1) in dem Sinne zustandsabhängig, dass während eines Trainingsprozesses des auf Schriftzeichenebene gegebenen Modells dessen interner Zustand an einem beliebigen Punkt während des Trainings, außer es wird ein EOS detektiert, nicht zurückgesetzt wird. Das zustandsabhängige Netzwerk 312(1) kann daher eine interne Darstellung R1' 308 der gesamten Historie der Schriftzeichentrainingsdaten generieren. Wie nachstehend beschrieben wird, kann das zustandsabhängige Netzwerk 312(1) unter Nutzung eines auf Schriftzeichenebene gegebenen Modells trainiert werden. Dies bedeutet, dass das zustandsabhängige Netzwerk 312(1) dafür trainiert werden kann, das nächste Schriftzeichen in einer Sequenz von Eingabeschriftzeichen aus einem Corpus von Dokumenten 328 vorherzusagen. Insbesondere kann eine Hilfsausgabe 318, die von dem zustandsabhängigen Netzwerk 312(1) generiert wird, entsprechend einer Ausführungsform der vorliegenden Offenbarung eine Reihe von Schriftzeichenvorhersagen 370(1)-370(N) auf Grundlage der vergangenen Eingabe umfassen. Wie nachstehend noch beschrieben wird, können die Hilfsausgabe 370(N) und die Endausgabe 372 genutzt werden, um das zustandsabhängige Netzwerk 312(1) zu trainieren.
  • Die zustandsunabhängigen Netzwerke 312(2)-312(3) können ebenfalls LSTMs umfassen. Entsprechend einer Ausführungsform der vorliegenden Offenbarung nutzen die zustandsunabhängigen Netzwerke 312(2)-312(3) identische Modelle. Die zustandsunabhängigen Netzwerke 312(2) -312(3) sind in dem Sinne zustandsunabhängig, dass während des Trainings ein interner Zustand dieser Netzwerke periodisch, so beispielsweise nach jedem Trainingsbatch, zurückgesetzt werden kann. Entsprechend einer Ausführungsform der vorliegenden Offenbarung nutzen, wie nachstehend noch detaillierter beschrieben wird, die zustandsunabhängigen Netzwerke 312(2)-312(3) ein auf Schriftzeichenebene gegebenes Modell und werden dafür trainiert, ein nächstes Schriftzeichen in einer Eingabesequenz vorherzusagen. Im Gegensatz zu dem zustandsabhängigen Netzwerk 312(1) wird jedoch während des Trainings ein interner Zustand (das heißt ein LSTM-Zustand) der zustandsunabhängigen Netzwerke 312(2)-312(3) periodisch (beispielsweise nach jedem Trainingsbatch) zurückgesetzt. Zu Zwecken der Erläuterung werden die Netzwerke 312(1) in der vorliegenden Offenbarung als „zustandsabhängig“ (stateful) bezeichnet, während die Netzwerke 312(2)-312(3) als „zustandsunabhängig“ bezeichnet werden, was das genutzte Trainingsverfahren bezeichnet. Es sollte einsichtig sein, dass derartige Ausführungsformen entsprechend zustandsunabhängigen Netzwerken 312(2)-312(3) in dem Sinne identisch sind, dass sie dasselbe zugrundeliegende zustandsunabhängige auf Schriftzeichenebene gegebene Modell umfassen und daher auf identische Weisen trainiert werden. Insbesondere da die Netzwerke 312(2)-312(3) entsprechend einigen Ausführungsformen identisch sind, müssen nur einige von ihnen trainiert werden.
  • Wie in 3d gezeigt ist, wird ein mit R1 markierter Textdurchlauf 202(1) für das zustandsabhängige Netzwerk 312(1) bereitgestellt, während die R2-Textdurchläufe 202(2)-202(3) jeweils für die zustandsunabhängigen Netzwerke 312(2)-312(3) bereitgestellt werden. Dieses Szenario kann den Rückverweis auf 3a besser verdeutlichen, wodurch das Textdurchlaufmarkierungsmodul 322 die markierten Textdurchläufe R1 (202(1)), R2 (202(2)) und R3 (202(3)) generiert. Diese markierten Textdurchläufe 202(1)-202(3) werden jeweils für das zustandsabhängige Netzwerk 312(1) und die zustandsunabhängigen Netzwerke 312(2) -312(3) als Eingabe bereitgestellt. Beim Bereitstellen dieser Eingaben für jedes jeweilige Netzwerk (312(1)-312(3)) werden die Eingaben von den jeweiligen LSTM-Netzwerken 312(1)-312(3) derart verarbeitet, dass jedes LSTM eine jeweilige interne Darstellung auf Grundlage der jeweiligen Eingabe (das heißt R1→R1', R2→R2', R3→R3') entwickelt. Daher generiert das zustandsabhängige Netzwerk 312(1), wie in 3d gezeigt ist, die interne Darstellung R1' 308(1), während die zustandsunabhängigen Netzwerke 312(2)-312(3) jeweils die internen Darstellungen R2' 308(2) und R3' 308(3) generieren. Entsprechend einer Ausführungsform der vorliegenden Offenbarung können die internen Darstellungen 308(1)-308(3) Tensoren umfassen, wie sie auf dem Gebiet der Verarbeitung mittels neuronaler Netzwerke üblich sind. Dies bedeutet, dass ein Tensor in diesem Kontext eine mehrdimensionale Feldanordnung umfassen kann.
  • Jede interne Darstellung 308(1) -308(3) (das heißt R1', R2' und R3') kann sodann für den Verkettungsblock 310 bereitgestellt werden, der eine verkettete Darstellung der internen Darstellungen 308(1)- 308(3) generieren kann, indem die internen Darstellungen 308(1)- 308(3) zu einem einzigen Vektor oder Tensor 326 verkettet werden, der hier als „verkettete Darstellung“ bezeichnet wird. Wie in 3d gezeigt ist, kann die verkettete Darstellung 326 für das vollständig verbundene neuronale Netzwerk 314 bereitgestellt werden, das als Ausgabe eine Klassifizierungsvorhersage oder ein Endergebnis 372, die/das eine der Vorhersagemarkierungen 340(1)-340(3) umfasst, generieren kann. Wie in 3d gezeigt ist, geben die Vorhersagemarkierungen 340(1) -340(3) jeweils eine Vorhersage dessen an, dass der nächste Textdurchlauf 202 rechts (RECHTS - R1), unterhalb (UNTERHALB - R2) oder ein Ende einer Aussage (eines Satzes) (R3 - EOS) ist.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann das vollständig verbundene neuronale Netzwerk 314 eine Klassifizierungsfunktion wahrnehmen und kann eine Softmaxschicht, die eine Kreuzentropieverlustfunktion nutzt, beinhalten. Es sind jedoch mit Blick auf die Struktur des vollständig verbundenen neuronalen Netzwerkes 314 zahlreiche Variationen möglich, solange diese eine Klassifizierungsfunktion bereitstellen.
  • LSTMs
  • Wie vorstehend beschrieben worden ist, können das zustandsabhängige Netzwerk 312(1) und die zustandsunabhängigen Netzwerke 312(2)-312(3) RNNs und insbesondere LSTM-Netzwerke sein. Rekurrente neuronale Netzwerk sind allgemein bekannt. Zu Zwecken einer knappen Erklärung folgt nunmehr gleichwohl eine kurze Diskussion der Eigenschaften von rekurrenten neuronalen Netzwerken und LSTMs.
  • Durch den Umstand, dass die zeitlichen Abhängigkeiten viele Zeitschritte auseinander liegen können, kann bei Standard-RNNs im Allgemeinen etwas auftreten, das als das Problem der stark wachsenden / verschwindenden Gradienten bekannt ist, bei dem die Gradienten, die bei dem Algorithmus der Rückführung durch die Zeit berechnet werden, äußerst groß (stark wachsend) oder sehr klein (verschwindend) werden können, was zu nummerischen Instabilitäten führt, die die Effektivität der RNNs schwächen. LSTMs können das Problem der verschwindenden / stark wachsenden Gradienten lösen.
  • 4a zeigt den Betrieb eines rekurrenten neuronalen Netzwerkes entsprechend einer Ausführungsform der vorliegenden Offenbarung. Üblicherweise weisen rekurrente neuronale Netzwerke („RNNs“) die Form einer Kette aus sich wiederholenden Modulen des neuronalen Netzwerkes auf. Dies bedeutet, dass der Betrieb eines rekurrenten neuronalen Netzwerkes so verstanden werden kann, dass er eine einzelne zeitindexierte Zelle wiederholt. Um dieses rekurrente Verhalten bereitzustellen, können rekurrente neuronale Netzwerke einen verborgenen Zustand st , der als Eingabe für die nächste Iteration des Netzwerkes bereitgestellt wird, beibehalten. Im Sinne der vorliegenden Diskussion werden die Variablen st und ht austauschbar verwendet, um den verborgenen Zustand eines RNN darzustellen. Daher kann, wie im linken Abschnitt von 4a gezeigt ist, ein rekurrentes neuronales Netzwerk eine Eingabe von einer aktuellen Zeitstichprobe (time sample) xt wie auch den verborgenen Zustand st-1/ht-1 von der vorherigen Zeitstichprobe, die in die Eingabe rückgekoppelt wird, empfangen. Die Gleichung, die die Aktualisierung auf den verborgenen Zustand st/ht beschreibt, kann folgendermaßen ausgedrückt werden: s t = ϕ ( U x t + W s t 1 )
    Figure DE102018006481A1_0001
  • Hierbei ist ϕ typischerweise eine nichtlineare Funktion, so beispielsweise tanh oder Re-LU. Die Ausgabe des rekurrenten neuronalen Netzwerkes kann ausgedrückt werden als: o t = s o f t m a x ( V s t )
    Figure DE102018006481A1_0002
  • Der verborgene Zustand st/ht kann als Speicher des Netzwerkes gedeutet werden. Insbesondere erfasst st/ht Information darüber, was in sämtlichen vorherigen Zeitschritten geschehen ist. Die Ausgabe bei Schritt ot wird einzig auf Grundlage des Speichers zu der Zeit t berechnet.
  • 4b zeigt ein detaillierteres Beispiel des Betriebs eines RNN, das der analytischen Klarheit halber zerlegt ist. In diesem Diagramm ist ϕ insbesondere als tanh-Funktion gezeigt, während die linearen Gewichtungen U, V und W nicht explizit gezeigt sind. Im Gegensatz zu einem herkömmlichen Deep-Neuronalnetzwerk, das in jeder Schicht andere Parameter nutzt, nutzt ein RNN dieselben Parameter (obige U, V und W) bei allen Schritten. Dies spiegelt den Umstand wider, dass dieselbe Aufgabe bei jedem Schritt, jedoch mit anderen Eingaben durchgeführt wird. Dies verringert die Gesamtzahl der zu lernenden Parameter stark.
  • Obwohl 4a-4b Ausgaben bei jedem Zeitschritt zeigen, ist dies in Abhängigkeit von der Aufgabe gegebenenfalls nicht notwendig. Beim Vorhersagen des Eindrucks (sentiment) eines Satzes ist beispielsweise gegebenenfalls nur die Endausgabe und nicht der Eindruck (sentiment) nach jedem Wort wichtig. Auf ähnliche Weise sind Eingaben bei jedem Zeitschritt gegebenenfalls nicht notwendig. Das Hauptmerkmal eines RNN ist dessen verborgener Zustand st , der Information über eine Sequenz erfasst.
  • 4c zeigt den Betrieb eines LSTM entsprechend einer Ausführungsform der vorliegenden Offenbarung. Ein LSTM kann als spezielle Art von RNN verstanden werden, das dazu fähig ist, Langzeitabhängigkeiten zu lernen. Insbesondere kann ein LSTM das Problem der Langzeitabhängigkeit, das bei herkömmlichen RNNs infolge des Problems der verschwindenden / stark wachsenden Gradienten unbeherrschbar sein kann, vermeiden. Wie in 4c gezeigt ist, kann ein LSTM entsprechend einer Ausführungsform der vorliegenden Offenbarung eine Reihe von Zellen ähnlich zu den in 4a-4b gezeigten allgemeinen RNNs umfassen. Ähnlich zu einem allgemeinen RNN arbeitet jede Zelle in dem LSTM dafür, einen neuen verborgenen Zustand für den nächsten Zeitschritt zu berechnen.
  • Wie in 4c gezeigt ist, kann ein LSTM zusätzlich zum Beibehalten und Aktualisieren eines verborgenen Zustandes st/ht einen Zellenzustand Ct beibehalten. Des Weiteren kann ein LSTM, wie in 4c gezeigt ist, anstelle einer einzelnen Schicht bei einem Standard-RNN, so beispielsweise der tanh-Schicht in 4c, die Möglichkeit bieten, Information unter Nutzung eines Satzes von Gattern (gates) zu der Zelle hinzuzufügen oder aus dieser zu entfernen. Ein Gatter kann eine Sigmoid-Funktion umfassen, die mit einer punktweise wirkenden oder Hadamard'schen Produktmultiplikationsfunktion gekoppelt ist, wobei die Sigmoid-Funktion folgendermaßen lautet: σ = 1 1 + e z
    Figure DE102018006481A1_0003
  • Das Hadamard'sche Produkt wird durch das Symbol ⊗ (kann auch durch das Symbol ∘ dargestellt werden) angegeben. Entsprechend Ausführungsformen der vorliegenden Offenbarung können Gatter den Fluss von Information durch die Zelle ermöglichen oder unmöglich machen. Da die Sigmoid-Funktion zwischen 0 und 1 ist, steuert bzw. regelt jener Funktionswert dasjenige, wie viel von jeder Komponente durch ein Gatter gelassen werden soll. Aus 4c ist wiederum ersichtlich, dass eine LSTM-Zelle drei Gatter, nämlich ein Vergessensgatter (forget gate), ein Eingabegatter (input gate) und ein Ausgabegatter (output gate), umfassen kann.
  • 4d zeigt eine detaillierte Ansicht eines Vergessensgatters entsprechend einer Ausführungsform der vorliegenden Offenbarung. Das in 4d gezeigte Vergessensgatter kann auf Grundlage des vorherigen verborgenen Zustandes ht-1 und der aktuellen Eingabe xt bestimmen, welche Information in dem Zellzustand ausgesondert werden soll. Insbesondere kann eine Ausgabe des Vergessensgatters folgendermaßen dargestellt werden: f t = σ ( W f [ h t 1 , x t ] + b f )
    Figure DE102018006481A1_0004
  • Hierbei ist Wf irgendeine skalare Konstante, während bf ein Tendenzterm (bias term) ist und die Klammern eine Verkettung bezeichnen.
  • 4e-4f zeigen den Betrieb eines Eingabegatters eines LSTM zum Speichern von Information entsprechend einer Ausführungsform der vorliegenden Offenbarung. Entsprechend einer Ausführungsform kann dieser Betrieb in zwei Phasen durchgeführt werden, die in 4e beziehungsweise 4f gezeigt sind. Insbesondere zeigt 4e eine erste Phase des Betriebs eines Eingabegatters entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 4e gezeigt ist, bestimmt eine Sigmoid-Schicht, die als „Eingabegatterschicht“ bezeichnet wird, zunächst, welche Werte aktualisiert werden sollen. Als Nächstes kann eine tanh-Schicht einen Vektor aus neuen Kandidatenwerten t , die zu dem Zustand addiert werden können, erstellen. Diese Betriebsvorgänge können durch die nachfolgenden Relationen ausgedrückt werden: i t = σ ( W i [ h t 1 , x t ] + b i )
    Figure DE102018006481A1_0005
    C ˜ t = t a n h ( W c [ h t 1 , x t ] + b C )
    Figure DE102018006481A1_0006
  • 4f zeigt eine zweite Phase des Betriebs eines Eingabegatters entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 4f gezeigt ist, kann der alte Zustand Ct-1 mit ft multipliziert werden, um das Vergessen von Information (wie in 4d bestimmt) zu bewirken. Als Nächstes werden die neuen Kandidatenwerte des Zellzustandes it t zu dem vorherigen Zellzustand Ct-1 addiert. Dies kann durch die nachfolgenden Relationen ausgedrückt werden: C t = f t C t 1 + i t C ˜ t
    Figure DE102018006481A1_0007
  • 4g zeigt den Betrieb eines Ausgabegatters entsprechend einer Ausführungsform der vorliegenden Offenbarung. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann die Ausgabe auf dem Zellzustand Ct beruhen, jedoch gefiltert sein. Insbesondere kann entsprechend einer Ausführungsform zunächst eine Sigmoid-Schicht eingesetzt werden, die entscheidet, welche Teile des Zellzustandes Ct ausgegeben werden sollen. Als Nächstes kann der Zellzustand Ct durch eine tanh-Funktion (um zu bewirken, dass die Werte zwischen -1 und 1 liegen) verarbeitet und sodann mit der Ausgabe des Sigmoid-Gatters multipliziert werden, um nur diejenigen Teile, von denen entschieden wurde, dass sie ausgegeben werden, selektiv auszugeben. Der Betrieb eines Ausgabegatters kann durch die nachfolgenden Relationen ausgedrückt werden: o t = σ ( W o [ h t 1 , x t ] + b o )
    Figure DE102018006481A1_0008
    h t = o t tanh ( C t )
    Figure DE102018006481A1_0009
  • Die Struktur eines LSTM ist so, wie in 4c-4g dargestellt ist, nur ein Beispiel. Entsprechend anderen Ausführungsformen kann beispielsweise eine gattergesteuerte rekurrente Einheit (Gated Recurrent Unit „GRU“) oder irgendeine andere Variante genutzt werden. Zusätzlich kann die interne Struktur, die in 4c-4g gezeigt ist, auf eine Vielzahl von Weisen modifiziert werden, so beispielsweise derart, dass sie Peephole-Verbindungen beinhaltet.
  • Training
  • Erste Phase - Training des zustandsunabhängigen Netzwerkes mit dem auf Schriftzeichenebene gegebenen Sprachmodell
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird in einer ersten Phase des Trainings ein auf Schriftzeichenebene gegebenes Sprachmodell (also für zustandsunabhängige Netzwerke 312(2)-312(e)) unter Nutzung von LSTM-Zellen zum Generieren von Vektordarstellungen für Textsequenzn genutzt. Der verborgene Zustand des LSTM (das heißt 312(2)- 312(3)) kann sodann als Darstellung der Sequenz der Schriftzeichen, die in das LSTM eingespeist werden, genutzt werden. Da die Bestimmung der Lesereihenfolge in dem Dokument 328 unabhängige Vektordarstellungen für eine Sequenz von Schriftzeichen benötigt, können die internen Zustände des LSTM (312(2)-312(3)) mit jedem Batch während des Trainings des Modells zurückgesetzt werden. Dies bewirkt, dass das LSTM über verschiedene Eingabe-Batches hinweg zustandsunabhängig ist. Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird ein Ensemble (chunk) aus T aufeinanderfolgenden Schriftzeichen aus einer Schriftzeichensequenz hier als Batch bezeichnet. Das Modell, das während der ersten Phase trainiert wird, wird hier als zustandsunabhängiges Modell bezeichnet.
  • Entsprechend einigen Ausführungsformen kann die Anzahl von Zeitschritten in einem Batch unter Berücksichtigung der maximalen Länge der Sequenz von Schriftzeichen für eine gewünschte Vektordarstellung ausgewählt werden. Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird der verborgene Zustand des LSTM (312(2)- 312(3)) am Ende der Verarbeitung eines Batches als Vektordarstellung für den Batch (das heißt interne Darstellungen 308(2)-308(3)) betrachtet.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann, da die erste Phase ein Trainieren eines allgemeinen auf Schriftzeichenebene gegebenen Sprachmodells umfasst, eine große Anzahl von öffentlich verfügbaren Textcorpora genutzt werden. Entsprechend einer Ausführungsform der vorliegenden Offenbarung können aus Quellen wie Wikipedia, Reddit und dergleichen mehr extrahierte Textdaten genutzt werden, um das Erstphasenmodell bezüglich des Corpus zu trainieren. Vorausgesetzt, dass die Endnutzung darin besteht, die Lesereihenfolge für Formulare zu bestimmen, kann das Modell sodann unter Nutzung von Dokumentdaten feinabgestimmt werden.
  • Wie nachstehend in der zweiten Phase der Lösung beschrieben wird, kann das auf Schriftzeichenebene gegebene Sprachmodell, das in der ersten Phase generiert wird, sodann zum Generieren von Vektordarstellungen der Textdurchläufe 202, die durch das bestehende Netzwerk detektiert werden, genutzt werden.
  • Infolge praktischer Einschränkungen sind die Längen sämtlicher Textdurchläufe 202, die von den Netzwerken 312(2)-312(3) detektiert werden, nicht gleich. Um dies zu berücksichtigen, kann das Ende eines jeden Eingabe-Batches entsprechend einer Ausführungsform der vorliegenden Offenbarung mit Nullschriftzeichen aufgefüllt (padded) werden. Die Anzahl von Nullschriftzeichen, mit denen das Ende eines jeden Eingabe-Batches aufgefüllt wird, kann aus einer geeigneten Wahrscheinlichkeitsverteilung gesampelt werden. Der Vorgang des Auffüllens mit Nullen kann sicherstellen, dass sich das Modell zur Herleitungszeit beim Einspeisen eines aufgefüllten Eingabe-Batches nicht willkürlich verhält. Insbesondere können entsprechend einigen Ausführungsformen, da die Textdurchläufe nicht alle dieselbe Länge aufweisen, kleinere Textdurchläufe an ihren jeweiligen Enden aufgefüllt werden. Diese Situation tritt während der hier beschriebenen Herleitungsphase der Lösung auf. Um diese mögliche Ineffizienz zu berücksichtigen, wird die Eingabe während der Trainingsphase an beliebigen Punkten aus einer geeigneten Wahrscheinlichkeitsverteilung aufgefüllt, damit das Modell während der Herleitungsphase robust bleibt.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann die Perplexität der Vorhersagen bei einem Eingabe-Batch als Maß für das Leistungsvermögen des Modells genutzt werden. Je niedriger die Perplexität des Modells ist, desto besser ist es beim Generieren von Vektordarstellungen der Textdurchläufe 202. Entsprechend einer Ausführungsform der vorliegenden Offenbarung beträgt die beste durchschnittliche Perplexität pro Batch, die man bei einem Bewertungssatz von 136827954 Schriftzeichen bei einem Training in einem Corpus aus 319267324 Schriftzeichen erhält, 4,08686 mit 20 Schriftzeichen in jedem Eingabe-Batch. Bei diesem Beispiel beträgt die durchschnittliche Perplexität pro Batch, die man in diesem Fall für den Trainingssatz erhält, 4,016625.
  • 5a zeigt den Trainingsbetrieb für ein zustandsunabhängiges Netzwerk entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 5a gezeigt ist, können die beiden LSTM-Netzwerke 312(2) und 312(3), die in 3d gezeigt sind, unter Nutzung des dargestellten Verfahrens trainiert werden. Insbesondere können, wie vorstehend beschrieben worden ist, die Netzwerke 312(2) und 312(3) LSTMs sein und entsprechend einer Ausführungsform identische zustandsunabhängige auf Schriftzeichenebene gegebene Modelle nutzen. Im Sinne der vorliegenden Diskussion wird vereinfachend angenommen, dass das Training für das Netzwerk 312(2) durchgeführt wird. Es sollte jedoch einleuchtend sein, dass ein analoger Prozess auch bei dem Netzwerk 312(3) angewendet werden kann.
  • Wie in 5a gezeigt ist, kann der Batch 502 entsprechend einer Ausführungsform der vorliegenden Offenbarung für die Eingabe des Netzwerkes 312(2) bereitgestellt werden. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein Batch ein Ensemble (chunk) aus T aufeinanderfolgenden Schriftzeichen aus einer Schriftzeichensequenz umfassen. Wie nachstehend noch beschrieben wird, können, um das Training rechentechnisch zu beschleunigen, Gradientenaktualisierungen der Parameter nur einmal pro Batch und nicht bei jedem Zeitschritt durchgeführt werden. Entsprechend einer Ausführungsform der vorliegenden Offenbarung können Trainingsdaten für eine Sequenz von Schriftzeichen, die den Batch 502 umfassen, beispielsweise aus den Dokumenten 328 erhalten werden, bei denen die Lesereihenfolge manuell bestimmt worden ist. Wie in 5a gezeigt ist, kann der Rücksetzblock 504 daher den internen Zustand (die interne Darstellung) aus der Generierung durch das Netzwerk 312(2) am Ende eines Batches zurücksetzen.
  • Wie in 5a gezeigt ist, kann die Verlustfunktion 506 bei der Ausgabe der Endzelle 304(N) angewandt werden, um ein vorhergesagtes nächstes Schriftzeichen 550 des Netzwerkes 312(2) mit dem tatsächlichen nächsten Schriftzeichen 510 in dem Batch 502 zu vergleichen. Entsprechend alternativen Ausführungsformen wird die Ausgabe einer jeden Zelle 304(1)-304(N) für die Verlustfunktion 506 bereitgestellt, um einen Verlust eines jeden einzelnen Batches zu berechnen. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann eine L2-Verlustfunktion genutzt werden. Die Ausgabe der Verlustfunktion 506 wird sodann für einen Optimierer 508 bereitgestellt, der die Parameter des Netzwerkes 312(2) sodann auf Grundlage eines Gradientenabstiegsverfahrens (gradient descent method) oder eines anderen Optimierungsverfahrens aktualisieren kann. Wie nachstehend noch beschrieben wird, kann ein Algorithmus der trunkierten Rückführung durch die Zeit (truncated backpropagation through time) eingesetzt werden. Entsprechend einigen Ausführungsformen der vorliegenden Offenbarung muss, da der Zustand des Netzwerkes nach jedem Batch zurückgesetzt wird, eine trunkierte Rückführung durch die Zeit jedoch nicht unbedingt genutzt werden. Anstatt dessen wird der Verlust für sämtliche falsch vorhergesagten Schriftzeichen für einen Batch berechnet, und es werden die Gradienten für den Verlust zur Aktualisierung des Netzwerkes genutzt.
  • Das Training des zustandsunabhängigen LSTM (312(2)-312(3)) kann derart durchgeführt werden, dass es seinen internen Zustand derart ausrichtet, dass es das nächste Schriftzeichen in einer Schriftzeichensequenz vorhersagen kann. Insbesondere können Schriftzeichen-Batches, die die richtige Lesereihenfolge zugeordneter Dokumente darstellen, entsprechend einigen Ausführungsformen für das zustandsunabhängige LSTM bereitgestellt werden. Dies bedeutet, dass die Schriftzeichensequenz in einem Batch 502 die richtige Lesereihenfolge eines Dokumentes darstellen kann. Der verborgene Zustand des zustandsunabhängigen LSTM (das heißt 312(2)-312(3)) stellt dar, was das LSTM bis zu diesem Punkt gesehen hat. Entsprechend einer Ausführungsform der vorliegenden Offenbarung können die zustandsunabhängigen LSTMs 312(2)-312(3) trainiert werden, bis eine gewünschte Genauigkeit, die durch eine Metrik gegeben ist, erreicht wird.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann während des Trainings ein Rauschsignal beispielsweise für zufällig herausgefallene Schriftzeichen (randomly drop charachters), das Hinzufügen von Leerräumen und dergleichen mehr in den Batch 502 eingefügt werden, um den tatsächlichen Datensatz nachzubilden. Das Rauschsignal kann Fehler widerspiegeln, die von dem OCR-System 206, das einen zugeordneten OCR-Prozess durchführt, eingeführt worden sind. Dies bewirkt, dass ein zustandsunabhängiges LSTM (das heißt 312(2)-312(3)) robuster gegenüber dem tatsächlichen Datensatz ist. Dies bedeutet wiederum, dass entsprechend einer Ausführungsform der vorliegenden Offenbarung die Daten beim Trainieren des zustandsunabhängigen auf Schriftzeichenebene gegebenen Modells durch Einführen gewisser Mutationen (so beispielsweise Ausstoßen/Ersetzen von Schriftzeichen an beliebigen Stellen, Auseinanderziehen von Worten an beliebigen Stellen und dergleichen mehr) vorverarbeitet werden können. Diese Mutationen tragen gegebenenfalls dazu bei zu bewirken, dass die Daten den echten Daten stärker ähneln und dass Modelle bei den echten Daten, die zur Herleitung verwendet werden, besser anwendbar sind.
  • Zweite Phase - überwachtes Training zum Lernen des Entscheidens über die Lesereihenfolge eines jeden Textdurchlaufes - Training des zustandsabhängigen Netzwerkes
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird in einer zweiten Phase das Training an einem auf Schriftzeichenebene gegebenen Sprachmodell unter Nutzung von LSTM-Zellen durchgeführt, wobei hier der Kontext der Textdurchläufe 202, die von dem Netzwerk untersucht werden und zu einem einzigen Textblock 204 gehören, erhalten bleibt. Dies wird hier als zustandsabhängiges Modell bezeichnet. Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird der interne Zustand des zustandsabhängigen Modells bei jedem Auffinden eines EOS zurückgesetzt, um verschiedene Kontexte für verschiedene Textblöcke 204 beizubehalten.
  • Man gehe beispielsweise davon aus, dass der aktuelle Textdurchlauf 202 gleich R1 ist und die Textdurchläufe 202 beispielsweise in den Richtungen R2 (RECHTS) und R3 (UNTERHALB) durch ein Textdurchlaufmarkierungsmodul 322 bestimmt werden. Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird der aktuelle Textdurchlauf R1 202 in das zustandsabhängige Modell eingespeist, während die Textdurchläufe R2 und R3 202 beide in das zustandsunabhängige Modell eingespeist werden. Die internen Vektor-/Tensordarstellungen, die für R1, R2 und R3 generiert werden (R1', R2' und R3'), können sodann zu einem einzigen Vektor/Tensor verkettet werden, der den vollständigen Zustand der Zerlegung R' = [R1' R2' R3'] darstellt. Die vereinigte Darstellung R' kann sodann zur Klassifizierung des nächsten Textdurchlaufes 202 als RECHTS (R2), UNTERHALB (R3) oder EOS genutzt werden.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung können sowohl die Gewichtungen des zustandsabhängigen Modells (das heißt die Gewichtungen, die dem LSTM 312(1) zugeordnet sind) wie auch ein Softmax-Klassifizierer, der dem vollständig verbundenen neuronalen Netzwerk 314 zugeordnet ist, gleichzeitig trainiert werden, wobei die auf Schriftzeichenebene gegebenen Ausgabe des zustandsabhängigen Modells bei jedem Schritt der Sequenz als Hilfsausgabe und die Softmaxausgabevorhersagemarkierungen (340(1) -340(3)) für die Sequenz von Schriftzeichen in R1, R2 und R3 als Hauptausgabe behandelt werden.
  • 5b zeigt den Trainingsbetrieb für ein zustandsabhängiges Netzwerk entsprechend einer Ausführungsform der vorliegenden Offenbarung. Die in 5b gezeigte Trainingskonfiguration kann zum Trainieren des zustandsabhängigen Netzwerkes 312(1) und des jenem Netzwerk zugrundeliegenden entsprechenden auf Schriftzeichenebene gegebenen zustandsabhängigen Modells genutzt werden. Wie vorstehend erläutert worden ist, kann das zustandsabhängige Netzwerk 312(1) ein LSTM sein. Wie in 5b gezeigt ist, können die mit R1, R2, R3 und EOS markierten Trainingsdaten 518 dafür genutzt werden, das zustandsabhängige Modell zu nutzen. Entsprechend einer Ausführungsform der vorliegenden Offenbarung können die markierten Trainingsdaten 518 markierte Textdurchläufe 202 umfassen, für die die Lesereihenfolgen der verschiedenen RECHTS- und UNTERHALB-Textdurchläufe 202 in Bezug auf einen aktuellen Textdurchlauf R1 202 (das heißt R2 und R3) bereits markiert worden sind.
  • Wie in 5b gezeigt ist, können die markierten Trainingsdaten 518 in mit R1 markierte Textdurchlauftrainingsdaten 512, mit R2 markierte Textdurchlauftrainingsdaten 514 und mit R3 markierte Textdurchlauftrainingsdaten 516 segmentiert werden. Die mit R1 markierten Textdurchlauftrainingsdaten 512 können als Eingabe für das zustandsabhängige Netzwerk 312(1) bereitgestellt werden, während die mit R2 markierten Textdurchlaufdaten 514 und die mit R3 markierten Textdurchlaufdaten 516 jeweils bezugsrichtig als Eingabe für die LSTM-Netzwerke 312(2)-312(3) bereitgestellt werden können. Die Hilfsausgabe 318, die dem Netzwerk 312(1) zugeordnet ist, wodurch eine nächste Schriftzeichenvorhersage angegeben werden kann, kann für die Verlustfunktion 506 zusammen mit den Textdurchlauftrainingsmarkierungen 520 wie auch der Vorhersagemarkierung (das heißt eines von 340(1)-340(3)) aus der Generierung durch die Ausgabe eines Softmax, der dem vollständig verbundenen Netzwerk 314 zugeordnet ist, bereitgestellt werden. Die Verlustfunktion kann sodann beispielsweise unter Nutzung einer Kreuzentropieverlustfunktion, die für den Optimierer 508 bereitgestellt wird, eine Verlustberechnung generieren. Der Optimierer 508 kann sodann einen Prozess der Rückführung durch die Zeit (trunkiert oder nicht trunkiert) durchführen, um die Parameter des zustandsabhängigen Netzwerkes 312(1) zu trainieren (und zwar beispielsweise unter Nutzung eines Gradientenabstiegsverfahrens).
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann, wie erläutert worden ist, die Verlustfunktion 506 eine Kreuzentropieverlustfunktion sein. Die Kreuzentropieverlustfunktion kann folgendermaßen ausgedrückt werden: E t ( y t , y t ^ ) = y t log y t ^
    Figure DE102018006481A1_0010
    E t ( y , y ^ ) = t E t ( y t , y t ^ )       = t y t log y t ^
    Figure DE102018006481A1_0011
  • Hierbei ist yt das Zielwort (richtiges Wort) bei jedem Zeitschritt t, und y t ^
    Figure DE102018006481A1_0012
    ist die Vorhersage. Üblicherweise kann die vollständige Sequenz als ein einziges Trainingsbeispiel behandelt werden, sodass der Gesamtfehler die Summe der Fehler bei jedem Zeitschritt ist. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein RNN/LSTM, wie nachstehend noch beschrieben wird, unter Nutzung eines Algorithmus der Rückführung durch die Zeit, der ähnlich zur Rückführung für ein Feedforward-Neuronalnetzwerk ist, trainiert werden.
  • Trunkierte Rückführung durch die Zeit
  • Das Trainieren von RNNs (das heißt der Netzwerke 312(1)-312(3)) kann rechentechnisch aufwändig sein, was von der zunehmenden Länge der Sequenz herrührt, da zur Bewertung des Gradienten in Bezug auf die Parameter des Modells der Fehler bei jedem Zeitschritt den ganzen Weg zum ersten Zeitschritt zurückgeführt werden muss. Um dieses Problem anzugehen, kann die Anzahl der Zeitschritte, zu denen der Fehler bei einem Zeitschritt zurückgeführt wird, beschränkt werden. Dies wird als trunkierte Rückführung durch die Zeit (truncated backpropagation through time) bezeichnet. Entsprechend einigen Ausführungsformen der vorliegenden Offenbarung wird, wie nachstehend noch beschrieben wird, ein Prozess der trunkierten Rückführung durch die Zeit zum Trainieren benutzt. Wie vorstehend erläutert worden ist, wird die Eingabe in das System in Ensembles (chunks) aus T aufeinanderfolgenden Elementen aus der Sequenz als Batch bezeichnet. Um das Trainieren rechentechnisch zu beschleunigen, können Gradientenaktualisierungen der Parameter nur einmal pro Batch und nicht bei jedem Zeitschritt durchgeführt werden.
  • Bei Annahme einer festen Größe von T kann ein Prozess der trunkierten Rückführung durch die Zeit entsprechend einer Ausführungsform der vorliegenden Offenbarung folgendermaßen durchgeführt werden:
    • • bei t = 1 werden Parameter des Netzwerkes unter Nutzung des Gradienten des Verlustes beim ersten Zeitschritt aktualisiert;
    • • bei t = 2 wird ein Gradient durch den Verlust bei diesem Zeitschritt berechnet, und es wird dieser Verlust zum ersten Zeitschritt zurückgeführt;
    • • bei t = 3 wird ein Gradient durch den Verlust bei diesem Zeitschritt berechnet, und dieser Verlust wird zu t = 2 und t = 1 zurückgeführt;
    • • analoge Betriebsvorgänge werden für die Zeitschritte t = 4, t = 5 bis t = T durchgeführt;
    • • bei t = T + 1 bleibt der interne Zustand des Netzwerkes erhalten, wobei der Verlust bei diesem Zeitschritt nicht zurückgeführt wird und der Gradient unter Nutzung des Verlustes lediglich bei diesem Zeitschritt berechnet wird;
    • • bei t = T + 2 wird der Gradient unter Nutzung des Verlustes bei diesem Zeitschritt und durch Zurückführen des Verlustes zu dem Zeitschritt t = T + 1 berechnet;
    • • der Prozess wird für die gesamte Eingabesequenz wiederholt.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird eine alternative Form der Rückführung durch die Zeit genutzt, um die Verluste für jeden Zeitschritt t = 1 bis t = T zu berechnen, und es wird sodann der kumulative Verlust genutzt, um die Netzwerkparameter zu aktualisieren, anstatt dass die Parameter für jedes t = 1 bis t = T aktualisiert würden.
  • Trainings- und Testdatensätze
  • Entsprechend einigen Ausführungsformen der vorliegenden Offenbarung kann eine große Menge von öffentlich verfügbaren Sprachcorpora (aus Quellen wie Wikipedia und Reddit) Trainingsdaten liefern. Entsprechend einer Ausführungsform können Sätze, die eine Länge in einem spezifischen Bereich aufweisen, extrahiert werden. Zum Generieren der Daten können zwei Sätze willkürlich ausgewählt werden, und es kann das Corpus gefiltert werden (Satz A und Satz B). Entsprechend dieser Ausführungsform können die Sätze A und B sodann an beliebigen Punkten zerlegt werden, um die Textdurchläufe 202 und die anderen Textdurchläufe 202 mit Verwürfelung (jumbled) zu generieren, um wiederum einen synthetischen Datensatz zu generieren, der sodann in das Dokumentlesereihenfolgeverarbeitungssystem 320 eingespeist wird, um die richtige Lesereihenfolge zu bestimmen. Insbesondere wird ein Sprachcorpus entsprechend einer Ausführungsform der vorliegenden Offenbarung in Trainings- und Validierungssätze (beispielsweise durch eine 80/20-Proportionalunterteilung) unterteilt. Sodann können Paare von Sätzen in den Trainingsdaten gewählt werden. Das Lesereihenfolgeproblem kann sodann durch Unterteilen der beiden Sätze A und B und horizontales (nebeneinander erfolgendes) oder vertikales (untereinander erfolgendes) Anordnen derselben simuliert werden. Entsprechend einigen Ausführungsformen können die Sätze mutiert werden, um ein Rauschverhalten der OCR zu simulieren. Da die Lesereihenfolge bekannt ist (das heißt, sämtliche Fragmente von A sind in einer Reihenfolge, gefolgt von sämtlichen Fragmenten von B in einer Reihenfolge), können die Paare von Sätzen, die nebeneinander oder untereinander als markierte Trainingsbeispiele angeordnet sind, dafür genutzt werden, das System zu trainieren. Die Effektivität des trainierten Systems kann gegenüber Paaren von Sätzen in dem Validierungssatz geprüft werden.
  • Beispiele und Ergebnisse
  • 6 zeigt ein exemplarisches Dokument, für das eine Lesereihenfolge entsprechend einer Ausführungsform der vorliegenden Offenbarung bestimmt werden soll. Wie in 6 gezeigt ist, enthält das exemplarische Dokument 328 drei Sektionen, und zwar eine zur Angabe von „Units Sold“ (verkaufte Einheiten) und „Total Sales Amount“ (Gesamtverkaufsmenge), eine weitere Sektion für „Signature“ (Signatur) und eine letzte Sektion, die „Additional Instructions“ (zusätzliche Anweisungen) bereitstellt. Die letzte Sektion spannt sich über zwei Spalten, ohne dass ein expliziter Zeilentrenner zwischen den Spalten vorhanden wäre. Wann immer ein Anwender die zusätzlichen Anweisungen liest, liest er zunächst die linke Spalte und sodann die rechte Spalte, anstatt dass er zwischen den beiden Sektionen beim Lesen der Zeilen hin und herspringen würde. Obwohl der Anwender keinerlei Probleme damit hat, die richtige Lesereihenfolge zu finden, ist dies bei einem herkömmlichen Maschinenlernsystem nicht der Fall. Es ist sehr schwierig, mit den bestehenden Kapazitäten zwischen den beiden Spalten dadurch zu unterscheiden, dass lediglich durch visuelle Modalitäten infolge des Nichtvorhandenseins eines beliebigen expliziten Trenners zwischen den beiden Spalten eine Herleitung stattfindet.
  • Unter Nutzung der in der vorliegenden Offenbarung beschriebenen Techniken kann das Dokumentlesereihenfolgeverarbeitungssystem 320 die richtige Lesereihenfolge des Dokumentes 328 so, wie die nachfolgenden Beispiele darstellen, herleiten. Wie bei dem in 6 gezeigten Dokument 328 ist „Type of Sale: P1“ ein Textdurchlauf 202, der Teil des Textblocks 204 „Type of Sale: Place one of the following coes by each ...“ ist.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung können die Textdurchläufe 202 sequenziell zerlegt werden, wenn sie in dem Dokument 328 detektiert werden. Beim Zerlegen des Dokumentes 328 kann das Dokumentlesereihenfolgeverarbeitungssystem 320 für jeden Textdurchlauf 202 herleiten, welcher Textdurchlauf 202 den Kontext vor dem aktuellen in der Lesereihenfolge beibehält, sodass diese demselben Textblock 204 zugeordnet werden (siehe hierzu die vorstehende Diskussion im Zusammenhang mit 3a). Zur Wahrung der Notationskonsistenz wird der aktuelle Textdurchlauf 202 mit R1 bezeichnet. Das Dokumentlesereihenfolgeverarbeitungssystem 320 kann sodann den Textdurchlauf 202, der der nächste in der Lesereihenfolge ist, herleiten und sich sodann durch Aktualisieren von R1, das dem nächsten Textdurchlauf 202 zugeordnet werden soll, zu diesem bewegen. Beim sequenziellen Bewegen kann das Dokumentlesereihenfolgeverarbeitungssystem 320 den Textdurchlauf 202, der als „UNTERSUCHT“ (EXPLORED) betrachtet wird, markieren.
  • Wie vorstehend erläutert worden ist, sind für jeden Textdurchlauf 202 drei Möglichkeiten im Zusammenhang mit der Bestimmung der Lesereihenfolge an dem aktuellen Textdurchlauf R1 202 vorhanden. Die erste Möglichkeit besteht darin, dass sich die Lesereihenfolge in einer Richtung von links nach rechts bewegt. Dies bedeutet, dass der nächste Textdurchlauf 202 in der Lesereihenfolge derjenige ist, der räumlich rechts von dem aktuellen Textdurchlauf 202 (RECHTER oder R2-Textdurchlauf 202) befindlich ist. Man gehe beispielsweise davon aus, dass das Dokumentlesereihenfolgeverarbeitungssystem 320 aktuell R1 = „watercraft used for“ zerlegt. Dann ist der nächste Textdurchlauf R2 202 = „capable of being“ RECHTS von R1 und folgt „watercraft used for“ in der Lesereihenfolge.
  • Die zweite Möglichkeit besteht darin, dass die Lesereihenfolge an diesem Punkt abbricht und sich zur nächsten Zeile (UNTERHALB oder R3-Textdurchlauf 202) bewegt. Es sind für die UNTERHALB-Möglichkeit zwei Unterfälle vorhanden. Der erste Unterfall besteht darin, dass der Textdurchlauf 202, der der nächste in der Lesereihenfolge ist, in der Zeile ist, die am nächsten an dem aktuellen Textkasten und räumlich unterhalb desselben befindlich ist. Man nehme beispielsweise an, dass R1 = „propulsion systems“ ist. Dann kommt der Textdurchlauf R3 202 = „which are used to“ als nächster in der Lesereihenfolge.
  • Der zweite Unterfall für die UNTERHALB-Möglichkeit besteht darin, dass der aktuelle Textdurchlauf R1 202 in der letzten Zeile des Formulars sein kann, sodass der nächste Textdurchlauf 202 der obere und am weitesten links befindliche nicht untersuchte Textdurchlauf 202 in dem Formular ist. Man nehme beispielsweise an, dass der aktuelle Textdurchlauf R1 202 = „vessels or outboard“ ist. Dann kommt der Textdurchlauf R3 202 = „motors in Texas“ als nächster in der Lesereihenfolge.
  • Während diese beiden Unterfälle definiert werden, wird davon ausgegangen, dass die Lesereihenfolge nie über nicht untersuchte Textdurchläufe 202 in dem Formular hinwegspringt. Bei dem Textdurchlauf R1 202 = „vessels or outboards“ muss die Lesereihenfolge beispielsweise zu dem Textdurchlauf R3 202 = „motors in“ vorrücken. Das Lesen kann nicht zu dem Textdurchlauf 202 „include the“ über den nicht untersuchten Textdurchlauf R3 202 springen.
  • Die dritte Möglichkeit besteht darin, dass die Lesereihenfolge an dem aktuellen Textdurchlauf 202 endet (das heißt, die beiden Textdurchläufe 202 in den Richtungen „RECHTS“ und „UNTERHALB“ weisen verschiedenen Kontext auf). Dies ist das EOS-Szenario (End of Statement EOS). Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann der interne Zustand des Modells, wenn ein EOS vorhergesagt wird, zurückgesetzt werden, und es wird das Zerlegen ab dem Textdurchlauf 202, der in der „UNTERHALB“-Richtung des aktuellen Textdurchlaufes R1 202 aufgefunden worden ist, neubegonnen. Entsprechend dieser Prozedur sind die genannten drei Möglichkeiten dafür ausreichend, alle Fälle des Detektierens der Lesereihenfolge in einem mehrteiligen Formular abzudecken, wenn das Zerlegen der Textdurchläufe 202 sequenziell mit Beginn ab dem Textdurchlauf 202 in der oberen linken Ecke des Formulars erfolgt.
  • Bei einem weiteren Beispiel betrachte man die beiden Sätze A: „John is eating an apple.“ und B: „Henry is solving reading order problem.“ Ein mögliches Trainingsbeispiel kann sodann sein:
    • [„John is“, „eating“, „Henry is“]
    • [„an ap“, „solving re“, „ading“]
    • [„ple“, „order“]
  • Entsprechend diesem Beispiel ist das Führungssignal des Dokumentes 328:
    • [„RECHTS“, „UNTERHALB“, „UNTERHALB“]
    • [„UNTERHALB“, „RECHTS“, „UNTERHALB“]
    • [„EOS“, „EOS“]
  • Hierbei verarbeitet das Dokumentlesereihenfolgeverarbeitungssystem 320 das Beispiel sequenziell.
  • Bei Nutzung des vorherigen Beispiels mit dem Satz A: „John is eating an apple“ und dem Satz B: „Henry is solving reading order“ können diese beiden Sätze an beliebigen Stellen zerlegt werden, um das Verhalten der Textdurchläufe, die durch einen OCRartigen Mechanismus detektiert werden, zu simulieren. Es werde A beispielsweise zu [„John is“, „eating“, „an app“, „ple“] und B zu [„Henry is“, „solving re“, „ading“, „order“] zerlegt. Zum Simulieren des Lesereihenfolgeproblems können diese beiden Sätze in einem Zwei-Spalten-Format mit A in der ersten Spalte und B in der zweiten Spalte angeordnet werden.
  • Die in der vorliegenden Offenbarung beschriebenen Techniken stellen eine trainierte End-to-End-Deep-Learning-Lösung zum Detektieren der Lesereihenfolge in einem beliebigen Formular oder Dokument bereit. Die Lösung kann leicht angepasst werden, um die Lesereihenfolge für eine beliebige Sprache zu detektieren. Erreicht werden kann dies durch Trainieren des neuen Sprachmodells (unter Nutzung einer großen Menge von öffentlich verfügbaren Sprachcorpora) und Ändern der Möglichkeiten, die bei jedem Textdurchlauf 202 betrachtet werden, und der Reihenfolge, in der die nächsten Textdurchläufe 202 beim Auffinden eines EOS (End Of Statement) betrachtet werden.
  • Die in der vorliegenden Offenbarung beschriebenen Techniken können verallgemeinert werden, um die Lesereihenfolge in einem allgemeinen gescannten Dokument zu detektieren, indem die Anzahl der Möglichkeiten für die Lesereihenfolge, die bei jedem Textdurchlauf 202 betrachtet wird, erhöht wird.
  • Das auf Schriftzeichenebene gegebene Modell, das in der ersten Phase der Lösung trainiert wird, um unabhängige Vektordarstellungen der Textdurchläufe 202 auszugeben, kann bei einer Vielzahl von Anwendungen genutzt werden, wobei aktuell GloVe oder Word2Vec benutzt werden, um Vektordarstellungen von Worten zu erhalten.
  • Integration in ein Rechensystem und eine Netzwerkumgebung
  • 7a zeigt ein exemplarisches Rechensystem, das ein interaktives Sprachbearbeitungssystem entsprechend Ausführungsformen der vorliegenden Offenbarung ausführt. Wie in 7a dargestellt ist, beinhaltet die Rechenvorrichtung 700 eine CPU/GPU 712 und ein Dokumentlesereihenfolgeverarbeitungssystem 320. Das Dokumentlesereihenfolgeverarbeitungssystem 320 kann derart gedeutet werden, dass es programmartige Strukturen zum Durchführen einer Lesereihenfolgeverarbeitung und Herleitung an einem Dokument 328 umfasst. Insbesondere kann die CPU/GPU 712 des Weiteren über programmartige Anweisungen konfiguriert sein, um ein Dokumentlesereihenfolgeverarbeitungssystem 320 (wie hier verschiedentlich beschrieben wird) auszuführen. Weitere Komponenten und Module, die bei einem typischen Rechensystem gängig sind, so beispielsweise ein Coprozessor, ein Prozessorkern, eine grafische Verarbeitungseinheit, eine Maus, ein Touchpad, ein Touchscreen, eine Anzeige und dergleichen mehr, sind nicht gezeigt, erschließen sich jedoch ohne Weiteres. Zahlreiche Variationen der Rechenumgebung erschließen sich im Lichte der vorliegenden Offenbarung. Die Rechenvorrichtung 700 kann eine beliebige eigenständige Rechenplattform sein, so beispielsweise ein Desktop- oder Workstationcomputer, ein Laptopcomputer, ein Tabletcomputer, ein Smartphone oder ein Persönlicher Digitaler Assistent, eine Spielekonsole, eine Set-Top-Box oder eine andere geeignete Rechenplattform.
  • 7b zeigt eine exemplarische Integration eines interaktiven Sprachbearbeitungssystems in eine Netzwerkumgebung entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 7b gezeigt ist, kann eine Rechenvorrichtung 700 in einer Cloud-Umgebung, einer Datenzentrale, einem Ortsbereichsnetzwerk („LAN“) und dergleichen mehr residieren. Wie in 7b gezeigt ist, ist die Rechenvorrichtung 700 der Struktur nach identisch zu der anhand 7a beschriebenen exemplarischen Ausführungsform. In diesem Fall kann die Rechenvorrichtung 700 beispielsweise ein Server oder Servercluster sein. Wie in 7b gezeigt ist, interagiert ein Client 730 über ein Netzwerk 732 mit der Rechenvorrichtung 700. Insbesondere kann der Client 730 Anfragen stellen und Antworten über API-Rufe, die an dem API-Server 728 empfangen werden und die über das Netzwerk 732 und die Netzwerkschnittstelle 726 übermittelt werden, empfangen.
  • Es sollte weiter einsichtig sein, dass das Netzwerk 732 einen beliebigen Typ von öffentlichem und/oder privatem Netzwerk umfassen kann, darunter das Internet, LANs, WAN oder eine beliebige Kombination aus derartigen Netzwerken. In diesem exemplarischen Fall ist die Rechenvorrichtung 700 ein Servercomputer, und es kann der Client 730 eine beliebige gängige Rechenplattform sein.
  • Wie weiterhin offenbar ist, beinhaltet die Rechenvorrichtung 700 - und zwar sowohl die in 7a wie auch die in 7b gezeigte - ein oder mehrere nichttemporäre computerlesbare Medien oder Speichervorrichtungen, auf denen eine oder mehrere computerseitig ausführbare Anweisungen oder Software zum Implementieren von Techniken, die in der vorliegenden Offenbarung verschiedentlich beschrieben sind, codiert sind oder wo ein Zugang hierzu besteht. Beinhalten können die Speichervorrichtungen eine beliebige Anzahl von Permanentspeichervorrichtungen, so beispielsweise eine beliebige elektronische, optische und/oder magnetische Speichervorrichtung, darunter RAM, ROM, Flash, USB-Laufwerk, On-Board-CPU-Cache, Festplattenlaufwerk, Serverspeicher, Magnetband, CD-ROM oder beliebige andere physische computerlesbare Speichermedien zum Speichern von Daten und computerlesbaren Anweisungen und/oder Software, die die verschiedenen bereitgestellten Ausführungsformen implementieren. Es kann eine beliebige Kombination von Speichern benutzt werden, und es können die verschiedenen Speicherkomponenten in einer einzigen Rechenvorrichtung residieren oder über mehrere Rechenvorrichtungen verteilt sein. Zusätzlich können, wie vorstehend erläutert worden ist, die eine oder die mehreren Speichervorrichtungen separat oder entfernt von der einen oder den mehreren Rechenvorrichtungen vorgesehen sein. Zahlreiche Konfigurationen sind möglich.
  • Bei einigen exemplarischen Ausführungsformen der vorliegenden Offenbarung können die verschiedenen funktionellen Module, die hier beschrieben sind, und insbesondere das Trainieren und/oder Testen des Netzwerkes 732, in Software implementiert sein, so beispielsweise als Satz von Anweisungen (beispielsweise HTML, XML, C, C++, objektorientiertes C, JavaScript, Java, BASIC und dergleichen mehr), die auf einem beliebigen nichttemporären computerlesbaren Medium oder Computerprogrammerzeugnis (beispielsweise Festplattenlaufwerk, Server, Diskette oder ein anderer geeigneter nichttemporärer Speicher oder ein Satz von Speichern) codiert sind und die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass die verschiedenen hier bereitgestellten Creator-Recommendation-Methoden ausgeführt werden.
  • Bei wieder anderen Ausführungsformen sind die hier bereitgestellten Techniken unter Nutzung von softwarebasierten Engines implementiert. In derartigen Ausführungsformen ist eine Engine eine funktionelle Einheit, die einen oder mehrere Prozessoren beinhaltet, die programmiert oder auf andere Weise mit Anweisungen konfiguriert sind, die einen Creator-Recommendation-Prozess, wir hier verschiedentlich beschrieben, codieren. In diesem Sinne ist eine softwarebasierte Engine eine funktionelle Schaltung.
  • Bei wieder anderen Ausführungsformen sind die hier bereitgestellten Techniken mit Hardwareschaltungen implementiert, so beispielsweise mit einer Gate-Level-Logik (FPGA) oder einem zweckgebundenen Halbleiter (beispielsweise einer anwendungsspezifischen integrierten Schaltung oder ASIC). Wieder andere Ausführungsformen sind mit einem Microcontroller implementiert, der einen Prozessor, eine Anzahl von Eingabe/Ausgabe-Ports zum Empfangen und Ausgeben von Daten und eine Anzahl von eingebetteten Routinen, mit denen der Prozessor die hier bereitgestellte Funktionalität ausführt, aufweist. Allgemeiner gesprochen kann eine beliebige geeignete Kombination aus Hardware, Software und Firmware, wie offenbar ist, genutzt werden. Im Sinne des Vorliegenden stellt eine Schaltung eine oder mehrere physische Komponenten bereit und führt funktionell eine Aufgabe aus. Eine Schaltung kann beispielsweise einen oder mehrere Prozessoren darstellen, die programmiert oder auf andere Weise mit einem Softwaremodul oder einer logikbasierten Hardwareschaltung konfiguriert sind, um einen Satz von Ausgaben in Reaktion auf einen bestimmten Satz von Eingabereizen bereitzustellen. Es sind zahlreiche Konfigurationen möglich.
  • Die vorhergehende Beschreibung exemplarischer Ausführungsformen der Offenbarung wurde zu Zwecken der Darstellung und Beschreibung präsentiert. Sie soll weder erschöpfend sein, noch soll die Offenbarung genau auf die offenbarten Formen beschränkt sein. Viele Abwandlungen und Variationen sind im Lichte der vorliegenden Offenbarung möglich. Es ist beabsichtigt, dass der Umfang der Offenbarung nicht durch die Detailbeschreibung, sondern durch die beigefügten Ansprüche beschränkt wird.
  • Weitere exemplarische Ausführungsformen
  • Im Folgenden werden weitere Ausführungsformen beschrieben, aus denen sich zahlreiche Permutationen und Konfigurationen ergeben.
  • Beispiel 1 ist ein Verfahren zum Bestimmen einer Lesereihenfolge in einem Dokument, wobei das Verfahren umfasst: Verarbeiten eines aktuellen Textdurchlaufes durch ein erstes Netzwerk zum Generieren einer ersten Darstellung des aktuellen Textdurchlaufes, wobei die erste Darstellung einen verborgenen Zustand eines rekurrenten neuronalen Netzwerkes (RNN) umfasst, das unter Nutzung eines zustandsabhängigen auf Schriftzeichenebene gegebenen Modells trainiert ist, wobei der verborgene Zustand des ersten Netzwerkes während eines Trainingsprozesses nicht zurückgesetzt wird; Verarbeiten eines zweiten Textdurchlaufes rechts von dem aktuellen Textdurchlauf und eines dritten Textdurchlaufes unterhalb von dem aktuellen Textdurchlauf durch ein jeweiliges zweites und drittes Netzwerk zum Generieren jeweiliger zweiter und dritter Darstellungen, wobei die zweiten und dritten Darstellungen jeweilige verborgene Zustände eines RNN umfassen, das unter Nutzung eines zustandsunabhängigen auf Schriftzeichenebene gegebenen Modells trainiert ist, wobei die verborgenen Zustände des zweiten und dritten Netzwerkes während eines Trainingsprozesses periodisch zurückgesetzt werden; Verketten der ersten, zweiten und dritten Darstellungen zum Generieren einer verketteten Darstellung; Verarbeiten der verketteten Darstellung durch einen Klassifizierer zum Generieren einer vorhergesagten nächsten Textdurchlaufmarkierung; auf Grundlage der vorhergesagten nächsten Textdurchlaufmarkierung erfolgendes Generieren eines Textblocks, wobei der Textblock wenigstens einen Textdurchlauf in einer Lesereihenfolgesequenz umfasst; und Aktualisieren des aktuellen Textdurchlaufes auf Grundlage der vorhergesagten nächsten Textdurchlaufmarkierung derart, dass der aktuelle Textdurchlauf einer von einem Textdurchlauf rechts von dem aktuellen Textdurchlauf und einem Textdurchlauf unterhalb von dem aktuellen Textdurchlauf ist.
  • Beispiel 2 ist das Verfahren von Beispiel 1, wobei der zweite Textdurchlauf dem Textblock zugeordnet wird, wenn der Klassifizierer vorhersagt, dass der nächste Textdurchlauf rechts von dem aktuellen Textdurchlauf ist.
  • Beispiel 3 ist das Verfahren von Beispiel 1, wobei der dritte Textdurchlauf dem Textblock zugeordnet wird, wenn der Klassifizierer vorhersagt, dass der nächste Textdurchlauf unterhalb von dem aktuellen Textdurchlauf ist.
  • Beispiel 4 ist das Verfahren von Beispiel 1, wobei die zweiten und dritten Netzwerke unter Nutzung einer Verlustfunktion auf Grundlage eines vorhergesagten nächsten Schriftzeichens der jeweiligen zweiten und dritten Netzwerke und eines tatsächlichen nächsten Schriftzeichens in einer Eingabesequenz trainiert werden.
  • Beispiel 5 ist das Verfahren von Beispiel 4, wobei das erste Netzwerk unter Nutzung einer Verlustfunktion auf Grundlage eines vorhergesagten nächsten Schriftzeichens des ersten Netzwerkes und eines tatschlichen nächsten Schriftzeichens in einer Eingabesequenz trainiert wird.
  • Beispiel 6 ist das Verfahren von Beispiel 5, wobei das erste Netzwerk unter Nutzung einer Verlustfunktion trainiert wird, die einen Verlust auf Grundlage eines Vergleiches eines vorhergesagten nächsten Textschriftzeichens des ersten Netzwerkes mit einem tatsächlichen nächsten Schriftzeichen in einer Eingabesequenz und eines Vergleiches einer Vorhersagemarkierung für einen nächsten Textdurchlauf mit einer tatsächlichen Position des nächsten Textdurchlaufes berechnet.
  • Beispiel 7 ist das Verfahren von Beispiel 6, wobei das erste Netzwerk unter Nutzung eines Algorithmus der trunkierten Rückführung in der Zeit (truncated backpropagation in time) trainiert wird.
  • Beispiel 8 ist ein System zum Bestimmen einer Lesereihenfolge in einem Dokument, wobei das System umfasst: einen oder mehrere Prozessoren; ein Textdurchlaufmarkierungsmodul, das von dem einen oder den mehreren Prozessoren ausführbar oder steuer- bzw. regelbar oder beides ist, wobei das Textdurchlaufmarkierungsmodul empfangenen Textdurchläufen Markierungen als eines von R1 (AKTUELL), R2 (RECHTS), R3 (UNTERHALB) zuweist; ein Lesereihenfolgevorhersagenetzwerk, das des Weiteren ein erstes LSTM-Netzwerk (Long Short Term Memory), ein zweites LSTM-Netzwerk und ein drittes LSTM-Netzwerk umfasst und das von dem einen oder den mehreren Prozessoren ausführbar oder steuer- bzw. regelbar oder beides ist, wobei das Lesereihenfolgevorhersagenetzwerk eine Vorhersagemarkierung auf Grundlage eines mit R1 markierten Textdurchlaufes, eines mit R2 markierten Textdurchlaufes, eines mit R3 markierten Textdurchlaufes als eines von R2, R3 und EOS (End Of Statement) generiert, indem eine verkettete Darstellung verborgener Zustände des ersten LSTM-Netzwerkes, das unter Nutzung eines zustandsabhängigen auf Schriftzeichenebene gegebenen Modells trainiert ist, und der zweiten und dritten LSTM-Netzwerke, die unter Nutzung eines zustandsunabhängigen auf Schriftzeichenebene gegebenen Modells trainiert sind, verarbeitet wird; und ein Textblockanalysemodul, das von dem einen oder den mehreren Prozessoren ausführbar oder steuer- bzw. regelbar oder beides ist, wobei das Textblockanalysemodul einem Textblock einen Textdurchlauf zuweist.
  • Beispiel 9 ist das System von Beispiel 8, wobei der mit R1 markierte Textdurchlauf als Eingabe für das erste LSTM bereitgestellt wird, der mit R2 markierte Textdurchlauf als Eingabe für das zweite LSTM bereitgestellt wird und der mit R3 markierte Textdurchlauf für das dritte LSTM bereitgestellt wird.
  • Beispiel 10 ist das System von Beispiel 9, wobei jedes von den ersten, zweiten und dritten LSTMs eine interne Darstellung (R1', R2', R3') auf Grundlage einer jeweiligen Eingabe generiert.
  • Beispiel 11 ist das System von Beispiel 10, des Weiteren umfassend ein Klassifizierernetzwerk, wobei das Klassifizierernetzwerk als Eingabe eine verkettete Darstellung von R1', R2' und R3 empfängt.
  • Beispiel 12 ist das System von Beispiel 11, wobei das Klassifizierernetzwerk eine Vorhersagemarkierung generiert, die eines von R2, R3 und EOS umfasst, die einen vorhergesagten nächsten Textdurchlauf als rechts von einem aktuellen Textdurchlauf, unterhalb von dem aktuellen Textdurchlauf beziehungsweise ein End Of Statement angeben.
  • Beispiel 13 ist das System von Beispiel 12, wobei das Textblockanalysemodul die Vorhersagemarkierung nutzt, um einem Textblock einen Textdurchlauf zuzuweisen.
  • Beispiel 14 ist das System von Beispiel 8, wobei die empfangenen Textdurchläufe unter Nutzung eines OCR-Systems (optische Schriftzeichenerkennung OCR) generiert werden.
  • Beispiel 15 ist ein Computerprogrammerzeugnis, das ein oder mehrere nichttemporäre maschinenlesbare Medien beinhaltet, die mit Anweisungen codiert sind, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass ein Prozess zum Bestimmen einer Lesereihenfolge in einem Dokument ausgeführt wird, wobei der Prozess umfasst: Verarbeiten eines ersten Textdurchlaufes durch ein erstes Netzwerk zum Generieren einer ersten Darstellung des Textdurchlaufes, wobei die erste Darstellung einen verborgenen Zustand eines RNN umfasst, das unter Nutzung eines zustandsabhängigen auf Schriftzeichenebene gegebenen Modells trainiert ist; Verarbeiten eines zweiten Textdurchlaufes rechts von dem ersten Textdurchlauf und eines dritten Textdurchlaufes unterhalb von dem ersten Textdurchlauf durch ein jeweiliges zweites und drittes Netzwerk zum Generieren jeweiliger zweiter und dritter Darstellungen, wobei die zweiten und dritten Darstellungen jeweilige verborgene Zustände eines RNN umfassen, das unter Nutzung eines zustandsunabhängigen auf Schriftzeichenebene gegebenen Modells trainiert ist; Verketten der ersten, zweiten und dritten Darstellungen zum Generieren einer verketteten Darstellung; Verarbeiten der verketteten Darstellung durch einen Klassifizierer zum Generieren einer vorhergesagten nächsten Textdurchlaufmarkierung; und auf Grundlage der vorhergesagten nächsten Textdurchlaufmarkierung erfolgendes Generieren eines Textblocks, wobei der Textblock wenigstens einen Textdurchlauf in einer Lesereihenfolgesequenz umfasst.
  • Beispiel 16 ist das Computerprogrammerzeugnis von Beispiel 15, wobei der zweite Textdurchlauf dem Textblock zugeordnet wird, wenn der Klassifizierer vorhersagt, dass der nächste Textdurchlauf rechts von dem aktuellen Textdurchlauf ist.
  • Beispiel 17 ist das Computerprogrammerzeugnis von Beispiel 15, wobei der dritte Textdurchlauf dem Textblock zugeordnet wird, wenn der Klassifizierer vorhersagt, dass der nächste Textdurchlauf unterhalb von dem aktuellen Textdurchlauf ist.
  • Beispiel 18 ist das Computerprogrammerzeugnis von Beispiel 15, wobei die zweiten und dritten Netzwerke zustandsunabhängige Netzwerke sind und unter Nutzung einer Verlustfunktion auf Grundlage eines vorhergesagten nächsten Schriftzeichens der jeweiligen zweiten und dritten Netzwerke und eines tatsächlichen nächsten Schriftzeichens in einer Eingabesequenz trainiert werden.
  • Beispiel 19 ist das Computerprogrammerzeugnis von Beispiel 18, wobei das erste Netzwerk ein zustandsabhängiges Netzwerk ist.
  • Beispiel 20 ist das Computerprogrammerzeugnis von Beispiel 19, wobei das zustandsabhängige Netzwerk unter Nutzung einer Verlustfunktion trainiert wird, die einen Verlust auf Grundlage eines Vergleiches eines vorhergesagten nächsten Textschriftzeichens des zustandsabhängigen Netzwerkes mit einem tatsächlichen nächsten Schriftzeichen in einer Eingabesequenz und eines Vergleiches einer Vorhersagemarkierung für einen nächsten Textdurchlauf mit einer tatsächlichen Position des nächsten Textdurchlaufes berechnet.

Claims (19)

  1. Verfahren zum Bestimmen einer Lesereihenfolge in einem Dokument, wobei das Verfahren umfasst: Verarbeiten eines aktuellen Textdurchlaufes durch ein erstes Netzwerk zum Generieren einer ersten Darstellung des aktuellen Textdurchlaufes, wobei die erste Darstellung einen verborgenen Zustand eines rekurrenten neuronalen Netzwerkes (RNN) umfasst, das unter Nutzung eines zustandsabhängigen auf Schriftzeichenebene gegebenen Modells trainiert ist, wobei der verborgene Zustand des ersten Netzwerkes während eines Trainingsprozesses nicht zurückgesetzt wird; Verarbeiten eines zweiten Textdurchlaufes rechts von dem aktuellen Textdurchlauf und eines dritten Textdurchlaufes unterhalb von dem aktuellen Textdurchlauf durch ein jeweiliges zweites und drittes Netzwerk zum Generieren jeweiliger zweiter und dritter Darstellungen, wobei die zweiten und dritten Darstellungen jeweilige verborgene Zustände eines RNN umfassen, das unter Nutzung eines zustandsunabhängigen auf Schriftzeichenebene gegebenen Modells trainiert ist, wobei die verborgenen Zustände des zweiten und dritten Netzwerkes während eines Trainingsprozesses periodisch zurückgesetzt werden; Verketten der ersten, zweiten und dritten Darstellungen zum Generieren einer verketteten Darstellung; Verarbeiten der verketteten Darstellung durch einen Klassifizierer zum Generieren einer vorhergesagten nächsten Textdurchlaufmarkierung; auf Grundlage der vorhergesagten nächsten Textdurchlaufmarkierung erfolgendes Generieren eines Textblocks, wobei der Textblock wenigstens einen Textdurchlauf in einer Lesereihenfolgesequenz umfasst; und Aktualisieren des aktuellen Textdurchlaufes auf Grundlage der vorhergesagten nächsten Textdurchlaufmarkierung derart, dass der aktuelle Textdurchlauf einer von einem Textdurchlauf rechts von dem aktuellen Textdurchlauf und einem Textdurchlauf unterhalb von dem aktuellen Textdurchlauf ist.
  2. Verfahren nach Anspruch 1, wobei der zweite Textdurchlauf dem Textblock zugeordnet wird, wenn der Klassifizierer vorhersagt, dass der nächste Textdurchlauf rechts von dem aktuellen Textdurchlauf ist.
  3. Verfahren nach Anspruch 1, wobei der dritte Textdurchlauf dem Textblock zugeordnet wird, wenn der Klassifizierer vorhersagt, dass der nächste Textdurchlauf unterhalb von dem aktuellen Textdurchlauf ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die zweiten und dritten Netzwerke unter Nutzung einer Verlustfunktion auf Grundlage eines vorhergesagten nächsten Schriftzeichens der jeweiligen zweiten und dritten Netzwerke und eines tatsächlichen nächsten Schriftzeichens in einer Eingabesequenz trainiert werden.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei das erste Netzwerk unter Nutzung einer Verlustfunktion auf Grundlage eines vorhergesagten nächsten Schriftzeichens des ersten Netzwerkes und eines tatschlichen nächsten Schriftzeichens in einer Eingabesequenz trainiert wird.
  6. Verfahren nach Anspruch 5, wobei das erste Netzwerk unter Nutzung einer Verlustfunktion trainiert wird, die einen Verlust auf Grundlage eines Vergleiches eines vorhergesagten nächsten Textschriftzeichens des ersten Netzwerkes mit einem tatsächlichen nächsten Schriftzeichen in einer Eingabesequenz und eines Vergleiches einer Vorhersagemarkierung für einen nächsten Textdurchlauf mit einer tatsächlichen Position des nächsten Textdurchlaufes berechnet.
  7. Verfahren nach Anspruch 6, wobei das erste Netzwerk unter Nutzung eines Algorithmus der trunkierten Rückführung in der Zeit (truncated backpropagation in time) trainiert wird.
  8. System zum Bestimmen einer Lesereihenfolge in einem Dokument, wobei das System umfasst: einen oder mehrere Prozessoren; ein Textdurchlaufmarkierungsmodul, das von dem einen oder den mehreren Prozessoren ausführbar oder steuer- bzw. regelbar oder beides ist, wobei das Textdurchlaufmarkierungsmodul empfangenen Textdurchläufen Markierungen als eines von R1 (AKTUELL), R2 (RECHTS), R3 (UNTERHALB) zuweist; ein Lesereihenfolgevorhersagenetzwerk, das des Weiteren ein erstes LSTM-Netzwerk (Long Short Term Memory), ein zweites LSTM-Netzwerk und ein drittes LSTM-Netzwerk umfasst und das von dem einen oder den mehreren Prozessoren ausführbar oder steuer- bzw. regelbar oder beides ist, wobei das Lesereihenfolgevorhersagenetzwerk eine Vorhersagemarkierung auf Grundlage eines mit R1 markierten Textdurchlaufes, eines mit R2 markierten Textdurchlaufes, eines mit R3 markierten Textdurchlaufes als eines von R2, R3 und EOS (End Of Statement) generiert, indem eine verkettete Darstellung verborgener Zustände des ersten LSTM-Netzwerkes, das unter Nutzung eines zustandsabhängigen auf Schriftzeichenebene gegebenen Modells trainiert ist, und der zweiten und dritten LSTM-Netzwerke, die unter Nutzung eines zustandsunabhängigen auf Schriftzeichenebene gegebenen Modells trainiert sind, verarbeitet wird; und ein Textblockanalysemodul, das von dem einen oder den mehreren Prozessoren ausführbar oder steuer- bzw. regelbar oder beides ist, wobei das Textblockanalysemodul einem Textblock einen Textdurchlauf zuweist.
  9. System nach Anspruch 9, wobei der mit R1 markierte Textdurchlauf als Eingabe für das erste LSTM bereitgestellt wird, der mit R2 markierte Textdurchlauf als Eingabe für das zweite LSTM bereitgestellt wird und der mit R3 markierte Textdurchlauf für das dritte LSTM bereitgestellt wird.
  10. System nach Anspruch 9 oder 10, wobei jedes von den ersten, zweiten und dritten LSTMs eine interne Darstellung R1', R2', R3' auf Grundlage einer jeweiligen Eingabe generiert.
  11. System nach Anspruch 10, des Weiteren umfassend ein Klassifizierernetzwerk, wobei das Klassifizierernetzwerk als Eingabe eine verkettete Darstellung von R1', R2' und R3 empfängt.
  12. System nach Anspruch 11, wobei das Klassifizierernetzwerk eine Vorhersagemarkierung generiert, die eines von R2, R3 und EOS umfasst, die einen vorhergesagten nächsten Textdurchlauf als rechts von einem aktuellen Textdurchlauf, unterhalb von dem aktuellen Textdurchlauf beziehungsweise ein End Of Statement angeben.
  13. System nach Anspruch 12, wobei das Textblockanalysemodul die Vorhersagemarkierung nutzt, um einem Textblock einen Textdurchlauf zuzuweisen.
  14. System nach einem der Ansprüche 8 bis 13, wobei die empfangenen Textdurchläufe unter Nutzung eines OCR-Systems (optische Schriftzeichenerkennung OCR) generiert werden.
  15. Computerprogrammerzeugnis, das ein oder mehrere nichttemporäre maschinenlesbare Medien beinhaltet, die mit Anweisungen codiert sind, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass ein Prozess zum Bestimmen einer Lesereihenfolge in einem Dokument ausgeführt wird, wobei der Prozess umfasst: Verarbeiten eines ersten Textdurchlaufes durch ein erstes Netzwerk zum Generieren einer ersten Darstellung des Textdurchlaufes, wobei die erste Darstellung einen verborgenen Zustand eines RNN umfasst, das unter Nutzung eines zustandsabhängigen auf Schriftzeichenebene gegebenen Modells trainiert ist; Verarbeiten eines zweiten Textdurchlaufes rechts von dem ersten Textdurchlauf und eines dritten Textdurchlaufes unterhalb von dem ersten Textdurchlauf durch ein jeweiliges zweites und drittes Netzwerk zum Generieren jeweiliger zweiter und dritter Darstellungen, wobei die zweiten und dritten Darstellungen jeweilige verborgene Zustände eines RNN umfassen, das unter Nutzung eines zustandsunabhängigen auf Schriftzeichenebene gegebenen Modells trainiert ist; Verketten der ersten, zweiten und dritten Darstellungen zum Generieren einer verketteten Darstellung; Verarbeiten der verketteten Darstellung durch einen Klassifizierer zum Generieren einer vorhergesagten nächsten Textdurchlaufmarkierung; und auf Grundlage der vorhergesagten nächsten Textdurchlaufmarkierung erfolgendes Generieren eines Textblocks, wobei der Textblock wenigstens einen Textdurchlauf in einer Lesereihenfolgesequenz umfasst.
  16. Computerprogrammerzeugnis nach Anspruch 15, wobei die zweiten und dritten Netzwerke zustandsunabhängige Netzwerke sind und unter Nutzung einer Verlustfunktion auf Grundlage eines vorhergesagten nächsten Schriftzeichens der jeweiligen zweiten und dritten Netzwerke und eines tatsächlichen nächsten Schriftzeichens in einer Eingabesequenz trainiert werden.
  17. Computerprogrammerzeugnis nach Anspruch 16, wobei das erste Netzwerk ein zustandsabhängiges Netzwerk ist.
  18. Computerprogrammerzeugnis nach Anspruch 17, wobei das zustandsabhängige Netzwerk unter Nutzung einer Verlustfunktion trainiert wird, die einen Verlust auf Grundlage eines Vergleiches eines vorhergesagten nächsten Textschriftzeichens des zustandsabhängigen Netzwerkes mit einem tatsächlichen nächsten Schriftzeichen in einer Eingabesequenz und eines Vergleiches einer Vorhersagemarkierung für einen nächsten Textdurchlauf mit einer tatsächlichen Position des nächsten Textdurchlaufes berechnet.
  19. Computerprogrammerzeugnis nach Anspruch 15, des Weiteren beinhaltend Anweisungen, die bei Ausführung durch den einen oder die mehreren Prozessoren veranlassen, dass ein Prozess nach einem der Ansprüche 2 bis 7 ausgeführt wird.
DE102018006481.7A 2017-12-15 2018-08-16 Nutzung von Deep-Learning-Techniken zum Bestimmen einer kontextbezogenen Lesereihenfolge in einem Dokument Pending DE102018006481A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/843,953 2017-12-15
US15/843,953 US10423828B2 (en) 2017-12-15 2017-12-15 Using deep learning techniques to determine the contextual reading order in a form document

Publications (1)

Publication Number Publication Date
DE102018006481A1 true DE102018006481A1 (de) 2019-06-19

Family

ID=63715283

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018006481.7A Pending DE102018006481A1 (de) 2017-12-15 2018-08-16 Nutzung von Deep-Learning-Techniken zum Bestimmen einer kontextbezogenen Lesereihenfolge in einem Dokument

Country Status (5)

Country Link
US (1) US10423828B2 (de)
CN (1) CN109933780B (de)
AU (1) AU2018217281B2 (de)
DE (1) DE102018006481A1 (de)
GB (1) GB2569418B (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109858046B (zh) * 2018-02-09 2024-03-08 谷歌有限责任公司 利用辅助损失来学习神经网络中的长期依赖性
US20210034969A1 (en) * 2018-03-09 2021-02-04 Deepmind Technologies Limited Training an unsupervised memory-based prediction system to learn compressed representations of an environment
US10944789B2 (en) * 2018-07-25 2021-03-09 Easy Solutions Enterprises Corp. Phishing detection enhanced through machine learning techniques
US11449205B2 (en) * 2019-04-01 2022-09-20 Microsoft Technology Licensing, Llc Status-based reading and authoring assistance
US10949664B2 (en) * 2019-04-08 2021-03-16 Kyocera Document Solutions Inc. Optical character recognition training data generation for neural networks by parsing page description language jobs
CN110414516B (zh) * 2019-08-05 2022-02-01 上海海事大学 一种基于深度学习的单个汉字识别方法
CN110569359B (zh) * 2019-08-26 2023-09-15 腾讯科技(深圳)有限公司 识别模型的训练及应用方法、装置、计算设备及存储介质
CN110738182A (zh) * 2019-10-21 2020-01-31 四川隧唐科技股份有限公司 一种用于高精度识别中标金额的lstm模型单元训练方法及装置
WO2021087334A1 (en) * 2019-11-01 2021-05-06 Vannevar Labs, Inc. Neural network-based optical character recognition
CN111090981B (zh) * 2019-12-06 2022-04-15 中国人民解放军战略支援部队信息工程大学 基于双向长短时记忆网络的中文文本自动断句与标点生成模型构建方法及***
CN111460223B (zh) * 2020-02-25 2023-04-18 天津大学 基于深度网络的多模态特征融合的短视频单标签分类方法
GB2596607B (en) * 2020-07-03 2024-01-03 Imagination Tech Ltd Methods and systems for running dynamic recurrent neural networks in hardware
CN113111329B (zh) * 2021-06-11 2021-08-13 四川大学 基于多序列长短期记忆网络的口令字典生成方法及***
CN114495147B (zh) * 2022-01-25 2023-05-05 北京百度网讯科技有限公司 识别方法、装置、设备以及存储介质
CN114821590A (zh) * 2022-04-25 2022-07-29 中国平安人寿保险股份有限公司 文档信息提取方法、装置、设备及介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756871B2 (en) * 2004-10-13 2010-07-13 Hewlett-Packard Development Company, L.P. Article extraction
JP2007141159A (ja) * 2005-11-22 2007-06-07 Fuji Xerox Co Ltd 画像処理装置、画像処理方法、及び画像処理プログラム
JP4137951B2 (ja) * 2006-03-28 2008-08-20 シャープ株式会社 画像処理装置、システム、情報処理装置、及びプログラム
CN101414351A (zh) * 2008-11-03 2009-04-22 章毅 一种指纹识别***及其控制方法
CN103632166A (zh) * 2013-12-04 2014-03-12 西安电子科技大学 基于融合显著信息的潜在主题极光图像分类方法
US9846836B2 (en) * 2014-06-13 2017-12-19 Microsoft Technology Licensing, Llc Modeling interestingness with deep neural networks
CN105678293A (zh) * 2015-12-30 2016-06-15 成都数联铭品科技有限公司 一种基于cnn-rnn的复杂图像字序列识别方法
WO2017168252A1 (en) * 2016-03-31 2017-10-05 Maluuba Inc. Method and system for processing an input query
CN106126507B (zh) * 2016-06-22 2019-08-09 哈尔滨工业大学深圳研究生院 一种基于字符编码的深度神经翻译方法及***
US11550751B2 (en) * 2016-11-18 2023-01-10 Microsoft Technology Licensing, Llc Sequence expander for data entry/information retrieval
US11200412B2 (en) * 2017-01-14 2021-12-14 Innoplexus Ag Method and system for generating parsed document from digital document
CN108334805B (zh) * 2017-03-08 2020-04-03 腾讯科技(深圳)有限公司 检测文档阅读顺序的方法和装置
CN106933804B (zh) * 2017-03-10 2020-03-31 上海数眼科技发展有限公司 一种基于深度学习的结构化信息抽取方法
CN107247755A (zh) * 2017-05-27 2017-10-13 深圳市唯特视科技有限公司 一种基于上下文序列记忆网络的个性化图像字幕生成方法
US10713519B2 (en) * 2017-06-22 2020-07-14 Adobe Inc. Automated workflows for identification of reading order from text segments using probabilistic language models

Also Published As

Publication number Publication date
AU2018217281B2 (en) 2021-08-05
GB2569418A (en) 2019-06-19
GB201814026D0 (en) 2018-10-10
AU2018217281A1 (en) 2019-07-04
CN109933780A (zh) 2019-06-25
CN109933780B (zh) 2023-04-07
US10423828B2 (en) 2019-09-24
GB2569418B (en) 2020-10-07
US20190188463A1 (en) 2019-06-20

Similar Documents

Publication Publication Date Title
DE102018006481A1 (de) Nutzung von Deep-Learning-Techniken zum Bestimmen einer kontextbezogenen Lesereihenfolge in einem Dokument
US9779085B2 (en) Multilingual embeddings for natural language processing
JP2022541199A (ja) データテーブルの画像表現に基づいて構造化されたデータベースにデータ挿入するためのシステムおよび方法。
US9430557B2 (en) Automatic data interpretation and answering analytical questions with tables and charts
DE102018009243A1 (de) Abstrahierendes Zusammenfassen langer Dokumente unter Nutzung des Deep-Learning strukturierter Dokumente
CN106446526A (zh) 电子病历实体关系抽取方法及装置
Jhamtani et al. Learning to generate move-by-move commentary for chess games from large-scale social forum data
DE102014108191A1 (de) Fehlerkorrektur in Tabellen unter Verwendung erkannter funktionaler Abhängigkeiten
DE112020003365T5 (de) Überwachte kreuzmodale wiedergewinnung für zeitreihen und text unter verwendung von multimodalen triplettverlusten
US10303938B2 (en) Identifying a structure presented in portable document format (PDF)
CN110178139A (zh) 使用具有注意力机制的全卷积神经网络的字符识别的***和方法
DE102019004300A1 (de) Verwendung eines dynamischen speichernetzwerks zum verfolgen digitaler dialogzustände und erzeugen von antworten
DE112012005998T5 (de) Vorrichtung, Verfahren und Programm zur Wortsinnschätzung
Shen et al. A joint model for multimodal document quality assessment
CN110705400A (zh) 一种试卷版面题目自动拆分的方法
DE212021000356U1 (de) Erzeugen einer gestuften Textformatierung für elektronische Dokumente und Anzeigen
Nassiri et al. Arabic L2 readability assessment: Dimensionality reduction study
CN117501283A (zh) 文本到问答模型***
WO2019187696A1 (ja) ベクトル化装置、言語処理方法及びプログラム
CN113673294A (zh) 文献关键信息的提取方法、装置、计算机设备和存储介质
CN110610006A (zh) 基于笔画和字形的形态学双通道中文词嵌入方法
KR102569381B1 (ko) 테이블 중심의 웹 문서를 위한 기계독해 시스템 및 방법
WO2021171575A1 (ja) 学習装置、テキスト生成装置、学習方法、テキスト生成方法及びプログラム
Apeltsin Data Science Bookcamp: Five Real-world Python Projects
Schomacker Application of Transformer-based Methods to Latin Text Analysis

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE PARTG MB, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017270000

Ipc: G06F0040200000

R012 Request for examination validly filed