Warum lohnt es sich, mehr Seitenzahlen und Originaltextfragmente in JSON zu speichern?
Das Extraktionsergebnis ist nur ein `amount: 1200`, und der Prüfer muss das gesamte Dokument noch einmal durchgehen. Das Speichern weiterer Seitenzahlen und kurzer Originaltextfragmente ist oft sinnvoller als das Hinzufügen einer Dezimalstelle der „Konfidenz“: Dadurch können Fehler lokalisiert und nachträgliche Korrekturen gut dokumentiert werden.
Wenn Ihr Extraktionsergebnis nur ein amount: 1200 enthält, muss der Prüfer das gesamte Dokument noch einmal durchgehen, um seine Quelle zu bestätigen. Das Speichern zusätzlicher Seitenzahlen und kurzer Textausschnitte ist oft sinnvoller als das Hinzufügen einer weiteren Dezimalstelle der „Konfidenz". Dadurch können Fehler lokalisiert und jede Korrektur dokumentiert werden.
Dieser Artikel eignet sich für Entwickler und Redakteure, die Dokumente extrahieren, zweisprachige Überprüfungen durchführen oder Finanzfelder überprüfen. Der Code in diesem Artikel wird anhand synthetischer Beispiele demonstriert und hat die Beispielprüfung in einer isolierten Umgebung bestanden. Dies stellt jedoch keine Garantie für alle tatsächlichen Dateien oder Produkteffekte dar. Bevor Sie wichtige Dokumente bearbeiten, bewahren Sie bitte die Originale auf und überprüfen Sie sie anhand der Grenzen und Akzeptanzpunkte im Text.
Wie speichere ich mehrere Seitenzahlen und Originaltextfragmente? Fazit in einem Satz
Speichern Sie mehrere Seitenzahlen, kurze Originaltextausschnitte und Datei-Hashes, damit jedes Feld auf die Quellseite überprüft werden kann.
| Ihre Situation | Empfohlene Praktiken | Grund |
|---|---|---|
| Felder haben nur Werte und keine Quellen | Speichern Sie gleichzeitig Seitenzahlen und kurze Originaltextausschnitte | Der Prüfer kann den Speicherort direkt lokalisieren, ohne das gesamte Dokument erneut lesen zu müssen. |
| Es muss bestätigt werden, welcher Dateiversion der Datensatz entspricht | Dateiinhalts-Hash speichern | Der Hash kann die entsprechende Version identifizieren |
| Das Parsen der Seitenzahlen der Bibliothek beginnt bei 0 | Konvertieren Sie, um bei 1 an der Grenze zu beginnen und im Protokoll zu vermerken | Im Einklang mit manuell angezeigten Seitenzahlen |
| Fragmente können vertrauliche Informationen enthalten | Behalten Sie nur kurze, fachbezogene Sätze bei | Vermeiden Sie es, die gesamte Seite in Protokolle, Suchindizes oder Benachrichtigungen zu kopieren |
📊 Kernvergleich
| Vergleichsartikel | Speichern Sie nur Feldwerte (z. B.amount: 1200). | Speichern Sie Seitenzahlen und kurze Textausschnitte |
|---|---|---|
| Positionierungsfehler | Ich muss das gesamte Dokument noch einmal lesen | Reduzierbar auf die entsprechende Seite |
| Korrigieren Sie den Datensatz | Es ist schwierig, die Grundlage zu erklären | Für jede Korrektur steht ein Ausschnitt des Originaltextes zur Durchsicht zur Verfügung |
Das Beweisobjekt sollte in der Lage sein, Menschen zum Originaltext zurückzuführen
Im folgenden Beispiel werden Seitenzahlen verwendet, die bei 1 beginnen. Wenn Ihre Parsing-Bibliothek bei 0 beginnt, muss sie an den Grenzen konvertiert und im Protokoll vermerkt werden.
Fragmente behalten nur kurze Sätze, die für ein Feld relevant sind, und vermeiden so das Kopieren ganzer Seiten vertraulicher Informationen in Protokolle, Suchindizes oder Benachrichtigungen.
Überprüfe zuerst die Form, dann überprüfe die Entsprechung
from jsonschema import Draft202012Validator
schema = {
"type": "object", "required": ["value", "evidence"],
"additionalProperties": False,
"properties": {
"value": {"type": "string"},
"evidence": {"type": "object", "additionalProperties": False,
"required": ["page", "quote"],
"properties": {"page": {"type": "integer", "minimum": 1},
"quote": {"type": "string", "minLength": 1}}}
}
}
v = Draft202012Validator(schema)
pages = ["Invoice total: USD 1200."]
record = {"value": "1200", "evidence": {"page": 1, "quote": "USD 1200"}}
assert v.is_valid(record)
def quote_exists(r):
if not v.is_valid(r):
return False
e = r["evidence"]
return e["page"] <= len(pages) and e["quote"] in pages[e["page"] - 1]
assert quote_exists(record)
fake = {"value": "9999", "evidence": {"page": 1, "quote": "USD 9999"}}
assert v.is_valid(fake)
assert not quote_exists(fake)
assert not quote_exists({"value": "1", "evidence": {"page": 9, "quote": "x"}})
Dieses synthetische Beispiel konstruiert bewusst eine strukturell legitime, aber evidenzfreie Dokumentation. Es zeigt, dass Schema-Validierung und Quellzuordnung sich nicht gegenseitig ersetzen können: Eine korrekte Struktur bedeutet nicht, dass die Beweise tatsächlich existieren. Die Feldstruktur eines Objekts kann in JSON-Schema-Objektstruktur referenziert werden.
Echte PDFs können Unterschiede in Wortsegmentierung, Ligatur und Raumabgabe aufweisen; Substring-Matching ist nur eine minimale Demonstration und kann nicht direkt als vollständiger Beweisverifikationsalgorithmus verwendet werden.
Beweise müssen ebenfalls an die Dateiversion gebunden sein
| Gegenstände, die gerettet werden sollten | Es lässt sich lösen | Keine Garantien |
|---|---|---|
| Dateiinhalt-Hash | Identifizieren Sie die entsprechende Version | Der Uploader hat Dateiberechtigungen |
| Seitenzahl | Grenzen Sie Ihren Suchbereich ein | Die Seite wurde nicht umgestellt |
| Originaltextauszug | Schnelle Textüberprüfung | Die Semantik der Felder muss korrekt sein |
| Koordinaten und Koordinatensysteme | Finden Sie den Seitenbereich | Die OCR-Ergebnisse waren korrekt |
Der Originaltext existiert, aber er könnte auch an der falschen Stelle zitiert werden
Der gleiche Betrag kann mehrfach in einem einzigen Dokument erscheinen. Selbst wenn Fragmente existieren, musst du feststellen, ob sie total, steuerlich oder der Saldo der vorherigen Periode sind.
Weitere Annahme kann überprüft werden:
- Ob Feld-Tags konsistent sind
- Überprüfen, ob die Tabelle korrekt ist
- Ob der benachbarte Kontext übereinstimmt
Wenn Sie mehreren Kandidaten begegnen, wählen Sie nicht nur den ersten, sondern vergleichen Sie den Kontext einzeln.
Zweisprachiges Korrekturlesen erfordert am effektivsten Rückverfolgbarkeit
Durch die Verwendung dieser Quelleinträge zusammen mit den zweisprachigen Überprüfungen von OmniDoc (Produkteinführung) können Rezensenten von den übersetzten Zahlen zurück zur Quellseite springen, um ihre Bedeutung zu bestätigen.
Der Wert dieses Ansatzes liegt nicht darin, die Ausgabe komplizierter erscheinen zu lassen, sondern darin, jede Korrektur klar zu erklären und so die Zeit für die Suche nach dem Original zu reduzieren.
🎯 Welche Methode passt zu dir?
Wenn du manuelles Korrekturlesen der Zahlen in der Übersetzung brauchst
Priorität hat das Speichern von Seitenzahlen und kurzen Originaltextclips; während des Korrekturlesens können Sie zur Bestätigung direkt zur Quellseite zurückkehren.
Wenn Sie die Dateiversion benötigen, die dem Rückverfolgbarkeitsdatensatz entspricht
Speichere den Dateiinhalt-Hash und verwende ihn zusammen mit Seitenzahlen, um den Suchbereich einzugrenzen.
Wenn dein Feld mehrfach in der Akte erscheint
Zusätzlich zum Vergleich der Clips musst du auch die Feld-Tags, die Tabelle, in der sie stehen, und den angrenzenden Kontext überprüfen – wähle nicht nur den ersten Kandidaten.
❓ Häufig gestellte Fragen (FAQ)
1. Kann das Speichern von Seitenzahlen und Originaltextclips die Schema-Validierung ersetzen?
Nein. Die Beispiele in diesem Artikel zeigen, dass strukturell gültige Unterlagen möglicherweise noch keine entsprechenden Belege haben und beide separat überprüft werden müssen.
2. Warum nicht einfach ein Vertrauensfeld hinzufügen?
Der Originaltext ist der Ansicht, dass das Speichern von Seitenzahlen und kurzen Originalausschnitten oft nützlicher ist, da Fehler so identifiziert werden können und Belege für spätere Korrekturen geliefert werden.
3. Kannst du nach dem Speichern des Hashs bestätigen, dass der Dateiinhalt korrekt ist?
Hashes können nur die entsprechende Version erkennen; sie können nicht garantieren, dass der Uploader Dateiberechtigungen hat, noch können sie garantieren, dass die Feldsemantik korrekt ist.
4. Wie lange sollte ein Fragment aufbewahrt werden?
Behalten Sie nur kurze Sätze, die sich auf das Feld beziehen, und vermeiden Sie es, sensible Informationen von der gesamten Seite in Protokolle, Suchregister oder Benachrichtigungsnachrichten zu kopieren.
📝 Zusammenfassung
Speichern Sie Seitenzahlen, kurze Originaltextausschnitte und Datei-Hashes, um Feldwerte auf der Quellseite überprüfen zu lassen und auch evidenzbasierte Korrekturen bereitzustellen. Bitte bewahren Sie vor der Behandlung wichtiger Dokumente die Originale auf und schließen Sie die Überprüfung ab.


