Extraheer de gedetailleerde tabel, laat het sorteren de correspondentie tussen de rijen en de originele tekst niet verstoren
Dezelfde hoeveelheid details in de twee rijen betekent niet dat het dubbele gegevens zijn; de gesorteerde tabel is overzichtelijker, maar dit betekent niet dat deze regel voor regel kan worden uitgelijnd met de originele tekst. Wat het gemakkelijkst verloren gaat bij het extraheren van details is vaak de overeenkomst tussen elke rij en de bron. In dit artikel wordt uitgelegd hoe u deze kunt behouden.
Het feit dat de bedragen in de twee rijen hetzelfde zijn, betekent niet dat het dubbele gegevens zijn. Het feit dat de tabel gesorteerd is, betekent niet dat deze regel voor regel nog steeds overeenkomt met de originele tekst. Bij het extraheren van details gaat vaak niet het veld zelf verloren, maar de correspondentie tussen elke rij en de bron.
Dit artikel is geschikt voor mensen die details uit documenten moeten halen, zoals contracten, offertes, financiële tabellen, enz. Het is ook geschikt voor ontwikkelaars die stroomafwaartse verwerkingsprocessen bouwen. Na het lezen weet u hoe u de broninformatie voor elk detail kunt bewaren, hoe u kunt omgaan met de problemen die worden veroorzaakt door dezelfde hoeveelheid, kopteksten en sorteringen tussen pagina's, en welke uitlijning moet worden gebruikt tijdens de verificatie na de vertaling.
Hoe kan ik de correspondentie tussen rijen en bronnen behouden bij het extraheren van details? Conclusie in één zin
Bewaar voor elk detail een stabiele bronidentificatie. Sorteren is alleen voor weergave en overschrijft niet het originele regelnummer.
| jouw situatie | Aanbevolen praktijken | reden |
|---|---|---|
| Beide lijnen hebben hetzelfde bedrag | Controleer eerst de bronpagina en het bronregelnummer en haast u niet om duplicaten te verwijderen. | Hetzelfde bedrag vertegenwoordigt geen dubbele gegevens |
| Moet gesorteerd op bedrag worden weergegeven | Maak een weergaveweergave en laat het oorspronkelijke regelnummer ongewijzigd | De gesorteerde serienummers mogen niet worden teruggeschreven naar de bron |
| Er verschijnen dubbele kopteksten of subtotalen in de tabel | Sluit uit volgens interpreteerbare regels en bewaar uitgesloten rijen en redenen | Maak het voor reviewers gemakkelijker om onbedoelde verwijderingen te detecteren |
| Meertalige details moeten op elkaar worden afgestemd | Stem af op bron-ID, niet alleen op vertaalde productnaam | Zowel de productnaam als de hoeveelheid kunnen worden herhaald |
Sla eerst de stabiele rij-identiteit op
Bewaar de bronpagina, het tabelnummer en het bronrijnummer voor elk detail, of een stabiele identificatie die uit deze informatie is samengesteld. De productnaam en hoeveelheid kunnen herhaald worden en zijn niet geschikt als aparte identiteit.
Wanneer de downstream op hoeveelheid moet sorteren, kunt u een weergaveweergave maken, maar schrijf de gesorteerde serienummers niet per ongeluk terug naar de oorspronkelijke bron.
Het kan op verschillende manieren worden gebruikt als rij-identiteit
| Manier | Is het geschikt als identiteit? | reden |
|---|---|---|
| Bronpagina + tabelnummer + bronrijnummer | Geschikt | Kan de regel stabiel lokaliseren in de originele tekst |
| Productnaam | Niet geschikt voor gebruik alleen | mogelijk duplicaat |
| Hoeveelheid | Niet geschikt voor gebruik alleen | mogelijk duplicaat |
| Serienummer weergeven na sorteren | Niet geschikt als bron | Zal veranderen na het sorteren |
Besteed aandacht aan het unieke karakter van JSON Schema
De JSON-array zelf behoudt de volgorde, maar uniqueItems in het schema is geen afkorting voor "een veld is uniek". Twee objecten kunnen nog steeds als afzonderlijke items worden beschouwd, zolang andere velden verschillend zijn. Uniciteit op veldniveau moet afzonderlijk worden gecontroleerd.
Een reeks details met hetzelfde aantal en verschillende bronnen
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}
Dit is een identiteitscontrole op synthetische gegevens, geen tabelherkenner. De code ontdubbelt bewust niet dezelfde hoeveelheden en beschouwt de weergavevolgorde ook niet als de bronvolgorde.
De regels voor het genereren van bron-van-waarheids-ID's moeten rekening houden met bestandsversies. Anders kan de inhoud op dezelfde pagina en regel in beide versies worden aangezien voor hetzelfde bewijsstuk.
Als het aantal regels onjuist is, zoek dan eerst de ontbrekende link.
| Fenomeen | moet worden gecontroleerd | mag niet onmiddellijk worden ingenomen |
|---|---|---|
| Dubbel bedrag | Of het nu een ander project is of een andere bronlijn | Verwijder duplicaten op bedrag |
| Dubbele bron-ID | Is er sprake van een dubbele import- of mappingfout? | Voeg willekeurig een nieuwe ID toe |
| Aantal rijen verminderd | Voeg cellen, lege rijen en filterregels samen | Compleet met de vorige regel |
| Volgorde verandering | Of er alleen op vertoningen moet worden gesorteerd | Origineel regelnummer overschrijven |
De koptekst op meerdere pagina's is geen gewone gegevensrij
Herhalende tabelkoppen, vervolgtabelbeschrijvingen en subtotaalrijen kunnen allemaal in de detailsarray terechtkomen. Om ze te verwijderen zijn interpreteerbare regels nodig die niet alleen kijken naar een hogere positionering of kortere tekst.
Door de uitgesloten regels en hun redenen te behouden, kunnen reviewers onbedoelde verwijderingen opsporen. Anders wordt het probleem alleen maar aangepakt als het uiteindelijke totaal niet klopt.
Breng de bronrelatie naar verificatie na de vertaling
Meertalige schema's moeten kunnen worden afgestemd op bron-ID, en niet alleen op vertaalde productnaam. Bij het evalueren van de vertaalresultaten van de tabeldocumenten van OmniDoc (productportaal) zijn de rij-kolomrelaties, hoeveelheden en eenheden de moeite waard om afzonderlijk te controleren.
De bronidentificatie van dit artikel is een uiterlijke technische conventie en is geen beschrijving van de interne implementatie van het platform.
Bronnen: JSON-schemaarray
🎯 Welke methode is geschikt voor jou?
Als u op bedrag moet sorteren om het aan anderen te laten zien
Maak een weergaveweergave, de sortering heeft alleen invloed op de weergave, de oorspronkelijke bronpagina en het bronregelnummer blijven ongewijzigd.
Als uw tabel kopteksten of subtotalen over meerdere pagina's bevat
Gebruik interpreteerbare regels om deze regels uit te sluiten, en bewaar de uitgesloten regels en redenen voor latere beoordeling.
Als u meerdere versies van een bestand wilt verwerken
De regels voor het genereren van bron-ID's moeten in de bestandsversie worden opgenomen om te voorkomen dat de inhoud van dezelfde regel op dezelfde pagina tussen verschillende versies wordt verward.
Als u gedetailleerde uitlijning in meerdere talen wilt uitvoeren
Stem af op bron-ID en vertrouw niet uitsluitend op de vertaalde productnaam.
❓ Veelgestelde vragen (FAQ)
1. De bedragen in de twee rijen zijn hetzelfde. Kan ik de duplicaten direct verwijderen?
kan niet. Hetzelfde aantal betekent niet dat er dubbele gegevens zijn. U moet eerst hun bronpagina en bronrijnummer controleren om te bevestigen of ze tot verschillende projecten of tot verschillende bronrijen behoren.
2. Waarom is de productnaam niet geschikt als rij-identiteit?
De productnaam en hoeveelheid kunnen worden herhaald en het is onmogelijk om de regel stabiel in de originele tekst te lokaliseren als deze alleen wordt gebruikt.
3. Kan het nieuwe volgnummer na het sorteren worden teruggeschreven naar de originele gegevens?
Niet aanbevolen. De gesorteerde serienummers zijn alleen geschikt voor weergave. Als u de originele regelnummers overschrijft, gaat de correspondentie met de bron verloren.
4. Waar moet je op letten bij het verwijderen van dubbele headers?
Er moeten interpreteerbare regels zijn en de uitgesloten regels en redenen moeten behouden blijven, zodat onbedoelde verwijderingen kunnen worden gedetecteerd.
📝 Samenvatting
Houd bij het extraheren van details eerst de correspondentie tussen elke rij en de bron bij en praat vervolgens over sorteren en ontdubbelen. De code in dit artikel is slechts een synthetische voorbeelddemonstratie en vormt geen garantie voor alle echte bestanden of producteffecten. Voordat u belangrijke documenten verwerkt, dient u de originelen te bewaren en deze te controleren op basis van de grenzen en acceptatie-items in de tekst.


