Estrai la tabella dettagliata, non lasciare che l'ordinamento interrompa la corrispondenza tra le righe e il testo originale
La stessa quantità di dettagli nelle due righe non significa che si tratti di dati duplicati; la tabella ordinata è più ordinata, ma ciò non significa che possa essere allineata riga per riga al testo originale. Ciò che si perde più facilmente quando si estraggono i dettagli è spesso la corrispondenza tra ciascuna riga e la fonte. Questo articolo spiegherà come conservarlo.
Solo perché gli importi nelle due righe sono uguali non significa che si tratti di dati duplicati. Solo perché la tabella è ordinata non significa che corrisponda ancora riga per riga al testo originale. Quando si estraggono i dettagli, ciò che si perde facilmente spesso non è il campo in sé, ma la corrispondenza tra ogni riga e la fonte.
Questo articolo è adatto a chi ha bisogno di estrarre dettagli da documenti come contratti, preventivi, tabelle finanziarie, ecc. È adatto anche agli sviluppatori che stanno costruendo processi di elaborazione a valle. Dopo la lettura, saprai come conservare le informazioni sulla fonte per ciascun dettaglio, come gestire i problemi causati dallo stesso importo, dalle intestazioni e dall'ordinamento tra le pagine e quale allineamento dovrebbe essere utilizzato durante la verifica post-traduzione.
Come mantenere la coerenza tra banca e fonte quando si estraggono i dati? In breve, una conclusione
Ogni dettaglio preserva un identificatore di sorgente stabile, ordinando solo per la visualizzazione e non sovrascrive il numero originale della riga.
| La tua situazione | Ricetta consigliata | motivo |
|---|---|---|
| Entrambe le linee hanno lo stesso importo | Per prima cosa, verifica la pagina sorgente e il numero della banca sorgente; non affrettarti a rimuovere i duplicati | La stessa quantità non rappresenta dati duplicati |
| Visualizza per quantità ordinata | Crea una vista di visualizzazione e mantieni invariato il numero di riga originale | I numeri di serie ordinati non devono essere riscritti alla fonte |
| Intestazioni duplicate o sottototale appaiono nelle tabelle | Escludi secondo regole spiegabili e mantieni le linee e le ragioni escluse | Questo rende più facile rivedere e rilevare errori o cancellazioni |
| I dettagli multilingue necessitano di allineamento | Allineati per ID sorgente, non solo per nome del prodotto tradotto | Sia il nome del prodotto che l'importo possono essere ripetuti |
Salva prima l'identità della riga stabile
Conserva la pagina di origine, il numero di tabella e il numero di riga di origine per ogni dettaglio o un identificatore stabile composto da queste informazioni. Il nome del prodotto e l'importo possono essere ripetuti e non sono adatti come identità separate.
Quando il downstream deve ordinare in base alla quantità, è possibile creare una visualizzazione di visualizzazione, ma non riscrivere erroneamente i numeri di serie ordinati nella fonte originale.
Può essere utilizzato in diversi modi come identità di riga
| Modo | Se sia adatta come identità | Il motivo |
|---|---|---|
| Pagina sorgente + numero tabella + numero riga sorgente | Prova | Può localizzare con affidabilità la linea nel testo originale |
| Nome del prodotto | Non adatto all'uso da solo | Possibili ripetizioni |
| Importo | Non adatto all'uso da solo | Possibili ripetizioni |
| Il numero di visualizzazione ordinato | Non adatto come fonte | L'ordinamento cambierà dopo l'ordinamento |
Nota l'unicità dello schema JSON
Gli array JSON mantengono l'ordine, ma uniqueItems nello schema non è una scorciatoia per "un campo è unico." Se gli altri campi di due oggetti differiscono, possono comunque essere considerati elementi distinti. L'unicità a livello di campo deve essere verificata separatamente.
Un insieme di dettagli con la stessa quantità ma fonti diverse
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}
Questo è un controllo dell'identità per dati sintetici, non un lettore di tabelle. Il codice deliberatamente non duplica la stessa quantità, né considera l'ordine di visualizzazione come la sorgente.
Le regole per generare gli ID di Fonte Vere devono considerare la versione del file. Altrimenti, la stessa pagina o riga in entrambe le versioni potrebbe essere scambiata per la stessa prova.
Se il numero di righe è errato, prima identifica l'anello mancante
| Fenomeno | Dovrebbe essere controllato | Non dovrebbe essere presa immediatamente |
|---|---|---|
| Gli importi sono duplicati | Che si tratti di un progetto diverso o di una banca di sorgenti diversa | I duplicati vengono rimossi in base all'importo |
| ID sorgente ripetuto | Che ci siano importazioni ripetute o mappe errate | Aggiungi casualmente un nuovo ID |
| Meno linee | Fusione delle celle, linee vuote e regole di filtro | Usa la riga precedente per colmare il vuoto |
| Cambiamenti di sequenza | Serve solo per l'ordinamento delle visualizzazioni? | Copri il numero originale della linea |
Le intestazioni a incrocio della pagina non sono semplici righe di dati
Intestazioni duplicate, descrizioni continue delle tabelle e righe di sottototale possono tutti entrare nell'array sussidiario. Eliminarli richiede regole interpretabili; non puoi semplicemente guardare il testo frontale o breve.
Mantenere le righe escluse e le loro ragioni può aiutare a rivedere gli errori e rilevare le cancellazioni. Altrimenti, il problema verrà indagato solo quando il totale finale non corrisponde.
Portare le relazioni di sorgente alla verifica post-traduzione
Le liste dettagliate multilingue dovrebbero essere allineate per ID sorgente e non possono essere ricercate solo per nome di prodotto tradotto. Quando si valutano i risultati di traduzione dei documenti di tabella di OmniDoc (Voce prodotto), vale la pena verificare separatamente le relazioni riga-colonna, le quantità e le unità.
L'identificazione della fonte in questo articolo è un accordo di ingegneria esterna e non fornisce una spiegazione dell'implementazione interna della piattaforma.
Riferimenti: Matrice dello schema JSON
🎯 Quale metodo ti si addice?
Se hai bisogno di ordinare per quantità per vedere la gente
Crea una visualizzazione di visualizzazione; l'ordinamento influisce solo sull'esposizione, e la pagina originale e il numero della riga di sorgente rimangono invariati.
Se la tua tabella ha intestazioni o sottototali a pagina incrociata
Usa regole spiegabili per escludere queste righe e conserva le righe escluse e le loro ragioni per una revisione successiva.
Se stai gestendo più versioni di un file
Le regole per generare gli ID sorgente dovrebbero essere incorporate nella versione del file per evitare confusione tra versioni della stessa pagina e riga.
Se vuoi fare un allineamento dei dettagli multilingue
Allineati per ID di sorgente; non affidarti solo al nome del prodotto tradotto.
❓ Domande Frequenti (FAQ)
1. Se le quantità in entrambe le righe sono uguali, i duplicati possono essere rimossi direttamente?
No. La stessa quantità non significa dati duplicati; le loro pagine di origine e i numeri di riga dovrebbero prima essere controllati per confermare se appartengono a elementi diversi o a righe di sorgente differenti.
2. Perché il nome del prodotto non è adatto all'identità della linea?
I nomi e le quantità dei prodotti possono essere duplicati, e usarli da soli non può localizzare in modo affidabile la linea originale.
3. Dopo l'ordinamento, il nuovo numero di serie può essere scritto di nuovo sui dati originali?
Non consigliato. I numeri di serie ordinati sono adatti solo per la visualizzazione; sovrascrivere i numeri originali della riga farà perdere la corrispondenza con la fonte.
4. A cosa dovresti prestare attenzione quando elimini intestazioni duplicate?
Dovrebbero esserci regole spiegabili, e le righe e i motivi esclusi dovrebbero essere conservati per identificare cancellazioni errate.
📝 Riassunto
Quando estrai i dettagli, mantieni prima la corrispondenza tra ogni riga e la fonte, poi discuti di ordinamento e deduplicazione. Il codice in questo articolo è solo per la dimostrazione di campioni sintetici e non garantisce tutte le prestazioni autentiche di file o prodotti. Prima di maneggiare documenti importanti, conserva gli originali e li esamina in base ai limiti e agli elementi di accettazione contenuti nel documento.


