Warum wird das zweispaltige PDF seriell extrahiert? Behalten Sie zuerst die Koordinaten bei und sprechen Sie dann über die Lesereihenfolge

Erklären Sie, dass die zweispaltige PDF-Textserialisierung auf die fehlende semantische Struktur des Formats zurückzuführen ist, und stellen Sie klar, dass der Sortierparameter nur eine geometrische Sortierung ist. Ein synthetisches Python-Beispiel basierend auf der Koordinatenpartitionierung wird bereitgestellt, um die Sequenzreorganisationslogik zu demonstrieren, anwendbare Grenzen und rote Linien für die manuelle Überprüfung zu klären und einen pragmatischen Akzeptanzpfad bereitzustellen, der den OmniDoc-Übersetzungsworkflow verbindet.

Die aus zweispaltigen PDFs extrahierten Textsequenzen werden oft nicht falsch erkannt, sondern in der falschen Reihenfolge gelesen. Dieser Artikel richtet sich an Leser, die Text aus zweispaltigen PDFs wie Aufsätzen und Berichten extrahieren und diese anschließend übersetzen oder organisieren müssen.

Normalerweise stößt der Leser auf diese Situation: In der Mitte der linken Spalte folgt auf den nächsten Satz in der rechten Spalte die Formelerklärung. Die Zeichen werden möglicherweise alle richtig erkannt, die Reihenfolge ist jedoch gestört. In diesem Artikel wird zunächst erläutert, warum die Serialisierung erfolgt, und anschließend anhand eines synthetischen Beispiels demonstriert, wie die Reihenfolge durch Partitionierung nach Koordinaten neu organisiert wird. Abschließend werden die geltenden Grenzen und die Akzeptanzliste angegeben, damit Sie leichter beurteilen können, ob es in Ihren eigenen Dateien verwendet werden kann.

Warum wird das zweispaltige PDF seriell extrahiert? Fazit in einem Satz

Behalten Sie zunächst die Koordinaten und die Quellseite bei und sortieren Sie dann nach regionalen Regeln. Komprimieren Sie nicht direkt die gesamte Seite in eine lange Zeichenfolge.

Ihre SituationEmpfohlenes RezeptDer Grund
Reguläre Doppelspaltenzeitungen, SerientextLies zuerst die linke Spalte eines Abschnitts, dann die rechte SpalteAlternativ unterbricht das Schneiden von Zeilen für Zeile Absätze
Ich möchte es einfach schnell ausprobierenVergleichen Sie die Ergebnisse beim Ein- und Ausschalten von sortsort führt nur geometrische Sortierung durch, geeignet für Regelseiten
Seiten haben spaltenübergreifende Titel, Randnotizen und FußnotenVerwalten Sie nach Region und überprüfen Sie regionale BeziehungenGeometrische Sortierung allein kann den Besitz dieser Inhalte nicht bestimmen
Muss dem Übersetzungsmodell übergeben werdenBehalten Sie Koordinaten und Seitenzahlen bei, organisieren Sie zuerst die Reihenfolge und übersetzen Sie dannKontextuelle Fehler in der richtigen Reihenfolge sind selbst durch Modelländerung schwer zu beheben

Warum ist die Reihenfolge verwechselt?

Das PDF dokumentiert die Position jedes Absatzes, nicht "zu welchem Absatz oder welcher Spalte er gehört". Wenn das Extraktionswerkzeug koordinatenbasierte Daten ohne Flächenregeln ausgibt, kann der Text in den linken und rechten Spalten versetzt sein.

Diese Probleme treten nicht unbedingt in der Identifikationsphase auf. Vielleicht sind alle Wörter richtig, nur in der falschen Reihenfolge. Daher sollte sich die Lösung auf Sortierung und regionale Einteilung konzentrieren, anstatt immer wieder Erkennungs- oder Übersetzungsschritte zu ändern.

Behalte zuerst die Koordinaten, dann diskutiere die Lesereihenfolge

Bevor Sie das Reihenfolgeproblem lösen, bewahren Sie zunächst die Koordinaten des Textes und der Quellseite auf. Zwingen Sie sich nicht, die ganze Seite zu einer langen Reihe zusammenzupressen.

  • Bewahrt die vier Koordinaten jedes Textblocks, um die spätere Bestimmung des Regionsbesitzes zu erleichtern.
  • Beibehaltung der Quellseitennummern für einfache Rückverfolgbarkeit und manuelle Verifikation.
  • Sobald regionale Informationen verloren gehen, erhalten nachfolgende Übersetzungen nur noch den falsch zusammenhängenden Kontext, und selbst eine Änderung des Übersetzungsmodells kann dies nicht beheben.

sort=True ist einen Versuch wert, aber es ist kein Layout-Versteher

PyMuPDF bietet verschiedene Extraktionsformen wie Text, Wörter, Blöcke usw. Die spezifische Verarbeitung von sort variiert je nach Ausgabetyp und -version. Es kann weder allgemein als fester Satzalgorithmus beschrieben werden, noch kann versprochen werden, die Lesereihenfolge aller Dokumente wiederherzustellen.

Anwendungsvorschläge lauten wie folgt:

  • Für die Regelseite können Sie zunächst die Ergebnisse der Sortierung im und außerhalb des Prozesses vergleichen.
  • Für Seiten mit Querschnittstiteln, Rand oder Fußnoten müssen regionale Zusammenhänge erneut überprüft werden.
  • PDF kann Strukturmarker enthalten, aber das bedeutet nicht, dass die aktuelle Extraktionsoberfläche automatisch den benötigten semantischen Absatzbaum bereitstellt.

Dieser Artikel implementiert keine allgemeine Layout-Erkennung, sondern zeigt lediglich "wie man nach bestehenden Flächenregeln sortiert" und erklärt klar die Fäegkeetsgrenzen. Für Schnittstellen und Extraktionsformate siehe Offizieller Leitfaden zur Textextraktion von PyMuPDF.

Illustriere die Ausgabe mit fünf zusammengesetzten Textblöcken

Die Musterseite ist 600 Punkte breit, mit 300 Punkten zwischen den Spalten; Unter den oberen 80 Punkten befindet sich der Bereich für Hürdentitel, darunter der Haupttextbereich. Eingabe absichtlich verschlüsselt: Das zweite Segment der rechten Spalte wird zuerst aufgeführt, das erste Segment der linken Spalte wird später platziert. Jedes Tupel enthält die vier Koordinaten und den Text des Rechtecks. Dies ist eine vereinfachte Struktur, die zu Demonstrationszwecken definiert wurde und nicht dem vollständigen Renditewert von get_text("blocks") entspricht.

Das erwartete Ergebnis sollte sein: Titel, erster Absatz der linken Spalte, zweiter Absatz der linken Spalte, erster Absatz der rechten Spalte, zweiter Absatz der rechten Spalte. Blöcke, die die Grenze zwischen den Spalten überschreiten, müssen in die Ausnahmeliste aufgenommen werden und dürfen nicht stillschweigend verworfen oder in die linke Spalte gezwungen werden.

Ein kleines Beispiel, das vollständig laufen kann

Das folgende Beispiel verwendet ausschließlich die Python-Standardbibliothek. Bei der Integration von PyMuPDF können Sie die ersten fünf Felder aus den Blockextraktionsergebnissen behalten und zuerst Nicht-Textblöcke ausschließen. Das Beispiel öffnet keine externen Dateien, benötigt keine OCR und schließt keine automatischen Spaltengrenzen ab.

def order_known_layout(blocks, split_x=300, title_bottom=80):
    groups = {"title": [], "left": [], "right": []}
    rejected = []
    for block in blocks:
        x0, y0, x1, y1, text = block
        if x1 <= x0 or y1 <= y0:
            rejected.append(block)
            continue
        if y1 <= title_bottom:
            region = "title"
        elif y0 < title_bottom:
            rejected.append(block)
            continue
        elif x1 <= split_x:
            region = "left"
        elif x0 >= split_x:
            region = "right"
        else:
            rejected.append(block)
            continue
        groups[region].append(block)
    ordered = []
    for region in ("title", "left", "right"):
        ordered.extend(sorted(groups[region], key=lambda b: (b[1], b[0])))
    return [b[4] for b in ordered], rejected

sample = [(330, 160, 550, 190, "R2"), (40, 100, 270, 130, "L1"),
          (40, 20, 550, 50, "TITLE"), (330, 100, 550, 130, "R1"),
          (40, 160, 270, 190, "L2")]
ordered, rejected = order_known_layout(sample)
assert ordered == ["TITLE", "L1", "L2", "R1", "R2"]
assert rejected == []
wide = (40, 220, 550, 250, "FULL WIDTH BODY")
assert order_known_layout(sample + [wide])[1] == [wide]
assert order_known_layout([]) == ([], [])
print("known-layout examples: 3 assertions passed")

Die 80- und 300er-Werte im Beispiel stammen aus den Einstellungen dieser zusammengesetzten Seite, die nicht die Erfahrungsschwellenwerte sind, die für alle PDFs gelten. Wenn sich die Breite der linken und rechten Spalten auf der nächsten Seite ändert, kann die Verwendung von Parametern der vorherigen Seite dazu führen, dass "Programm normal läuft, aber Inhaltsfehler vorweisen." Regionale Regeln sollten der Seite folgen und zumindest die Regelversion und Seitengröße festhalten.

📊 Kernvergleich

HandhabungsmethodenWas kann getan werden?Was sollte beachtet werden?
Verwenden Sie sort=True direktSortiere geometrisch nach Koordinaten; probiere zuerst die RegelseiteIch verstehe das Eigentum an Hürdentiteln, Randnotizen und Fußnoten nicht
Sortieren nach KoordinatenaufteilungTeilen Sie zuerst das Gebiet auf und lesen Sie dann segmentweise zur einfacheren InspektionDie Partitionsschwelle hängt von der Seite ab und muss auf Seitenbasis verifiziert werden
Manuell annotierte LesereihenfolgeDie Ergebnisse sind am stärksten kontrollierbar und geeignet, um Schlüsseldokumente zu überprüfenHohe Kosten, geeignet für Stichprobenprüfungen und Benchmarkings

Schau nicht nur auf Fehler während der Annahme

InspektionsgegenständeWas man sehen sollteWas zu tun, wenn es die Anforderungen nicht erfüllt
Regionale OrdnungNach dem Titel zuerst die vollständige linke Leiste, dann die volle rechte LeisteÜberprüfe die Partitionsregeln; verlasse dich nicht darauf, Strings zu tauschen, um den Patch zu patchen
Konsistenz im InhaltDie Anzahl der akzeptierten Blöcke plus die Anzahl der abgelehnten Blöcke entspricht der Anzahl der EingabeblöckeBlockzustellung und Überprüfung auf lautlose fehlende Blöcke
Haupttext der HürdenErscheinen Sie auf der AblehnungslisteFügen Sie Hürdenabschnitte oder manuelles Urteil hinzu
Rotation und SchneidenEingabeblöcke und Partitionen verwenden dasselbe KoordinatensystemZuerst die Koordinaten vereinheitlichen und dann Inklusionsentscheidungen treffen
Überschriften und FußnotenKlassifizierung getrennt nach GeschäftsregelnLöschen Sie nicht den gesamten Text unten auf einmal

In echten Arbeiten kann eine solche Struktur ebenfalls auftreten: Fügen Sie ein Hürdendiagramm in die Mitte ein und starten Sie die Doppelspalte unter dem Bild neu. An diesem Punkt müssen Sie die Seite zunächst in obere und untere Abschnitte unterteilen und sie dann separat sortieren. Die einmalige dreiteilige Teilung in diesem Artikel reicht nicht aus. Chinesisches vertikales Layout, Rechts-nach-links-Text und komplexe Randnotizen sollten hier nicht für die Leseanweisungen verwendet werden.

🎯 Welche Methode passt zu dir?

Wenn du ......

  • Nur Ein- oder Doppelspaltenseiten, die nur Regeln verarbeiten müssen: Vergleichen Sie zunächst die Ergebnisse des Aktivierens und Schließens von sort und entscheiden Sie dann, ob Partitionierungsregeln verwendet werden.
  • Umgang mit Arbeiten mit Kreuzbalkentiteln, Diagrammen oder Fußnoten: Seiten nach Abschnitten unterteilen und Ausnahmelisten für Kreuzleisteninhalte festlegen.
  • Du musst die Übersetzung an andere übergeben: Behalten Sie die Koordinaten und Seitenzahlen auf, prüfen Sie jeden Artikel gemäß der Akzeptanzcheckliste und achten Sie nicht nur darauf, ob die Operation fehlerhaft ist.
  • Wenn du keine Skripte selbst pflegen möchtest: Du kannst direkt fertige Dokumentenübersetzungstools verwenden und die Übersetzung mit derselben sequentiellen Checkliste überprüfen.

Wie man den OmniDoc-Übersetzungsworkflow empfängt

Der Wert selbsterstellter Skripte liegt darin, Akzeptanzregeln klar darzulegen; Der Wert fertiger Übersetzungstools liegt darin, die Zwischenschritte zwischen Dokumenten und Übersetzungen zu reduzieren. Die beiden stehen nicht in Konflikt. OmniDoc (Produkteinführung) bietet ein Portal zur Dokumentenübersetzung, und die offizielle Website führt außerdem Funktionen wie OCR, Terminologie und einen zweisprachigen Vergleich ein. Sie können ein desensibilisiertes Papier auswählen, das das Recht hat, die Übersetzung hochzuladen und mit denselben Checklisten zu überprüfen.

Wichtige Kontrollen umfassen:

  • Überprüfen, ob der Eröffnungssatz nach dem Hürdentitel zusammenhängt.
  • Wurden die Bildunterschriften in den Haupttext integriert?
  • Überprüfen, ob Fußnotenreferenzen noch den korrekten Positionen entsprechen.

Dabei werden die Lieferergebnisse bewertet, nicht die internen Algorithmen von OmniDoc hergeleitet. Wenn das Ergebnis die Anforderungen nicht erfüllt, behalten Sie bitte die Originalseite und den Fehlerabschnitt, identifizieren Sie zunächst, ob das Problem in der Identifikation, Sortierung oder Übersetzung liegt, und entscheiden Sie dann, wie es behoben werden soll.

❓ Häufig gestellte Fragen (FAQ)

1. Doppelspaltige PDF-Seriennummer – wird sie falsch identifiziert?

Nicht unbedingt. Alle Zeichen können korrekt erkannt werden; Probleme liegen oft in der Lesereihenfolge, daher sollten Sie zuerst die Reihenfolge- und Bereichsregeln prüfen.

2. sort=True: Können Sie das Problem der Doppelspaltenordnung direkt lösen?

Es kann nicht verallgemeinert werden. Die Handhabung von sort variiert je nach Ausgabetyp und Version. Es handelt sich nicht um ein Layout-Verständnis und kann nicht versprechen, die Lesereihenfolge aller Dokumente wiederherzustellen. Für Regelseiten kannst du es zuerst ausprobieren; für Seiten mit Querschnitts-Inhalten musst du auch die regionalen Beziehungen überprüfen.

3. Warum kann man nicht die ganze Seite zu einem langen String komprimieren?

Sobald Koordinaten und Flächeninformationen verloren gehen, erhalten nachfolgende Übersetzungen nur noch falsch zusammenhängenden Kontext, und selbst ein anderes Übersetzungsmodell kann das Problem möglicherweise nicht beheben.

4. Können die 80 und 300 Punkte im Beispiel direkt auf andere PDFs angewendet werden?

Nein. Dies sind lediglich Einstellungen für diese zusammengesetzte Seite. Wenn sich Seitengröße oder Spaltenbreite ändert, sollte die Regelversion pro Seite überprüft und separat erfasst werden.

📝 Zusammenfassung

Bei doppelspaltigen PDF-Bestellungen sollten zuerst Koordinaten und Quellseiten erhalten bleiben, dann mit regionalen Regeln behandelt und jeder Punkt gemäß der Akzeptanzcheckliste überprüft werden. Selbstgebaute Skripte eignen sich, um klare Regeln zu schreiben, während fertige Werkzeuge besser zur Reduzierung von operativen Schritten geeignet sind; beide können zusammen verwendet werden.

Erleben Sie jetzt: Laden Sie Ihr Dokument hoch, um mit der Übersetzung zu beginnen, wobei Sie die ursprüngliche Formatierung bewahren

Aktualisiert am 2026-11-13