Wie OCR die Qualität von RAG-Systemen beeinflusst: Eine technische Analyse

Aktualisiert:
KI zu diesem Artikel befragen
Wie OCR die Qualität von RAG-Systemen beeinflusst: Eine technische Analyse
Kurz gesagt
  • OCR-Fehler verderben nicht nur den Text – sie zerstören kaskadenartig jeden nachfolgenden Schritt der Pipeline: Chunking, Embeddings, Retrieval.
  • Selbst 2 % CER in einem 100-seitigen Dokument bedeuten ~ 1.000 verzerrte Zeichen, die in die Vektordatenbank gelangen.
  • Ein semantisch relevanter Chunk könnte aufgrund eines einzigen zusammengeklebten Wortes in einem Schlüssel-Satz nicht im Retrieval landen.
  • Die Textnachbearbeitung nach OCR ist günstiger und effektiver, als zu versuchen, das Retrieval in späteren Phasen zu korrigieren.

Wenn Ihr RAG-System irrelevante Ergebnisse liefert oder konsequent halluziniert – der erste Ort, an dem Sie nach dem Problem suchen sollten, ist nicht das Modell, nicht die Chunking-Parameter und nicht die Vektordatenbank. Suchen Sie im Text, den Sie dort hochgeladen haben.

Ein OCR-Fehler ist kein lokaler Defekt. Es ist eine Rauschinjektion am Eingang der Pipeline, die sich bei jedem nachfolgenden Schritt multipliziert. Verzerrtes Token → falsche Satzgrenze → fehlerhafter Chunk → verschobener Vektor → verpasstes Retrieval → halluzinierte Antwort. Jeder Schritt verstärkt den vorherigen.

Dieser Artikel ist eine technische Analyse, wo und wie dies geschieht, mit realen Beispielen von Artefakten und konkreten Korrekturmethoden. Wenn Sie einen allgemeinen Überblick darüber benötigen, was OCR ist und warum es in RAG-Systemen benötigt wird – lesen Sie den vorherigen Artikel der Serie: „OCR in modernen KI-Systemen: von gescannten Dokumenten zu RAG“.

Pipeline zur Verarbeitung gescannter Dokumente: von PDF zu Embeddings

Bevor wir analysieren, wo etwas kaputt geht – lassen Sie uns die vollständige Pipeline abbilden. Jeder Schritt unten ist ein potenzieller Punkt der Qualitätsdegradation.

Schritt Was passiert Was kann durch schlechtes OCR kaputt gehen
1. PDF-Typ-Erkennung Prüfung auf Vorhandensein einer Textschicht (PyMuPDF, pdfminer) Hybrid-PDF wird teilweise als textbasiert erkannt; gescannter Teil wird übersprungen
2. Bildvorverarbeitung Schräglagenkorrektur, Entrauschen, Binarisierung, Ausrichtungskorrektur Übersehene Schräglage oder Rauschen → erhöhter CER im nächsten Schritt
3. OCR Konvertierung von Raster in Text (Tesseract, PaddleOCR, GPT-4o-mini) Artefakte: zusammengeklebte Wörter, ersetzte Zeichen, kaputte Tabellenstruktur, Müll von Rauschen
4. Textnachbearbeitung Bereinigung von Artefakten, Satzzeichennormalisierung, Entfernung von doppelten Zeilen Wenn der Schritt übersprungen wird – der ganze Dreck geht weiter
5. Chunking Aufteilung des Textes in Fragmente nach Größe/Semantik Falsche Satzgrenzen → fehlerhafte Chunks; zusammengeklebte Wörter brechen die Satzaufteilung
6. Embeddings Umwandlung des Chunks in einen Vektor (text-embedding-3-small, BGE, E5) Verzerrter Text → verschobener Vektor; OOV-Tokens reduzieren die Qualität der Darstellung
7. Indizierung in Vector DB Speicherung von Vektoren (Qdrant, pgvector, Weaviate) Fehler aus Schritt 6 wird für immer behoben – der Neuaufbau des Index ist teuer
8. Retrieval ANN-Suche nach Kosinus-Ähnlichkeit basierend auf der Anfrage Verschobener Vektor des Chunks → geringere Ähnlichkeit mit der korrekten Anfrage → Chunk landet nicht in den Top-k
9. Generierung (LLM) LLM formuliert eine Antwort basierend auf den gefundenen Chunks Müll im Kontext → Halluzinationen; fehlender Chunk → Antwort „nicht gefunden“ oder erfunden

Die wichtigste Erkenntnis aus dieser Karte: Ein OCR-Fehler (Schritt 3) lokalisiert sich nicht in Schritt 3. Er driftet durch die gesamte Pipeline und manifestiert sich in Schritt 9 als Problem mit der Antwortqualität – weit weg von der Ursache.

Deshalb suchen die meisten Teams an der falschen Stelle: Sie optimieren das Chunking, wechseln das Embedding-Modell, konfigurieren den Reranker – aber das Problem bleibt, weil es in den Eingabedaten liegt.

Typische OCR-Artefakte: Was genau kaputt geht und warum

Unten finden Sie eine reale Taxonomie von Artefakten, denen Sie in typischen Unternehmensarchiven begegnen werden. Für jedes Artefakt gibt es ein Beispiel, wie es aussieht und was es in der weiteren Pipeline beschädigt.

1. Zusammengeklebte Wörter (word merging)

Original im Dokument OCR-Ergebnis
термін дії договору — 12 місяців терміндіїдоговору— 12місяців
загальна сума складає 47 500 грн загальнасумаскладає47500грн
відповідно до статті 651 ЦКУ відповіднодостатті651ЦКУ

Ursache: ungleichmäßiger Kontrast zwischen Zeichen und Hintergrund, niedrige DPI, JPEG-Kompression.

Was es kaputt macht: Der Satzteiler findet keine Satzgrenzen; der Tokenizer des Embedding-Modells erhält ein OOV-Token anstelle von zwei bekannten Wörtern; die Suche nach „термін дії“ findet keinen Chunk mit „терміндіїдоговору“.

2. Zeichenersetzung (character substitution)

Original OCR-Ergebnis Art der Ersetzung
доза: 2,5 мг доза: З,5мг Ziffer „2“ → Kyrillisch „З“
п. 4.1 договору п. Ч.1 договору Ziffer „4“ → Buchstabe „Ч“
§ 14 Закону S 14 Закону Paragraphenzeichen → ASCII „S“
рахунок № 2024-08-15 рахунок Ne 2024-О8-15 „№“ → „Ne“, „0“ → „О“

Ursache: Ähnlichkeit der Zeichenformen bei niedriger Auflösung oder schlechtem Kontrast. Besonders häufig – bei gemischten kyrillischen und lateinischen Schriftarten.

Was es kaputt macht: Numerische Werte werden zu Text; die Suche nach dem genauen Wert („доза 2,5 мг“) passt nicht zum Artefakt; in medizinischen und juristischen Dokumenten ist dies ein kritischer Fehler.

3. Phantomzeichen und -zeilen (hallucinated content)

Quelle OCR-Ergebnis
Umgedrehte Seite (180°) аМЫМ "9a18 40 S¥3IAVT ONIHLY3HS N33ML3E
Stempel „КОПІЯ“ über dem Text Textfragmente mit Einfügungen von „КОПIЯ“ innerhalb von Sätzen
Schatten vom Papierknick Zusätzliche Zeichen oder Zeilen zwischen Absätzen
Leere Seite mit Scannerrauschen Zeilen mit zufälligen Zeichen: .,;..|||. :

Ursache: OCR versucht, jedes Pixelmuster als Zeichen zu erkennen. Umgedrehter Text, Scannerrauschen, Kompressionsartefakte – all das wird in „Text“ umgewandelt.

Was es kaputt macht: Müll gelangt als gültiger Inhalt in den Vektor; beim Retrieval erhält die LLM einen unlesbaren Kontext und halluziniert oder sagt „Ich weiß es nicht“.

4. Kaputte Tabellenstruktur

Originaltabelle OCR-Ausgabe (linearer Text)
Артикул | Назва | Кількість | Ціна
A-001 | Кабель | 50 шт | 120 грн
A-002 | Роз'єм | 200 шт | 15 грн
Артикул Назва Кількість Ціна A-001 Кабель 50 шт 120 грн A-002 Роз'єм 200 шт 15 грн

Ursache: Klassisches OCR versteht die räumlichen Beziehungen zwischen Zellen nicht. Es liest den Text linear: von oben nach unten, von links nach rechts, ignoriert die Spaltenstruktur.

Was es kaputt macht: Beim Chunking gerät die gesamte Tabelle als linearer Textblock ohne Kennzeichnung in einen Chunk; die Anfrage „wie viel kostet das Kabel“ passt nicht zu einer strukturlosen Zeile; der Chunk überträgt die semantische Verbindung zwischen Artikel, Name und Preis nicht.

5. Falsche Silbentrennungen und Zeilenumbrüche

Original OCR-Ergebnis
відповідальність за порушення умов договору відповідаль-
ність за пору-
шення умов до-
говору
Загальна сума без ПДВ складає 38 400,00 гривень Загальна сума без ПДВ складає 38
400,00 гривень

Ursache: OCR unterscheidet nicht immer zwischen Silbentrennung und Zeilenende in Texten mit Spalten oder engen Rändern.

Was es kaputt macht: „відповідаль-“ und „ність“ werden zu separaten Tokens; ein durch einen Bindestrich getrenntes Wort erzeugt ein OOV-Token; der Zahlenwert „38 400“ wird in zwei Zeilen aufgeteilt und als „38“ und „400,00“ geparst – getrennte Tokens ohne den Kontext der Summe.

Wie OCR-Fehler die Chunking-Strategie zerstören

Chunking ist die Aufteilung des Textes in Fragmente, die vektorisiert und im Index gespeichert werden. Die Qualität eines Chunks bestimmt die Qualität des Retrievals: Wenn ein Chunk semantisch inkorrekt ist, kann selbst ein perfektes Embedding die Situation nicht retten.

Betrachten wir drei Haupt-Chunking-Strategien und wie OCR-Artefakte jede von ihnen brechen.

Strategie 1: Fixed-size chunking (nach Token-Anzahl)

Die einfachste Strategie: Text in Chunks von N Tokens mit Überlappung aufteilen. Problem: Sie hängt vollständig von der korrekten Tokenisierung ab.

Szenario Reiner Text (erwarteter Chunk) Mit OCR-Artefakt (realer Chunk)
Zusammengeklebte Wörter erhöhen das „Token“ „...відповідно до умов договору, сторона А зобов'язана...“ „...відповіднодоумовдоговору,сторонаАзобов'язана...“ – ein „Token“, die Grenze verschiebt sich
Müll bläht den Chunk auf 500 nützliche Tokens 500 Tokens, davon 80–120 Müll (Zeichen aus Rauschen, Artefakte von Trennungen). Nützlicher Inhalt wird komprimiert.
Getrennte Trennung bricht das Wort „відповідальність“ – 1 Token „відповідаль-“ + „ність“ – 2 verschiedene Tokens, der erste ist OOV

Strategie 2: Sentence-based chunking

Aufteilung nach Sätzen (spaCy, nltk sentence splitter). Erfordert korrekte Satzenden: Punkte, Fragezeichen, Ausrufezeichen mit einem Leerzeichen danach.

OCR-Artefakte brechen systematisch die Erkennung von Satzgrenzen:

Artefakt Was es mit dem Satzteiler macht Folge für den Chunk
Zusammengeklebte Wörter ohne Leerzeichen Splitter findet keine Lücke zwischen Sätzen Zwei Sätze verschmelzen zu einem – der Chunk enthält gemischten Kontext
Punkt ohne Leerzeichen danach Splitter ignoriert Satzende Mehrere Sätze landen in einem Chunk; semantische Grenze ist gebrochen
Artefakt-Punkt innerhalb einer Zahl „38.400“ → Splitter schneidet den Satz mitten in der Zahl ab Zahl wird zwischen Chunks geteilt; Kontext der Summe geht verloren
Zusätzliche Zeichen am Zeilenende „договору.||| “ → Splitter erkennt das Ende nicht Satz wird nicht geteilt; Chunk-Grenze verschiebt sich um mehrere Sätze nach vorne

Strategie 3: Semantic / recursive chunking

Fortgeschrittenere Ansätze (recursive character splitter, semantisches Chunking mit Embedding-Ähnlichkeit) sollten theoretisch widerstandsfähiger gegen oberflächliche Artefakte sein. In der Praxis – nein.

Semantisches Chunking definiert Grenzen durch die Änderung der Semantik zwischen benachbarten Sätzen. Wenn Sätze durch OCR-Artefakte verzerrt sind, wird das Embedding jedes Satzes verschoben – und der Algorithmus „sieht“ einen semantischen Bruch, wo keiner ist, oder sieht ihn nicht, wo er ist.

Ergebnis: Chunks werden an „semantisch korrekten“ Stellen für den verzerrten Text geschnitten – aber nicht für den ursprünglichen Inhalt.

Wie OCR-Fehler sich in der gesamten RAG-Pipeline ausbreiten

PDF Scan
   ↓
OCR (95%)
   ↓
Chunking
   ↓
Embeddings
   ↓
Retriever
   ↓
LLM
   ↓
Answer

Ich sehe oft, dass viele Entwickler sich auf die Wahl der LLM oder des Embedding-Modells konzentrieren, aber die Qualität der Antwort wird viel früher bestimmt – in der OCR-Phase. Wenn das System den Text falsch erkannt hat, gelangt dieser Fehler in die Chunks, dann in die Embeddings, beeinflusst das Retrieval und spiegelt sich schließlich in der endgültigen Antwort wider.

Deshalb kann sich ein Fehler in der OCR-Phase in der gesamten Dokumentenverarbeitungskette ausbreiten. Selbst die fortschrittlichste LLM kann keine Informationen finden, die bereits während der Texterkennung verloren gegangen oder verzerrt wurden.

In der Praxis führt die Verbesserung der OCR-Qualität oft zu einem größeren Genauigkeitsgewinn für das RAG-System als der Wechsel zu einer teureren LLM oder die Verwendung eines größeren Embedding-Modells. Wenn das Retrieval falsche Daten erhält, kann kein generatives Modell dieses Problem vollständig kompensieren.

Praktische Schlussfolgerung zum Chunking

Ich bin überzeugt, dass keine Chunking-Strategie systematisch einen „verschmutzten“ Eingabetext kompensieren kann. Die Nachbearbeitung nach OCR ist ein obligatorischer Schritt vor jedem Chunking. Ohne dies verschwindet der Unterschied zwischen Fixed-Size und Semantic Chunking praktisch: Beide Ansätze beginnen, mit inkorrekten Chunks zu arbeiten, nur auf unterschiedliche Weise.

Wie OCR die Qualität von RAG-Systemen beeinflusst: Eine technische Analyse

Einfluss von Rauschen auf die Qualität von Embedding-Vektoren

Ein Embedding-Modell wandelt einen Text-Chunk in einen numerischen Vektor in einem n-dimensionalen Raum um. Semantisch ähnliche Texte haben nahe Vektoren (hohe Kosinus-Ähnlichkeit). Die semantische Suche sucht genau nach dieser Nähe.

OCR-Rauschen beeinflusst den Vektor über zwei Mechanismen:

Mechanismus 1: OOV-Tokens (Out-of-Vocabulary)

Wenn ein Wort in den Trainingsdaten des Modells nicht vorkommt, kodiert es dieses „nach seiner Form“: es zerlegt es in Subword-Tokens, von denen jedes ein schwaches oder gar kein semantisches Signal hat. Der Vektor des Chunks verschiebt sich von seiner korrekten semantischen Position.

Token im Text Typ Einfluss auf den Chunk-Vektor
«відповідальність» In-Vocabulary Starkes semantisches Signal; Vektor in der richtigen Zone
«відповідаль-» OOV (Artefakt eines Zeilenumbruchs) Das Modell teilt es in Subwords; das Signal ist schwach; der Vektor verschiebt sich
«терміндіїдоговору» OOV (zusammengewachsene Wörter) Unbekanntes Token; der Vektor „zieht“ den Chunk von der Semantik von „Vertragsdauer“ weg
«аМЫМ9a18S¥3» OOV (Müll von einer umgedrehten Seite) Kein Subword trägt ein Signal; der Vektor verschiebt sich stark in die „Rauschzone“

Mechanismus 2: Verdünnungseffekt (Signalverdünnung)

Das Embedding-Modell mittelt das Signal über alle Tokens eines Chunks (vereinfacht). Wenn 15–20 % der Tokens in einem Chunk Müll ohne semantische Bedeutung sind, wird der Vektor „verdünnt“: er wird zu einer weniger genauen Darstellung des eigentlichen Inhalts.

Praktisches Beispiel: Ein Chunk mit 400 Tokens, von denen 80 Artefakte sind (zusammengewachsene Wörter, Rauschsymbole, falsche Zeilenumbrüche). Das effektive semantische Signal beträgt nicht 100 %, sondern ca. 80 %. Die Kosinus-Ähnlichkeit mit einer korrekten Anfrage sinkt proportional.

Sie sinkt nicht auf Null – kann aber unter den Schwellenwert für das Top-k-Retrieval fallen. Wenn Sie nach den Top-5-Chunks suchen, kann ein verschobener Chunk auf Position 6 oder 7 landen – und nie in den Kontext der LLM gelangen.

Anschauliche Illustration: Fall eines Anwalts mit AskYourDocs

Wir kehren zum Fall aus dem vorherigen Artikel der Serie zurück, analysieren ihn aber auf Vektorebene.

Der Mandant – ein Anwalt mit Spezialisierung auf Baurecht – schickte 21 Seiten aus einem gescannten Archiv. Die meisten Seiten waren um 90°, 180° oder 270° gedreht gescannt. Standard-OCR ohne Ausrichtungskorrektur las sie wie folgt:

аМЫМ "9a18 40 S¥3IAVT ONIHLY3HS N33ML3E NOILD¥¥LSNOO

Dieser Müll gelangte als gültiger Text in die Vektordatenbank. Was mit den Vektoren geschah:

Dokument / Chunk Zustand des Textes Vektor Kosinus-Ähnlichkeit mit der Anfrage „Bedingungen für die Vertragsauflösung“
Chunk von Seite 3 (gedreht) Müll: „аМЫМ 9a18 S¥3IAVT...“ In der „Rauschzone“ des Raumes ~0.08 (irrelevant)
Chunk von Seite 7 (normal) Lesbarer Text über Vertragsbedingungen In der richtigen semantischen Zone ~0.74 (relevant, landet in den Top-5)
Chunk von Seite 12 (gedreht) Müll In der „Rauschzone“ ~0.06

Von den 21 Seiten wurden 5–6 normal indiziert. Der Rest existierte in der Vektordatenbank als statistisches Rauschen – er belegte Platz, lieferte aber kein nützliches Retrieval. Gleichzeitig meldete das System kein Problem: Es gab Ergebnisse zurück, nur von 5–6 Seiten statt von 21.

Genauigkeit der Antworten auf Testfragen: 17 %. Nach der Einführung von Vision OCR mit automatischer Ausrichtungskorrektur: 50 % – auf demselben problematischen Dokument.

Warum ein semantisch relevanter Chunk nicht im Retrieval landet

Selbst wenn ein Chunk semantisch korrekt ist – er kann aufgrund mehrerer mit OCR-Rauschen verbundener Mechanismen nicht in den Retrieval-Ergebnissen erscheinen.

Szenario 1: Schlüsselwort verfälscht – Suche stimmt nicht überein

Anfrage: „Welche Haftung für die Verletzung von Fristen?“
Chunk in der Datenbank: „...Haftung für die Verletzung von Fristen – eine Strafe von 0,1 % für jeden Tag...“

Selbst wenn das Embedding-Modell verfälschte Wörter über Subword-Tokens teilweise „versteht“ – die Kosinus-Ähnlichkeit zwischen dem Anfragevektor und dem Chunk-Vektor wird niedriger sein als ideal. Wenn Ihr Index 50 andere Chunks über „Haftung“ mit sauberem Text enthält – wird der verfälschte Chunk unter dem Schwellenwert landen und nicht in die Top-k gelangen.

Szenario 2: Chunk durch Müll zu Irrelevanz „verdünnt“

Chunk A (reiner Text) Chunk B (mit OCR-Rauschen)
„Die Frist für die Erfüllung der Verpflichtungen beträgt 30 Kalendertage ab Unterzeichnung des Abnahmeprotokolls.“ „Frist der Erfüllung|||von Verpflichtungen – 30 Kalen-dertage ab Unterzeich-nung des Abnahmeprotokolls..;;..“

Chunk B enthält dieselbe Information, aber: „ЗО“ statt „30“ (Kyrillisch statt Ziffer), ein zusammengewachsener Zeilenumbruch „змо-менту“, Müll „..;;..“ am Ende. Sein Vektor unterscheidet sich vom Vektor von Chunk A. Die Anfrage „Frist der Erfüllung 30 Tage“ wird besser mit A als mit B übereinstimmen – obwohl beide denselben Inhalt tragen.

Szenario 3: Das richtige Dokument ist vorhanden, aber nicht in den Top-k

Das gefährlichste Szenario. Ein relevanter Chunk existiert im Index – aber aufgrund eines verschobenen Vektors befindet er sich auf Position 8 oder 12, nicht in den Top-5. Die LLM erhält 5 weniger relevante Chunks und antwortet entweder auf Basis unvollständiger Informationen oder halluziniert.

Dabei sehen die Logs korrekt aus: Das Retrieval hat k Ergebnisse zurückgegeben, die LLM hat eine Antwort generiert. Es gibt kein Signal für das Problem – nur eine falsche Antwort.

Szenario 4: False-Positive-Retrieval – Müll mit hoher Ähnlichkeit

Das Gegenteil: Ein Müll-Chunk von einer umgedrehten Seite gelangt aufgrund zufälliger Token-Übereinstimmungen in die Top-k. Die LLM erhält einen unlesbaren Kontext und ignoriert ihn entweder (gutes Szenario) oder versucht, eine Antwort auf Basis des Mülls zu erstellen (schlechtes Szenario).

Recall und Precision in RAG nach schlechtem OCR: Metriken und Beispiele

Zur Bewertung der Retrieval-Qualität werden zwei grundlegende Metriken verwendet:

  • Recall@k – der Anteil relevanter Dokumente, die in die Top-k-Ergebnisse gelangt sind. Wenn es 3 relevante Chunks gibt und alle 3 in den Top-5 sind, ist Recall@5 = 1.0.
  • Precision@k – der Anteil relevanter unter den zurückgegebenen. Wenn in den Top-5 2 relevante und 3 irrelevante sind, ist Precision@5 = 0.4.

Wie OCR-Rauschen diese Metriken beeinflusst

OCR-Zustand Typischer Recall@5 Typische Precision@5 Hauptgrund für die Verschlechterung
Reiner Text (textbasierter PDF) 0.80–0.92 0.65–0.80 Grundniveau; Verschlechterung durch Anfragekomplexität
Hochwertiges OCR (300+ DPI, CER <1%) 0.72–0.85 0.60–0.75 Minimale OCR-Artefakte; geringer Vektor-Drift
Mittleres OCR (150–300 DPI, CER 2–5%) 0.50–0.70 0.40–0.60 Systematische zusammengewachsene Wörter und Zeichenersetzungen; häufige OOV
Schlechtes OCR (gedreht, niedrige DPI) 0.15–0.40 0.15–0.35 Massiver Müll in Vektoren; False Positives und False Negatives
Gemischtes Archiv (Anwaltsfall) ~0.17 (17 % der Antworten) Unvorhersehbar Die meisten Seiten – gedrehte Scans; 5–6 von 21 normal indiziert

Beispielmessung: Test mit realen Fragen

Eine praktische Methode zur Messung des Einflusses von OCR auf den Recall ist die Vorbereitung eines Satzes von Fragen, deren Antworten Sie genau kennen, und die Überprüfung, ob die benötigten Chunks im Retrieval erscheinen.

Frage Erwarteter Chunk Vor der Nachbearbeitung (in Top-5 enthalten?) Nach der Nachbearbeitung (in Top-5 enthalten?)
Welche Haftung besteht für Zahlungsverzug? Abs. 8.3 des Vertrags Nein (Chunk auf Position 9) Ja (Position 2)
Was ist der Gesamtpreis der Arbeiten? Abs. 3.1 des Vertrags Nein (Zahl „З8400“ stimmt nicht überein) Ja (nach Korrektur von „З8400“ → „38400“)
Wer ist für die technische Überwachung verantwortlich? Abs. 5.2 des Vertrags Ja (Text ist sauber) Ja
Wie lange ist die Garantie für die Arbeiten? Abs. 9.1 des Vertrags Nein (Seite gedreht, Müll) Ja (nach Vision OCR)

20–30 solcher Fragen auf einer repräsentativen Stichprobe des Archivs liefern ein weitaus genaueres Bild als jeder synthetische Benchmark.

Praktische Verbesserungsmethoden: Vorverarbeitung, Nachbearbeitung, Auswahl der OCR-Engine

Im Folgenden sind konkrete Aktionen aufgeführt, die einen messbaren Effekt haben. Unterteilt nach Einflussstufen.

Stufe 1: Bildvorverarbeitung (vor OCR)

Operation Wann anzuwenden Auswirkung auf CER Werkzeuge
Automatische Ausrichtungskorrektur Immer für gescannte PDFs Kritisch – ohne dies ergeben umgedrehte Seiten 0 % Genauigkeit Tesseract OSD, PyMuPDF + Heuristiken, GPT-4o-mini
Schräglagenkorrektur (Deskewing) Wenn Scans von einem manuellen Scanner stammen Reduziert CER um 1–3 % bei Schräglage >2° OpenCV, Pillow, deskew library
Rauschunterdrückung (Denoising) Alte oder schlecht gescannte Dokumente Reduziert die Anzahl von Phantomzeichen OpenCV fastNlMeansDenoising, Pillow filter
Binarisierung (Schwarz-Weiß-Konvertierung) Dokumente mit ungleichmäßigem Hintergrund Verbessert den Textkontrast; reduziert CER bei schwachen Scans Adaptive Schwelle (OpenCV), Sauvola-Methode
Erhöhung der DPI Wenn das Original <200 DPI hat Erhöhung auf 300 DPI durch Upscaling reduziert CER Pillow resize + Lanczos, OpenCV
Randerkennung und Zuschneiden Wenn Scans breite leere Ränder oder Rahmen haben Reduziert die Anzahl von Phantomzeichen von den Blattkanten OpenCV Kontur-Erkennung

Stufe 2: Textnachbearbeitung (nach OCR, vor Chunking)

Dies ist die effektivste und am meisten unterschätzte Stufe. Die Nachbearbeitung ist günstiger als ein erneuter OCR-Lauf und hat einen messbaren Effekt auf das Retrieval.

Operation Was wird korrigiert Implementierungskomplexität
Entfernen von Müllzeilen Zeilen ohne Buchstaben oder mit >60 % Sonderzeichen (Artefakte von Rauschen und Drehungen) Niedrig – Regex oder Verhältnisprüfung
Leerzeichen-Normalisierung Doppelte Leerzeichen, Tabulatoren, nicht umbrechbare Leerzeichen von OCR Niedrig – str.strip() + Regex
Zusammenfügen von getrennten Zeilenumbrüchen „verantwort-\nlich“ → „verantwortlich“ Niedrig – Regex auf „-\n“-Muster
Korrektur typischer Zeichenersetzungen „З“ → „3“, „О“ → „0“ in numerischen Kontexten; „Ne“ → „№“ Mittel – erfordert kontextbezogene Analyse oder ein Wörterbuch
Erkennung und Entfernung von doppelten Zeilen Kopfzeilen, Seitenzahlen, die in jedem Chunk wiederholt werden Niedrig – Hash-Vergleich von Zeilen
Textqualitätsdetektor (Garbage Detector) Automatische Erkennung von Seiten/Chunks mit >Schwellenwert an Müll; Weiterleitung an Vision OCR Mittel – Verhältnis von lesbaren Zeichen + Sprachprüfung (langdetect)
LLM-Textkorrektur Wiederherstellung von Wörtern, Korrektur von Zeichenersetzungen, Umstrukturierung von Tabellen Hoch – kostet Tokens; nur für kritische Dokumente sinnvoll

Garbage Detector: Praktische Implementierung

Der Garbage Detector ist eine einfache, aber sehr effektive Komponente. Logik:

Prüfung Schwellenwert (ungefähr) Aktion
Anteil alphabetischer Zeichen im Text < 0.40 Weiterleitung an Vision OCR oder Ablehnung
Spracherkennung (langdetect confidence) < 0.70 oder unbekannte Sprache Weiterleitung an Vision OCR
Durchschnittliche Wortlänge < 2 oder > 20 Zeichen Verdacht auf zusammengeklebte Wörter oder Müll; erfordert Überprüfung
Anzahl der OOV-Tokens (nach Wörterbuch) > 25 % der Wörter fehlen im Wörterbuch Hohe Wahrscheinlichkeit von Artefakten; Weiterleitung an Vision OCR

Stufe 3: Auswahl der OCR-Engine

Engine Optimales Szenario Einschränkungen Kosten
Tesseract 5+ Saubere Scans, 300+ DPI, Standardschriftart Schlecht bei Tabellen und komplexen Layouts; erfordert hochwertige Vorverarbeitung Kostenlos, self-hosted
PaddleOCR Mehrsprachige Dokumente, bessere Handhabung von Layouts Schwieriger zu implementieren; GPU für Geschwindigkeit wünschenswert Kostenlos, self-hosted
olmOCR / olmOCR-2 Komplexe Layouts, akademische und technische Dokumente Benötigt GPU; neues Modell – weniger Produktionsfälle Kostenlos, self-hosted
GPT-4o-mini (Vision OCR) Umgedrehte Scans, Tabellen, gemischter Text, Fallback für problematische Seiten Teurer; nur Cloud; API-Latenz ~$0.015–0.03 pro Seite
Azure Document Intelligence / Google Document AI Große Volumina mit integrierter struktureller Markierung (Tabellen, Schlüsselfelder) Nur Cloud; DSGVO erfordert DPA; Kosten bei Skalierung 1–2 $ pro 1.000 Seiten (Basis)
Docling (IBM) Akademische und technische PDFs; Ausgabe in Markdown unter Beibehaltung der Struktur In aktiver Entwicklung; prüfen Sie die Unterstützung Ihrer Sprache Kostenlos, self-hosted

Auswahlstrategie: Entscheidungsbaum

Bedingung Empfehlung
DSGVO / Daten dürfen nicht in die Cloud gesendet werden Tesseract oder PaddleOCR als Basis + olmOCR als Fallback
Dokumente enthalten komplexe Tabellen Vision OCR (GPT-4o-mini) oder Docling für Tabellen hinzufügen
Es gibt umgedrehte oder schlecht gescannte Seiten Obligatorische Ausrichtungskorrektur + Vision OCR als Fallback
Großes Archiv (100.000+ Seiten), Standarddokumente Tesseract/PaddleOCR mit paralleler Verarbeitung; Vision nur für problematische
Kleines Archiv (< 5.000 Seiten), Qualität wichtiger als Kosten GPT-4o-mini oder Azure Document Intelligence für das gesamte Archiv

Wann OCR nicht ausreicht und ein Vision-Ansatz benötigt wird

Selbst eine perfekt konfigurierte OCR-Pipeline hat systemische Einschränkungen. Es gibt eine Klasse von Dokumenten, bei denen keine Vorverarbeitungsverbesserung ein zufriedenstellendes Ergebnis für RAG liefert.

Dokumenttyp Problem mit OCR Was der Vision-Ansatz leistet
Komplexe Tabellen mit verbundenen Zellen OCR gibt linearen Text zurück, ohne die Verbindung zwischen den Zellen zu erhalten VLM versteht räumliche Beziehungen; gibt eine strukturierte Tabelle zurück (Markdown/JSON)
Mehrspaltiges Layout OCR liest Spalten als einen einzigen Textstrom; Sätze aus verschiedenen Spalten vermischen sich VLM identifiziert Spalten korrekt und liest jede separat
Handschriftlicher Text und handausgefüllte Formulare CER von 3–5 % selbst bei den besten OCR-Modellen; einzigartige Handschriften ergeben eine noch schlechtere Genauigkeit Große VLMs können mit nicht standardmäßigen Handschriften besser umgehen; erfordert dennoch Verifizierung
Dokumente mit Diagrammen, Zeichnungen, Infografiken OCR liest keine grafischen Inhalte – gibt leere Ergebnisse oder Randartefakte zurück VLM kann ein Diagramm beschreiben, Zahlen aus einem Diagramm extrahieren, Elemente identifizieren
Sehr niedrige DPI oder stark beschädigtes Dokument Vorverarbeitung hilft nicht – die ursprüngliche Pixelqualität ist zu gering VLM kommt manchmal besser zurecht, dank breiterem kontextbezogenen Verständnis
Umgedrehte Scans (ohne automatische Korrektur) OCR ohne OSD-Korrektur gibt Müll oder ein leeres Ergebnis zurück VLM erkennt die Ausrichtung und liest korrekt ohne vorherige Korrektur

Hybride Pipeline: Praktische Architektur

Die optimale Strategie für die meisten realen Archive ist nicht „OCR oder Vision“, sondern Routing:


Eingehendes Dokument
  │
  ├─► Textschicht? ──► Ja ──► Nativer Parser (PyMuPDF) ──► Chunking
  │
  └─► Nein (Scan)
        │
        ├─► Vorverarbeitung (Ausrichtung, Schräglagenkorrektur, Rauschunterdrückung)
        │
        ├─► OCR (Tesseract / PaddleOCR)
        │
        ├─► Garbage Detector
        │        │
        │        ├─► Qualität OK ──► Nachbearbeitung ──► Chunking
        │        │
        │        └─► Qualität niedrig ──► Vision OCR (GPT-4o-mini)
        │                                    │
        │                                    └─► Nachbearbeitung ──► Chunking
        │
        └─► Protokollierung: Seite, CER-Schätzung, Verarbeitungspfad
  

Dieser Ansatz ermöglicht die Verarbeitung von 80–90 % der Dokumente über eine kostengünstige, selbst gehostete OCR und leitet nur problematische Seiten an Vision OCR weiter. Die Kosten für Vision OCR sinken bei dieser Strategie um das 5- bis 10-fache im Vergleich zu einem vollständigen Übergang.

Was Vision OCR nicht löst

Der Vision-Ansatz ist keine universelle Lösung. Einschränkungen:

  • Kosten bei großen Volumina: 100.000 Seiten über GPT-4o-mini – ca. 1.500–3.000 $.
  • Latenz: API-Aufrufe dauern 2–10 Sekunden pro Seite. Für Echtzeitsysteme inakzeptabel.
  • Rate Limits: Ohne Enterprise-Zugang ist die parallele Verarbeitung eines großen Archivs eingeschränkt.
  • DSGVO: Dokumente werden an einen externen Anbieter gesendet. Erfordert DPA und kann durch Compliance-Richtlinien blockiert werden.
  • VLM-Halluzinationen: Bei stark beschädigten Dokumenten kann VLM nicht lesbaren Inhalt „erfinden“. Erfordert Validierung.

Ein detaillierter Vergleich von OCR-first und Vision-first Architekturen mit Trade-off-Analyse finden Sie im nächsten Artikel der Serie: „Vision RAG vs OCR: Vergleich von Dokumentenverarbeitungsansätzen“.

Häufig gestellte Fragen

Wie beeinflusst OCR die Embeddings?

Meiner Meinung nach ist OCR einer der wichtigsten Schritte in einer RAG-Pipeline. Der Text, der nach der Dokumentenerkennung erhalten wird, wird zur Erstellung von Embeddings verwendet. Wenn OCR Fehler macht, gelangen diese in die Vektorrepräsentation der Daten und können die Qualität der semantischen Suche verschlechtern.

Kann RAG ohne OCR funktionieren?

Ja, aber es hängt vom Dokumententyp ab. Wenn ich mit digitalen PDFs arbeite, bei denen der Text bereits maschinenlesbar ist, ist OCR nicht erforderlich. Für gescannte Dokumente, Fotos oder Textbilder ist es praktisch unmöglich, ohne OCR oder Vision-Modelle ein qualitativ hochwertiges Ergebnis zu erzielen.

Was ist wichtiger: OCR oder LLM?

Ich glaube, dass für dokumentenorientierte RAG-Systeme eine qualitativ hochwertige OCR oft wichtiger ist als die Wahl einer bestimmten LLM. Selbst das modernste Sprachmodell kann keine korrekte Antwort auf eine Frage geben, wenn die benötigten Informationen bereits bei der Dokumentenerkennung verloren gegangen oder verzerrt wurden.

Welche OCR ist am besten für RAG geeignet?

Es hängt alles vom Dokumententyp und dem Budget ab. Für viele Projekte reichen Tesseract oder PaddleOCR aus. Wenn eine hohe Qualität bei der Arbeit mit Tabellen, komplexen Layouts und Unternehmensdokumenten erforderlich ist, empfehle ich die Betrachtung von Google Document AI, AWS Textract, Docling oder modernen Vision-Ansätzen.

Wird OCR für digitale PDFs benötigt?

In den meisten Fällen nein. Wenn das PDF bereits eine Textschicht enthält, versuche ich, den Text direkt ohne OCR zu extrahieren. Das ist schneller, günstiger und liefert in der Regel eine höhere Genauigkeit. OCR ist nur für gescannte PDFs oder Dokumente sinnvoll, bei denen die Textschicht fehlt oder beschädigt ist.

Schlussfolgerungen

Die Verschlechterung von RAG durch schlechte OCR ist kein Problem des Modells. Es ist ein technisches Problem der Eingabedaten, das konkrete Korrekturpunkte hat.

Wo genau bricht die Pipeline – und was ist dagegen zu tun

Wo es bricht Symptom Korrektur
Vorverarbeitung übersprungen Umgedrehte Seiten ergeben 0 % OCR-Genauigkeit Automatische Ausrichtungskorrektur (OSD oder Heuristik) vor OCR
OCR ohne Nachbearbeitung Zusammengeklebte Wörter, Müllzeilen, falsche Zeilenumbrüche gehen ins Chunking Leerzeichen-Normalisierung, Zusammenfügen von Zeilenumbrüchen, Entfernen von Müll – immer
Chunking auf schmutzigem Text Inkorrekte Chunk-Grenzen, gemischter Kontext Nachbearbeitung vor Chunking – nicht danach
OOV-Tokens in Embeddings Vektoren sind verschoben; Cosinus-Ähnlichkeit liegt unter dem Schwellenwert Korrektur von zusammengeklebten Wörtern und Zeichenersetzungen vor dem Embedding
Müll in der Vektordatenbank False Positives beim Retrieval; LLM erhält nicht lesbaren Kontext Garbage Detector vor der Indizierung; Weiterleitung an Vision OCR
Fehlende Qualitätsüberwachung Das System gibt „still“ falsche Antworten ohne Signale zurück Testdatensatz mit 20–30 Fragen; Messung von Recall@5 auf einer repräsentativen Stichprobe

Priorisierte Reihenfolge der Maßnahmen

Wenn Sie jetzt RAG auf gescannten Dokumenten starten oder optimieren – hier ist die Reihenfolge mit dem größten ROI:

  1. Archiv-Audit – welcher Anteil sind Scans? Gibt es umgedrehte Seiten? Was ist die typische Qualität?
  2. Ausrichtungskorrektur hinzufügen – auch wenn die meisten Seiten normal sind, kostet eine umgedrehte Seite in einem kritischen Dokument viel.
  3. Basis-Nachbearbeitung hinzufügen – Leerzeichen-Normalisierung, Zusammenfügen von Zeilenumbrüchen, Entfernen von Müllzeilen. Lässt sich in wenigen Stunden implementieren, hat einen messbaren Effekt auf das Retrieval.
  4. Testdatensatz mit Fragen erstellen – 20–30 Fragen mit bekannten Antworten. Messen Sie Recall@5 vor und nach jeder Änderung.
  5. Garbage Detector hinzufügen und Weiterleitung an Vision OCR für problematische Seiten.
  6. Erst danach – Chunking-Parameter, Embedding-Modelle, Reranker optimieren.

Schritte 1–3 bringen mehr Effekt als die Änderung eines Embedding-Modells von 1536 auf 3072 Dimensionen. Aber die meisten Teams beginnen mit Schritt 6 – und wundern sich, warum sich das Ergebnis nicht verbessert.

Lesen Sie weiter in der Serie: