Extrayez le tableau détaillé, ne laissez pas le tri perturber la correspondance entre les lignes et le texte original

La même quantité de détails dans les deux lignes ne signifie pas qu’il s’agit de données en double ; le tableau trié est plus ordonné, mais cela ne signifie pas qu'il peut être aligné avec le texte original ligne par ligne. Ce qui se perd le plus facilement lors de l’extraction de détails, c’est souvent la correspondance entre chaque ligne et la source. Cet article vous expliquera comment le conserver.

Ce n’est pas parce que les montants des deux lignes sont identiques qu’il s’agit de données en double. Ce n’est pas parce que le tableau est trié qu’il correspond toujours au texte original ligne par ligne. Lors de l’extraction de détails, ce qui est facilement perdu n’est souvent pas le champ lui-même, mais la correspondance entre chaque ligne et la source.

Cet article convient aux personnes qui ont besoin d'extraire des détails de documents tels que des contrats, des devis, des tableaux financiers, etc. Il convient également aux développeurs qui construisent des processus de traitement en aval. Après avoir lu, vous saurez comment conserver les informations source pour chaque détail, comment gérer les problèmes causés par le même montant, les en-têtes et le tri sur plusieurs pages, et quel alignement doit être utilisé lors de la vérification post-traduction.

Comment conserver la correspondance entre les lignes et les sources lors de l'extraction des détails ? Conclusion en une phrase

Enregistrez un identifiant de source stable pour chaque détail. Le tri est uniquement destiné à l'affichage et n'écrase pas le numéro de ligne d'origine.

votre situationPratiques recommandéesraison
Les deux lignes ont le même montantVérifiez d’abord la page source et le numéro de ligne source, et ne vous précipitez pas pour supprimer les doublons.Le même montant ne représente pas des données en double
Doit être affiché trié par montantCréez une vue d'affichage et conservez le numéro de ligne d'origine inchangéLes numéros de série triés ne doivent pas être réécrits à la source
Des en-têtes ou des sous-totaux en double apparaissent dans le tableauExclure selon des règles interprétables et conserver les lignes et les motifs exclusPermettre aux réviseurs de détecter plus facilement les suppressions accidentelles
Les détails multilingues doivent être alignésAligner par ID source, pas seulement par nom de produit traduitLe nom et la quantité du produit peuvent être répétés

Enregistrez d'abord l'identité de la ligne stable

Conservez la page source, le numéro de table et le numéro de ligne source pour chaque détail, ou un identifiant stable composé de ces informations. Le nom et la quantité du produit peuvent être répétés et ne conviennent pas comme identités distinctes.

Lorsque l'aval doit trier par montant, vous pouvez créer une vue d'affichage, mais ne réécrivez pas par erreur les numéros de série triés dans la source d'origine.

Plusieurs façons de l'utiliser comme identité de ligne

CheminEst-ce approprié comme identité ?raison
Page source + numéro de table + numéro de ligne sourceAppropriéPeut localiser de manière stable la ligne dans le texte original
Nom du produitNe convient pas pour une utilisation seuledoublon possible
MontantNe convient pas pour une utilisation seuledoublon possible
Afficher le numéro de série après le triNe convient pas comme sourceChangera après le tri

Faites attention au caractère unique du schéma JSON

Le tableau JSON lui-même conserve l'ordre, mais uniqueItems dans le schéma n'est pas un raccourci pour « un champ est unique ». Deux objets peuvent toujours être considérés comme des éléments distincts tant que les autres champs sont différents. L’unicité au niveau du champ doit être vérifiée individuellement.

Un ensemble de détails avec le même montant et des sources différentes

from collections import Counter

rows = [{"source_id": "p1-t1-r1", "item": "Bolt", "amount": "10.00"},
        {"source_id": "p1-t1-r2", "item": "Nut", "amount": "10.00"}]

def check_ids(items):
    counts = Counter(row["source_id"] for row in items)
    return [key for key, count in counts.items() if count > 1]

assert check_ids(rows) == []
assert len(rows) == 2
assert check_ids(rows + [dict(rows[0])]) == ["p1-t1-r1"]
display = sorted(rows, key=lambda row: row["item"], reverse=True)
assert [r["source_id"] for r in rows] == ["p1-t1-r1", "p1-t1-r2"]
assert {r["source_id"] for r in display} == {r["source_id"] for r in rows}

Il s'agit d'un contrôle d'identité sur des données synthétiques, pas d'un outil de reconnaissance de table. Le code ne déduplique délibérément pas les mêmes montants et ne considère pas non plus l'ordre d'affichage comme l'ordre source.

Les règles de génération des identifiants de source de vérité doivent prendre en compte les versions des fichiers. Dans le cas contraire, le contenu de la même page et de la même ligne dans les deux versions pourrait être confondu avec le même élément de preuve.

Lorsque le nombre de lignes est incorrect, recherchez d'abord le lien manquant.

Phénomènedevrait être vérifiéne doit pas être pris immédiatement
Montant en doubleQu'il s'agisse d'un projet différent ou d'une ligne source différenteSupprimer les doublons par montant
ID source en doubleY a-t-il une erreur d’importation ou de mappage en double ?Ajouter aléatoirement un nouvel identifiant
Nombre de lignes réduitFusionner les cellules, les lignes vides et les règles de filtrageCompléter avec la ligne précédente
Changement de séquenceS'il faut trier uniquement pour les impressionsÉcraser le numéro de ligne d'origine

L'en-tête interpage n'est pas une ligne de données ordinaire

Les en-têtes de tableau répétitifs, les descriptions de tableau de continuation et les lignes de sous-totaux peuvent tous entrer dans le tableau de détails. Les supprimer nécessite des règles interprétables qui ne se limitent pas à un positionnement plus élevé ou à un texte plus court.

Conserver les lignes exclues et leurs raisons peut aider les réviseurs à détecter les suppressions accidentelles. Autrement, le problème ne persistera que si le total final ne correspond pas.

Amener la relation source à la vérification post-traduction

Les plannings multilingues doivent pouvoir être alignés sur l'ID source, et pas seulement sur le nom du produit traduit. Lors de l'évaluation des résultats de traduction des documents tabulaires de OmniDoc (portail produit), les relations ligne-colonne, les quantités et les unités valent toutes la peine d'être vérifiées individuellement.

L'identification de la source de cet article est une convention d'ingénierie externe et ne constitue pas une description de l'implémentation interne de la plateforme.

Références : Tableau de schéma JSON

🎯 Quelle méthode vous convient ?

Si vous devez trier par montant pour le montrer aux autres

Créez une vue d'affichage, le tri n'affecte que l'affichage, la page source d'origine et le numéro de ligne source restent inchangés.

Si votre tableau comporte des en-têtes ou des sous-totaux sur plusieurs pages

Utilisez des règles interprétables pour exclure ces lignes et conservez les lignes exclues et les raisons pour un examen ultérieur.

Si vous souhaitez traiter plusieurs versions d'un fichier

Les règles de génération de l'ID source doivent être intégrées à la version du fichier pour éviter que le contenu d'une même ligne sur la même page ne soit confondu entre les différentes versions.

Si vous souhaitez effectuer un alignement détaillé multilingue

Alignez-vous par ID source, ne vous fiez pas uniquement au nom du produit traduit.

❓ Questions fréquemment posées (FAQ)

1. Les montants des deux lignes sont les mêmes. Puis-je supprimer directement les doublons ?

ne peut pas. Le même montant ne signifie pas des données en double. Vous devez d’abord vérifier leur page source et leur numéro de ligne source pour confirmer s’ils appartiennent à différents projets ou à différentes lignes source.

2. Pourquoi le nom du produit ne convient-il pas comme identité de ligne ?

Le nom et la quantité du produit peuvent être répétés et il est impossible de localiser de manière stable la ligne dans le texte original lorsqu'elle est utilisée seule.

3. Le nouveau numéro de séquence peut-il être réécrit dans les données d'origine après le tri ?

Non recommandé. Les numéros de série triés ne conviennent qu'à l'affichage. L'écrasement des numéros de ligne d'origine entraînera la perte de la correspondance avec la source.

4. À quoi devez-vous faire attention lors de la suppression des en-têtes en double ?

Il doit y avoir des règles interprétables, et les lignes et motifs exclus doivent être conservés afin que les suppressions accidentelles puissent être détectées.

📝Résumé

Lors de l'extraction des détails, conservez d'abord la correspondance entre chaque ligne et la source, puis parlez de tri et de déduplication. Le code de cet article n'est qu'un exemple de démonstration synthétique et ne représente pas une garantie de tous les fichiers réels ou effets du produit. Avant de traiter des documents importants, veuillez conserver les originaux et les examiner en fonction des limites et des éléments d'acceptation du texte.

Essayez-le maintenant : téléchargez le document pour lancer la traduction, en conservant la mise en page d'origine.

Mis à jour le 2026-11-13