Gids
Productgegevens uit pdf’s halen
Leveranciers-pdf’s bevatten de specificaties die uw catalogus nodig heeft, maar niet in een vorm die u kunt importeren. Hier zijn vier manieren om ze om te zetten in gestructureerde productgegevens, en hoe u kiest.
Productgegevens extraheren betekent de waarden die in een document staan — modelnummers, afmetingen, materialen, capaciteiten, vermogens, waarschuwingen — omzetten in velden die een systeem kan gebruiken. Voor een handvol producten is handmatig overnemen prima. Bij een leverancierscatalogus met honderden SKU’s en van elke fabrikant een andere pdf-indeling bepaalt de gekozen methode hoe lang het inrichten duurt en hoeveel fouten in uw winkel terechtkomen.
Hieronder vergelijken we de vier gangbare aanpakken en behandelen we daarna de controles die ongeacht de methode belangrijk zijn.
Begin bij het resultaat: definieer uw productschema
Bepaal voordat u iets extraheert welke velden u nodig hebt en in welke vorm. Een schema voor een klein apparaat kan bestaan uit model, merk, EAN, breedte/hoogte/diepte in millimeters, gewicht in kilogram, vermogen in watt, spanning, materiaal, kleur en waarschuwingen. Door eenheden en toegestane waarden vooraf vast te leggen, worden de geëxtraheerde gegevens vergelijkbaar tussen leveranciers.
Verkoopt u via meerdere kanalen, koppel dan elk veld aan de kenmerknamen die die kanalen gebruiken (bijvoorbeeld Shopify-productopties of WooCommerce-attributen), zodat de geëxtraheerde gegevens zonder nieuwe opmaakronde kunnen worden hergebruikt.
Methode 1: handmatig kopiëren en plakken
Iemand opent de pdf en typt of plakt waarden in een spreadsheet of productformulier. Dit vraagt geen extra tools en werkt met elke indeling, en daarom beginnen de meeste teams hier.
De kosten nemen toe met het volume: het is traag, de aandacht verslapt en overtypfouten — een verwisseld cijfer in een modelnummer, een waarde uit de verkeerde kolom — zijn achteraf moeilijk te vinden. Handmatige invoer werkt voor kleine catalogi of als beoordelingsstap bovenop een geautomatiseerde methode.
Methode 2: tools voor pdf-tabelextractie
Tools voor tabelextractie (waaronder opensourceopties en de exportfuncties van pdf-editors) herkennen tabellen in digitale pdf’s en exporteren ze naar CSV of Excel. Ze zijn snel wanneer de gegevens echt in een nette tabel staan.
Ze hebben moeite met waarden in lopende tekst, samengevoegde cellen, tabellen over meerdere pagina’s en gescande documenten, en ze leveren ruwe tabellen op in plaats van benoemde velden — u moet nog steeds kolommen aan uw schema koppelen en kopteksten, eenheden en voetnoten opschonen.
Methode 3: sjabloon- of zonale parsing
Met sjabloongebaseerde parsers legt u voor een bepaalde indeling vast waar elk veld op de pagina staat. Eenmaal ingesteld wordt elk document in precies die indeling consistent geëxtraheerd, wat past bij grote aantallen identieke documenten zoals facturen van één afzender.
Leveranciersdatabladen zijn zelden zo uniform. Elke fabrikant — en vaak elke productlijn — heeft een eigen sjabloon nodig, en sjablonen werken niet meer als de leverancier het ontwerp wijzigt. Bij catalogi van veel leveranciers wegen de onderhoudskosten al snel zwaarder dan de winst.
Methode 4: AI-extractie
AI-extractie gebruikt taal- en beeldmodellen om het document te lezen zoals een mens dat zou doen: het vindt het modelnummer of dat nu in een koptekst, een tabel of een zin staat, en geeft de velden van uw schema terug met waarden en eenheden. Omdat het niet afhankelijk is van vaste posities, kan één configuratie veel leveranciersindelingen aan, ook gescande pagina’s.
Het nadeel is dat AI-uitvoer moet worden beoordeeld. Goede tools tonen een betrouwbaarheidsindicatie en bronbewijs bij de geëxtraheerde waarden, zodat beoordelaars zich op de onzekere waarden kunnen richten, en laten een veld leeg of gemarkeerd in plaats van te gokken wanneer het document het niet vermeldt. De pdf-gegevensextractie van Doc2Shelf geeft elke extractie een score voor betrouwbaarheid en volledigheid en legt geëxtraheerde feiten vast met hun pagina en een kort citaat; het beoordeelde record kan vermeldingen en conceptdocumenten voor compliance voeden.
Hoe kiest u een methode?
Een praktische vuistregel:
- Minder dan circa 20 producten, of eenmalige toevoegingen: handmatige invoer met een duidelijk schema.
- Nette digitale tabellen, een of twee leveranciers: een tool voor tabelextractie plus opschonen.
- Grote volumes van één identieke indeling: sjabloonparsing.
- Veel leveranciers, uiteenlopende indelingen of gescande pdf’s: AI-extractie met menselijke beoordeling.
Controles die geëxtraheerde gegevens nauwkeurig houden
Welke methode u ook gebruikt, dezelfde problemen veroorzaken de meeste fouten. Bouw deze controles in uw beoordelingsstap in:
- Modelkoppeling: als een blad meerdere modellen bevat, controleer dan of elke waarde bij de juiste modelkolom hoort.
- Eenheden: normaliseer eenheden (mm versus cm, W versus kW) en bewaar de eenheid bij elke numerieke waarde.
- Voetnoten en voorwaarden: waarden zoals capaciteit of looptijd hangen vaak af van vermelde testomstandigheden.
- Identificatiecodes: controleer de controlecijfers van EAN/GTIN en modelnummers teken voor teken.
- Ontbrekende of tegenstrijdige waarden: vraag het de leverancier in plaats van een waarde af te leiden die niet in het document staat.
- Traceerbaarheid: houd de bron-pdf gekoppeld aan het record, zodat iedereen een waarde later opnieuw kan controleren.
Extractiemethoden naast elkaar vergeleken
De vier bovenstaande methoden verschillen minder in wat ze kunnen lezen dan in wat hun nauwkeurigheid bepaalt en hoeveel configuratie ze vragen. OCR hoort ook in de vergelijking, maar dan als laag en niet als methode: het zet een gescande pagina om in tekst, en een van de andere methoden moet die tekst nog steeds omzetten in velden.
Nauwkeurigheid is nooit een eigenschap van de methode alleen. Ze hangt af van de documenten die u aanlevert, hoe duidelijk uw schema elk veld definieert en hoe consequent de beoordelingsstap is — daarom loont het om te meten op een steekproef van uw eigen leveranciers-pdf’s in plaats van te vertrouwen op gepubliceerde cijfers.
| Methode | Nauwkeurigheid hangt af van | Inspanning voor configuratie | Uitvoer | Het meest geschikt voor |
|---|---|---|---|---|
| Handmatige invoer | Aandacht van de beoordelaar en een duidelijk schema | Geen | Benoemde velden, zoals getypt | Kleine catalogi; eenmalige toevoegingen; de beoordelingsstap |
| Kopiëren en plakken of pdf-naar-Excel-export | Een echte tekstlaag en schone, niet-samengevoegde tabellen | Laag | Ruwe tekst of tabellen die u met de hand moet koppelen | Schone digitale tabellen van een of twee leveranciers |
| Sjabloon- of zonale parsing | Elk document met een identieke opmaak | Hoog per opmaak, opnieuw als de opmaak verandert | Benoemde velden | Grote volumes met één vaste opmaak |
| OCR | Scanresolutie, contrast, scheefstand, lettertypen, taal | Laag tot gemiddeld | Alleen tekst | Gescande pagina’s leesbaar maken voor een andere methode |
| Extractie met een LLM | Duidelijkheid van het schema, documentkwaliteit, beoordelingsdiscipline | Laag per opmaak; vereist een beoordelingsworkflow | Benoemde velden met waarden en eenheden | Veel leveranciers, uiteenlopende opmaak, een mix van lopende tekst en tabellen |
Specificatietabellen en tabellen met meerdere varianten verwerken
De meeste extractiefouten in databladen ontstaan in tabellen, en de meeste daarvan wanneer één tabel meerdere modellen beschrijft. Een tabel die voor een lezer vanzelfsprekend lijkt, verbergt structuur waarin een parser of een vermoeid mens fouten kan maken: eenheden die alleen in de kop staan, cellen die over modellen heen zijn samengevoegd, voetnootmarkeringen aan getallen en tabellen die op de volgende pagina doorlopen.
Werk elke specificatietabel in een vaste volgorde door voordat een waarde in een record wordt gekopieerd:
- Bepaal de oriëntatie: staan modellen of varianten in kolommen of in rijen? Noteer hoeveel het er zijn, zodat u aan het einde het aantal records kunt controleren.
- Lees elke koprij, inclusief eenheden tussen haakjes, en neem de eenheid over naar elke cel in die kolom of rij.
- Splits samengevoegde cellen: een waarde die meerdere modelkolommen beslaat, geldt voor elk van die modellen, niet alleen voor het eerste.
- Voeg tabellen die over meerdere pagina’s zijn verdeeld weer samen, en controleer dat de herhaalde kop niet als gegevensrij wordt gelezen en dat er bij de pagina-overgang geen rij verloren gaat.
- Scheid voetnootmarkeringen van getallen — „1.1¹” is 1.1 met voetnoot 1, niet 1.11 — en bewaar de voetnoottekst als voorwaarde bij die waarde.
- Maak onderscheid tussen leeg, „—”, „n.v.t.” en „optioneel”: leeg betekent onbekend, een streepje betekent vaak niet van toepassing, en geen van beide mag nul worden.
- Zoek naar waarden buiten de tabel, zoals „alle modellen: 230 V” eronder, en pas ze toe op elk model waarvoor ze gelden.
- Splits de tabel in één record per model of variant en controleer dan of het aantal records overeenkomt met stap 1.
Gescande pdf’s en OCR-kwaliteit
Controleer eerst of een pdf een tekstlaag heeft: als u de tekst kunt selecteren of doorzoeken, is het een digitaal bestand; zo niet, dan is het een afbeelding en is OCR nodig voordat een tabeltool het kan lezen. Stuurt een leverancier een scan, vraag dan om het digitale origineel — dat voorkomt een hele categorie fouten. Moet u zelf scannen, dan is een resolutie van ongeveer 300 dpi een gangbare aanbeveling voor tekst, en rechte pagina’s met veel contrast zijn net zo belangrijk als resolutie.
OCR-fouten zijn gevaarlijk omdat ze geloofwaardig ogende uitvoer opleveren. De tekens die worden verward, zijn voorspelbaar, dus de controles kunnen dat ook zijn:
| OCR-fout | Voorbeeld | Hoe u het opspoort |
|---|---|---|
| Letters en cijfers verward (O/0, l/1, S/5, B/8) | „AX-1OO” in plaats van AX-100 | Patroontests op modelnummers; controlecijfer van de GTIN |
| Decimaalteken verloren | „1,5 l” gelezen als „15 l” | Aannemelijkheidsbereik per kenmerk |
| Voetnoot samengevoegd met een getal | „1.1¹ kg” gelezen als „1.11 kg” | Vergelijk met verwante modellen; zoek de voetnoottekst |
| Verkeerde leesvolgorde | Twee kolommen samengevoegd tot één regel | Controleer het aantal waarden per model |
| Eenheidssymbolen verkeerd gelezen | „°C” als „oC”, „µm” als „um” | Lijst met toegestane eenheden per kenmerk |
| Minteken of streepje weggevallen | „−20 °C” gelezen als „20 °C” | Controleer of het bereikminimum ≤ maximum is |
Uitgewerkt voorbeeld: een datablad wordt een gestructureerd record
Hieronder ziet u hoe de bovenstaande stappen werken voor één illustratief datablad van een waterkoker dat twee modellen in één tabel beschrijft. Het is een voorbeeld ter illustratie, geen echt product en geen gemeten extractieresultaat. Elke bronregel wordt aan een veld gekoppeld, genormaliseerd en gecontroleerd.
Het resultaat zijn twee variantrecords die capaciteit, vermogen en spanning delen, elk met een eigen kleur, gewicht en identificatiecode — plus twee openstaande vragen voor de leverancier. Er is niets op aannames ingevuld: de EAN van het tweede model en het land van herkomst blijven leeg totdat de leverancier ze aanlevert. Het normaliseren van waarden en eenheden over veel leveranciers in plaats van één blad komt aan bod in de gids over productkenmerken.
| Bronregel zoals afgedrukt | Veld | Geëxtraheerde waarde | Toegepaste controle |
|---|---|---|---|
| Model: AX-100 | AX-100B | model_number | AX-100; AX-100B | Twee kolommen, dus twee variantrecords |
| Inhoud 1,5 l (samengevoegd over beide modellen) | capacity | 1.5 L voor elk model | Decimale komma; samengevoegde cel naar beide gekopieerd |
| Vermogen 1850–2200 W | rated_power | min. 1850 W, max. 2200 W | Als bereik bewaard, niet als één getal |
| 220–240 V~ 50/60 Hz | rated_voltage; frequency | 220–240 V AC; 50/60 Hz | Eén regel, twee velden |
| Kleur: geborsteld staal | zwart | color | geborsteld staal; zwart | Eén waarde per variant |
| Nettogewicht (kg) 1.1¹ | 1.0¹ | net_weight | 1.1 kg; 1.0 kg | Eenheid uit de kop; voetnoot ¹ „zonder voet” bewaard |
| EAN 6291041500213 | — | gtin | 6291041500213; leeg | Controlecijfer geldig; vraag de ontbrekende EAN op |
| (niet vermeld) | country_of_origin | leeg | Opvragen bij leverancier; nooit afgeleid |
Veelvoorkomende faalwijzen en een verificatieworkflow
Dezelfde handvol kenmerken van documenten veroorzaakt de meeste extractiefouten, ongeacht de methode. Als u die kent, kunt u de beoordeling inrichten op de echte risico’s in plaats van elke waarde met gelijke zorg opnieuw te lezen.
- Controleer het document: juiste product, actuele revisie, alle pagina’s aanwezig.
- Vergelijk elke identificatiecode (modelnummer, GTIN met controlecijfer) en elke voor de veiligheid relevante waarde — waarschuwingen, elektrische waarden, gevareninformatie — met de bron.
- Voer automatische controles uit op de rest: eenheden aanwezig, waarden binnen aannemelijke bereiken, verplichte velden ingevuld.
- Controleer per leverancier steekproefsgewijs een deel van de overige velden en vergroot de steekproef wanneer u fouten vindt.
- Maak van onopgeloste hiaten vragen aan de leverancier in plaats van schattingen.
- Bewaar de bron-pdf, de beoordelaar en de beoordelingsdatum bij het record.
| Faalwijze | Wat er misgaat | Preventie |
|---|---|---|
| Eenheden alleen in koppen | Kale getallen verliezen hun eenheid | Neem kop-eenheden over; wijs metingen zonder eenheid af |
| Voetnoten en testomstandigheden | „Typisch”, „bij 25 °C” of „zonder voet” valt weg | Bewaar omstandigheden samen met de waarde |
| Samengevoegde cellen | Waarde alleen aan het eerste model toegewezen | Splits samengevoegde cellen voordat u varianten scheidt |
| Meertalige databladen | Decimale komma’s verkeerd gelezen; dezelfde waarde tweemaal vastgelegd in twee talen | Parsing van getallen volgens de taalregio; lijst met synoniemen voor koppen; ontdubbelen |
| Meerdere producten in één pdf | Waarden aan het verkeerde product gekoppeld | Eén record per product; controleer elk modelnummer |
| Verouderde revisies | Een oud blad spreekt het actuele blad tegen | Leg de documentdatum of revisie vast; geef de voorkeur aan de nieuwste |
| Waarden alleen in tekeningen of afbeeldingen | Afmetingen op een technische tekening worden gemist | Controleer tekeningen; markeer ontbrekende afmetingen |
Veelgestelde vragen
- Kan ik gegevens uit een gescande pdf halen?
- Ja, maar de tekst moet eerst met OCR (optische tekenherkenning) worden herkend. Tabeltools die alleen digitale tekst lezen, leveren niets op van een gescande pagina; tools met OCR en AI-gebaseerde tools kunnen deze wel lezen, waarbij bij scans van lage kwaliteit extra zorg nodig is.
- Hoe haal ik productkenmerken uit een pdf-datablad?
- Bepaal welke kenmerken u nodig hebt (bijvoorbeeld materiaal, kleur, inhoud) en haal de waarden uit de tabellen en tekst van het datablad, handmatig of met een AI-tool die tabelcellen en zinnen aan velden koppelt. Wees voorzichtig met kenmerken die alleen in marketingtekst staan en controleer technische waarden aan de hand van de specificatietabellen.
- In welk formaat moeten geëxtraheerde productgegevens staan?
- Gebruik wat uw vervolgsysteem importeert — meestal CSV voor spreadsheets en winkelimporters, of JSON voor API’s en PIM-systemen. Houd één rij of object per productvariant aan, met consistente veldnamen en eenheden.
- Is AI-extractie nauwkeurig genoeg om zonder beoordeling te publiceren?
- Het hoort niet onbeoordeeld te worden gepubliceerd. AI-extractie neemt het meeste typewerk weg, maar een persoon moet onzekere velden, identificatiecodes en alles wat met veiligheid te maken heeft aan de hand van het brondocument bevestigen voordat de gegevens worden gebruikt.
- Wat is de beste manier om tabellen uit een pdf-datablad te halen?
- Voor schone digitale tabellen werken zowel een tool voor tabelextractie als een AI-extractietool; gescande tabellen hebben eerst OCR nodig. Welke tool u ook gebruikt: splits samengevoegde cellen, neem kop-eenheden over naar elke waarde, scheid voetnootmarkeringen van getallen en splits tabellen met meerdere modellen in één record per model.
- Hoe nauwkeurig is AI-extractie van productgegevens uit pdf’s?
- Dat hangt af van de documentkwaliteit, de complexiteit van de opmaak en hoe duidelijk u de velden definieert, dus er is geen enkel nauwkeurigheidscijfer dat voor uw documenten geldt. Meet het zelf: extraheer een steekproef van uw leveranciers-pdf’s en vergelijk elk veld met de bron, waarbij u foute en ontbrekende waarden apart telt.
- Kan ik een pdf-catalogus omzetten naar een csv voor mijn winkel?
- Ja. Extraheer één record per product of variant naar een vaste set kolommen, normaliseer eenheden en waarden en hernoem de kolommen vervolgens zodat ze overeenkomen met het importsjabloon van uw winkel. Een catalogus bevat vaak minder detail per product dan afzonderlijke databladen, dus verwacht hiaten die u uit andere bronnen moet aanvullen.
- Hoe haal ik gegevens uit databladen in andere talen?
- Bewaar waarden tijdens de extractie zoals ze zijn afgedrukt, parseer getallen volgens de taalregio van het document (decimale komma’s, scheidingstekens voor duizendtallen) en koppel kopteksten in een vreemde taal met een synoniemenlijst aan uw veldnamen. Vertaal beschrijvende tekst apart en laat die controleren.