Boekmetadata en omslag ophalen met behulp van OCR en Google Books API
Met KNIME wordt het extraheren van kritieke stukjes informatie uit afbeeldingen net zo eenvoudig als ABC.
By Roberto Cadili, datawetenschapper, KNIME & Lada Rudnitckaia, Datawetenschapper, KNIME
Figuur 1: Voorbeelden van publicaties van boekuitgaven waar informatie uit kan worden gehaald dankzij OCR.
Meestal zijn de onbewerkte gegevens die we nodig hebben voor ons data science-project niet georganiseerd in een nette, goed gestructureerde en inzichtelijke tabel. In plaats daarvan wordt dit soms opgeslagen als tekst in een gescand document. Woorden in het document moeten vervolgens één voor één worden geëxtraheerd om een tekstgeformatteerde gegevenscel te vormen. Dit is de taak die wordt uitgevoerd door Optical Character Recognition (OCR).
Terwijl u de woorden van dit artikel leest, of het nu tekst of cijfers zijn, kunnen uw ogen ze verwerken door lichte en donkere patronen te herkennen waaruit tekens bestaan (bijvoorbeeld letters, cijfers, leestekens, enz.). Je hersenen decoderen dan de verschillende combinaties van karakters en patronen om de betekenis van de woorden te begrijpen. In die zin zijn je ogen en hersenen de meest geavanceerde en verfijnde OCR-engine die je je maar kunt voorstellen, en ze werken zonder dat je het merkt.
Computers hebben vergelijkbare mogelijkheden, maar ze moeten een cruciale beperking aanpakken: de afwezigheid van ogen. Als we willen dat computers een fysiek tekstdocument zien en lezen, moeten we een grafisch bestand invoeren dat is gegenereerd met een optische scanner of een digitale camera. Wat computers betreft, is er geen verschil tussen een document dat met een van deze opties is verkregen en een foto van de Eiffeltoren: beide worden beschouwd als betekenisloze verzamelingen gekleurde vierkanten - ook wel pixels genoemd - die elk computergrafisch beeld vormen. Als zodanig is de laatste slechts een afbeelding van de tekst die we willen lezen in plaats van de tekst zelf.
Dit is waar OCR van pas kan komen. Deze krachtige technologie is in staat om gedrukte, getypte of handgeschreven gegevens, of het nu gaat om facturen, visitekaartjes, juridische teksten of afdrukken, te extraheren en om te zetten in een doorzoekbaar en bewerkbaar digitaal formaat. Hoewel OCR jarenlang werd beschouwd als een dure service, die slechts zeer weinig grote bedrijven zich konden veroorloven, zijn de kosten vanaf het midden van de jaren 2000 geleidelijk gedaald, terwijl de nauwkeurigheid en mogelijkheden zijn geëvolueerd om tegenwoordig honderden talen en tekencodering te ondersteunen. , van UTF-8 tot GB2312.
Het voordeel van het kunnen zoeken en extraheren van tekst uit afbeeldingen kan van onschatbare waarde zijn. In de juridische of boekhoudkundige sector kan het bijvoorbeeld een aanzienlijke kosten- en tijdbesparing betekenen, omdat het het mogelijk maakt om tekstgedeelten of cijfers in artikelen of financiële overzichten binnen enkele seconden op te halen. Door dit proces te vergelijken met de kosten van het inhuren van een groep mensen om duizenden documenten door te lezen om slechts één cruciaal stuk informatie te vinden, krijgt u een idee van hoe OCR bedrijven ten goede kan komen.
Meer recentelijk ondergaat de OCR-technologie een stille revolutie, aangezien aanbieders van deze service deze combineren met AI. Als gevolg hiervan worden niet alleen gegevens vastgelegd, doorzoekbaar en bewerkbaar gemaakt, maar begrijpt het AI-systeem ook daadwerkelijk de inhoud om specifieke taken uit te voeren. Na het OCRen van een tekst kan AI bijvoorbeeld de vertaling leveren met behulp van neurale machinevertaling met minimale menselijke tussenkomst. Een ander klassiek voorbeeld komt uit de auditsectie, waar frauduleuze facturen kunnen worden herkend na OCR-herkenning van de inhoud van het pdf-document, met behulp van technieken voor het detecteren van uitschieters. Enzovoort. Deze synergie combineert het beste van twee werelden om processen te stroomlijnen en de productiviteit voor bedrijven en klanten te verhogen.
In de use case die in dit artikel wordt beschreven, wordt OCR gebruikt om een boek te identificeren en vervolgens de metadata van het boek op te halen uit de Google Books-repository.
Meer specifiek gaan we kijken naar:
- Hoe OCR kan worden uitgevoerd in KNIME Analytics-platform.
- Hoe we KNIME's OCR-processor en Google Books API kunnen integreren voor het ophalen van metadata en omslag van boeken.
OCR in KNIME Analytics-platform
Het OCRen van een afbeelding met tekst in KNIME is een zeer gemakkelijke taak. Het enige dat nodig is, is het installeren van de KNIME-beeldverwerking - Tess4J-integratie extensie in uw lokaal KNIME Analytics-platform, en om het Tess4J node op uw workflow-editor.
Het Tess4J-knooppunt integreert de Tesseract OCR-bibliotheek, een van de meest gebruikte en nauwkeurige open-source OCR-processors die beschikbaar is. Tesseract is oorspronkelijk ontwikkeld als eigen software door Hewlett-Packard Laboratories in de vroege jaren negentig en werd later in 1990 open source gemaakt. Sindsdien heeft Google het project geadopteerd en de ontwikkeling ervan gesponsord.
Het Tess4J-knooppunt draait op Tesseract 3, dat werkt door tekenpatronen te herkennen in een tweegangsprocedure.
- In de eerste doorgang probeert de engine elk afzonderlijk personage te herkennen. Vervolgens worden de karakters die bij de eerste doorgang met groot vertrouwen werden herkend, doorgegeven aan een adaptieve classificator als trainingsgegevens. Op deze manier heeft de adaptieve classificator de kans om volgende tekst nauwkeuriger te leren herkennen.
- Het kan echter voorkomen dat de adaptieve classificator nuttige informatie te laat leert om nog een zinvolle bijdrage te kunnen leveren. Om dit probleem op te lossen en gebruik te maken van de kennis die is opgedaan door de adaptieve classificator, voert de engine een tweede doorgang uit waarbij karakters die niet goed genoeg werden herkend, opnieuw worden herkend [1].
Tesseract 3 verwerkt alle Unicode-tekens (gecodeerd met UTF-8) en kan tekst in verschillende talen en schrijflay-out verwerken: van links naar rechts (bijv. Engels, Italiaans, Russisch, enz.), van rechts naar links (bijv. Arabisch, Hebreeuws, Urdu etc.) en van boven naar beneden (bijv. Japans, Koreaans, Chinees, etc.) [2].
Disclaimer. Mac-gebruikers kunnen momenteel de Tess4J-node niet gebruiken. KNIME-ontwikkelaars werken eraan om de soepele werking te herstellen.
Use Case: Metadata en omslag van boek ophalen
Nu we een basiskennis hebben opgedaan van hoe OCR werkt in KNIME Analytics Platform, gaan we eens kijken naar een interessante use case. Stel dat we afbeeldingen hebben verzameld die de editieberichten van verschillende boeken illustreren en met deze informatie willen we boekmetadata en omslagen ophalen. De opgehaalde gegevens kunnen vervolgens worden gebruikt om bijvoorbeeld een digitale bibliotheek op maat te bouwen en een systeem voor het aanbevelen van boeken te trainen.
De workflow in afbeelding 2 omvat alle stappen: van het lezen van afbeeldingen, OCRing, tekstverwerking en extractie van ISBN-referenties tot metadata van boeken en het ophalen en visualiseren van de omslag. Laten we de verschillende stappen in detail bekijken.
Afbeelding 2: dit workflow voert een eenvoudige OCR-taak uit op kennisgevingen van boekedities en haalt metadata en omslag van boeken op met behulp van Google Books API.
1 — Beeldgegevens lezen
De eerste stap is het importeren van de afbeeldingen van de publicatie van de boekeditie in KNIME. De editie-kennisgeving is de pagina in een boek met informatie over de huidige editie, zoals een copyright-kennisgeving, juridische kennisgevingen, publicatie-informatie, drukgeschiedenis en een ISBN-code (Afbeelding 1).
De metanode “Read image data” zorgt daar op een gemakkelijke en programmatische manier voor (Figuur 3). We identificeren de locatie waar afbeeldingsbestanden zijn opgeslagen met de Lijst bestanden/mappen knoop en gebruik de Afbeeldingslezer (tabel) node om de afbeeldingen netjes te importeren. In het knooppunt Image Reader (Table) hoeven we alleen de "File Input Column" op te geven, dat wil zeggen de kolom met de paden naar de bestanden waar onze afbeeldingen zijn opgeslagen. Alle andere configuraties kunnen standaard worden gelaten.
De Image Reader (Tabel) maakt deel uit van de KNINE-beeldverwerking extensie en, net als andere knooppunten in deze extensie, biedt het een interactieve weergave met de afbeelding en de metadata door simpelweg met de rechtermuisknop op het knooppunt te klikken, "View: Image Viewer" te selecteren en te dubbelklikken op een afbeelding in de tabelweergave.
Figuur 3: In de metanode “Lees beeldgegevens”. Het knooppunt Image Reader (Table) importeert afbeeldingen in de workflow en stelt ons in staat om ze interactief te verkennen in zijn weergave.
2 — OCR
Na het inlezen van de afbeeldingsbestanden van de publicaties van het boek, kunnen we deze OCR'en.
De configuratie van het Tess4J-knooppunt is heel eenvoudig en vereist slechts een paar klikken (afbeelding 4). In de Instellingen tab, biedt het knooppunt de mogelijkheid om elke rotatie of scheve afbeelding te corrigeren door het vakje "Scheef invoerafbeeldingen" te selecteren in het gedeelte "Voorverwerking" van het configuratiedialoogvenster. Het wordt meestal aangeraden om dit te doen, omdat grafische bestanden mogelijk niet goed zijn uitgelijnd. Bovendien produceert het Tess4J-knooppunt automatisch een gebinariseerd beeld achter de motorkap.
Vervolgens selecteren we het "Tessdata-pad". Standaard staat deze op “Intern gebruiken”, waarmee we vervolgens de taal kunnen kiezen van de tekst die we willen verwerken. In deze configuratie is Engels de standaardtaal, maar de Tess4J-node ondersteunt andere natuurlijke talen zoals Deens, Italiaans, Spaans, Russisch, Grieks, Slowaaks, Duits en Frans. Het is vermeldenswaard dat we door "Gebruik extern" te selecteren de mogelijkheden van het Tess4J-knooppunt kunnen uitbreiden met talen die niet intern worden ondersteund. We kunnen inderdaad onze eigen, extern getrainde data-taalmodellen kiezen door de directory te specificeren waarin ze zijn opgeslagen. We kiezen voor "Use Internal" omdat we voor onze Engelse documenten liever vertrouwen op de interne modellen van Tess4J.
In het gedeelte "Herkenningsconfiguratie" vinden we de twee belangrijkste vervolgkeuzelijstconfiguraties, namelijk de "Paginasegmentatiemodus" en de "OCR Engine-modus". De eerste definieert hoe onze pagina is gesegmenteerd.
In figuur 4 selecteren we “Full Auto Pageseg”, wat zorgt voor een volautomatische paginasegmentatie. Afhankelijk van de specifieke gebruikssituatie, kan het selecteren van een andere modus uit de 13 beschikbare modus (bijv. "Enkele kolom" of "Sparse tekst") een geschiktere optie zijn.
De tweede instelling vraagt ons om de OCR-engine te kiezen. Hier selecteren we "Alleen Tesseract", wat zorgt voor de snelste uitvoering. Andere opties zijn "Alleen kubus" - een alternatieve herkenningsmodus voor Tesseract - die langzamer is maar vaak betere resultaten oplevert; of "Tesseract And Cube", die het beste van twee werelden combineert. De keuze voor een of andere engine hangt sterk af van de kwaliteit van het beeld en de complexiteit van de tekst die we willen verwerken.
Naast de basisinstellingen biedt de Tess4J-node een Geavanceerde configuratie tabblad waar we een set van kunnen definiëren Controleparameters. Dit tabblad maakt het knooppunt extreem flexibel en helpt ervaren gebruikers om de Tesseract OCR-engine aan te passen en af te stemmen op hun specifieke behoeften. Maar maak je geen zorgen, met de basisconfiguraties kom je in de meeste gevallen een heel eind!
Afbeelding 4: configuratiedialoogvenster van het Tess4J-knooppunt.
Naast het aanpassen van de configuraties van het Tess4J-knooppunt aan de gebruikssituatie, is het een goede gewoonte om invoerafbeeldingen indien nodig grondig voor te verwerken. Tesseract werkt met name het beste wanneer afbeeldingen voldoende zijn opgeschaald zodat het aantal pixels van de x-hoogte van tekens ten minste 20 pixels is; afbeeldingen zijn correct uitgelijnd en hebben een voldoende hoge resolutie; en eventuele donkere randen worden verwijderd, anders kunnen ze verkeerd worden geïnterpreteerd als tekens [3]. De KNINE-beeldverwerking extensie bevat verschillende knooppunten voor het opschonen, manipuleren en transformeren van afbeeldingen, en nog veel meer voorbeeld werkstromen is te vinden op de KNIME-hub.
De uitvoer van het Tess4J-knooppunt is een tabel met de geëxtraheerde tekst als gegevenstype String, en als zodanig kan deze worden doorzocht en bewerkt.
3 — Tekstverwerking voor ISBN-extractie
Nadat de afbeeldingen zijn OCRed, kan de tekst die ze bevatten eindelijk worden geopend en kan nuttige informatie worden opgehaald.
Met name in publicaties wordt meestal de ISBN-code vermeld die aan het boek is toegewezen. De ISBN-code is een unieke, 13-cijferige lange (vóór 10 was het 2007-cijferige), commerciële boekidentificatie en wordt als zodanig toegewezen aan elke afzonderlijke editie en variatie van een publicatie. Door de ISBN-code te extraheren, kunnen we ondubbelzinnig naar elk boek verwijzen wanneer we meta-informatie willen opvragen. Om dat te bereiken, kunnen we vertrouwen op de knooppunten die zijn opgenomen in KNIME — Tekstverwerking extensie, waarvan sommige worden gebruikt in de metanode "ISBN-extractie" (Figuur 5).
In de metanode "Tekst opschonen" beginnen we met het transformeren van de OCR-tekst van het gegevenstype String naar Document. Vervolgens zetten we de tekst om in kleine letters, verwijderen interpunctie, spaties, koppeltekens en vervangen de letters "o" door "0" (nullen) om verkeerd herkende tekens in de ISBN-codes te corrigeren.
We extraheren de ISBN-codes door de 13 tekens die volgen op de tekenreeks "isbn" te isoleren en gebruiken de Regel Engine node om te controleren of de geëxtraheerde tekens geen ontbrekende waarden bevatten en een verwachte lengte van 13 tekens hebben. Vervolgens maken we gebruik van de mogelijkheid van dit knooppunt om een kolom toe te voegen die succesvolle extractie labelt als 1 en mislukte extractie als 0.
Figuur 5: In de metanode "ISBN-extractie".
4 — Ophalen en visualiseren van meta-informatie
In de laatste stap gebruiken we de ISBN-codes om meta-informatie en omslagen van boeken op te halen uit de Google Books API. De metanode "Get boekmetadata en covers" zorgt daarvoor (Figuur 6). Het ophalen van metadata is echter alleen mogelijk als de ISBN-codes met succes zijn geëxtraheerd. Om een vlotte afhandeling van geslaagde/mislukte ISBN-extractie te garanderen, voegen we verschillende werkstroombesturingsknooppunten toe. Een overzichtelijk overzicht vindt u in de Cheatsheet: controle en orkestratie met KNIME Analytics Platform.
Als de ISBN-code met succes is geëxtraheerd, gebruiken we de KRIJG verzoek node om een GET Request naar te sturen API voor Google Boeken, een gratis RESTful-webservice mogelijk gemaakt door Google waarmee verschillende meta-informatie kan worden opgehaald, zoals boektitel, ondertitel, auteurs, publicatiedatum, beschrijving, aantal pagina's, taal, gemiddelde beoordeling, aantal beoordelingen en omslag. Bovendien vereist deze RESTful-webservice geen ontwikkelaarsaccount. De configuratie van het GET Request-knooppunt is heel eenvoudig. Het vereist de eenvoudige selectie van een betekenisvolle "URL-kolom" die we construeren in de Stringmanipulatie knooppunt door lid te worden van de API-URL voor Google Boeken met de ISBN-code van elk editiebericht. Alle andere configuraties kunnen standaard worden gelaten.
Vervolgens ontleden we de JSON-uitvoer van het GET Request-knooppunt met behulp van de JSON-pad knoop en voeg geëxtraheerde meta-informatie samen met boekomslagen voordat u de definitieve resultaten verzamelt.
Ten slotte maken we de component "Metadata en omslagen van boek visualiseren" voor een nette visualisatie van de opgehaalde meta-informatie en omslagen van het boek.
In de component wikkelen we de Interactieve Range Slider Filter Widget knooppunt om dynamische boekfiltering in te schakelen op basis van het gemiddelde aantal beoordelingen (0-verschrikkelijk; 5-fantastisch) toegewezen door lezers op Google Boeken, en de Tegelweergave knoop om de resultaten weer te geven.
De component krijgt dan een weergave inclusief de schuifregelaar om de boeken te selecteren op basis van de gemiddelde beoordeling en een tabel met de omslagen en beschrijving van geselecteerde boeken. Voor dit artikel hebben we ervoor gekozen om boeken te extraheren met beoordelingen tussen 3 en 5, en de resultaten worden weergegeven in Afbeelding 6.
Figuur 6: Opgehaalde meta-informatie en boekomslagen voor de boeken met beoordelingen hoger dan 3.
Samengevat
In dit artikel hebben we geïllustreerd hoe OCR eenvoudig kan worden uitgevoerd in KNIME Analytics Platform. Hiertoe hebben we de Tess4J-node gepresenteerd en details gegeven over de werking van de Tesseract OCR-bibliotheek waarop deze node is gebaseerd.
Verder hebben we een eenvoudige use-case laten zien waarbij OCR een krachtig en nuttig hulpmiddel kan zijn. We hebben informatie gehaald uit publicaties van boeken, met name de ISBN-codes, om een GET-verzoek naar de RESTful-webservice van Google Books te sturen. Hierdoor konden we metadata en omslagen van boeken ophalen.
Met KNIME wordt het OCR-en van afbeeldingen om kritieke stukjes informatie te extraheren net zo eenvoudig als ABC. Probeer het zelf! Wat is uw OCR-use-case?
De workflow die in dit artikel wordt gepresenteerd, kan gratis worden gedownload van de KNIME-hub.
Referenties
[1] Smith, R. (2007). "Een overzicht van de Tesseract OCR-engine". Negende internationale conferentie over documentanalyse en -herkenning (ICDAR 2007), blz. 629-633. Bereikbaar op:
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/33418.pdf
[Opgehaald: 15.07.2021].
[2] Tesseract OCR-project op GitHub — https://github.com/tesseract-ocr/tesseract
[3] Tesseract OCR-documentatie op GitHub — https://tesseract-ocr.github.io/tessdoc/
Roberto Cadili is datawetenschapper bij KNIME, NLP-liefhebber en geschiedenisliefhebber. Redacteur voor Low Code for Advanced Data Science.
Lada Rudnitckaia is datawetenschapper bij KNIME.
Zoals voor het eerst gepubliceerd in Lage code voor geavanceerde datawetenschap.
ORIGINELE. Met toestemming opnieuw gepost.
Zie ook:
Bron: https://www.kdnuggets.com/2021/11/book-metadata-cover-retrieval-ocr-google-books-api.html
- "
- &
- 2021
- Account
- Accounting
- AI
- Alles
- analyse
- analytics
- api
- dit artikel
- artikelen
- auteurs
- auto
- BEST
- Boeken
- Box camera's
- bouw
- bedrijfsdeskundigen
- ondernemingen
- verzorging
- Carrière
- gevallen
- tekenherkenning
- Chinese
- classificatie
- Schoonmaak
- klanten
- code
- Het verzamelen van
- Kolom
- commercieel
- Bedrijven
- bestanddeel
- computers
- Conferentie
- vertrouwen
- Configuratie
- content
- auteursrecht
- Actueel
- dashboards
- gegevens
- data science
- data scientist
- detail
- Opsporing
- Ontwikkelaar
- ontwikkelaars
- Ontwikkeling
- digitaal
- documenten
- Val
- Vroeg
- editor
- ingenieur
- Engels
- etc
- uitvoering
- Uitvouwen
- Exploiteren
- extractie
- Figuur
- Tot slot
- financieel
- Voornaam*
- volgen
- formulier
- formaat
- Gratis
- Frans
- GitHub
- goed
- Kopen Google Reviews
- Groep
- Behandeling
- handig
- hier
- Hoge
- Verhuring
- geschiedenis
- Hosting
- Hoe
- How To
- HTTPS
- idee
- identificeren
- beeld
- Inclusief
- Inkomen
- Laat uw omzet
- -industrie
- informatie
- interactieve
- Internationale
- IT
- mee
- kennis
- Korean
- labels
- taal
- Talen
- Groot
- LEARN
- leren
- Juridisch
- Hefboomwerking
- Bibliotheek
- licht
- Lijst
- plaats
- lang
- machine learning
- machine vertaling
- Manipulatie
- Medium
- namelijk
- Netjes
- Neural
- nlp
- knooppunten
- nummers
- OCR
- Aanbod
- open
- open source
- optische tekenherkenning
- Keuze
- Opties
- Overige
- Mensen
- Fysiek
- beeld
- pixel
- platform
- produktiviteit
- project
- Python
- kwaliteit
- reeks
- waarderingen
- Rauw
- ruwe data
- Lezer
- lezers
- lezing
- verslag
- hulpbron
- Resultaten
- Wetenschap
- Ontdek
- gekozen
- zin
- reeks
- het instellen van
- Eenvoudig
- So
- Software
- OPLOSSEN
- Spaans
- Gesponsorde
- begin
- Blog
- geslaagd
- ondersteuning
- ondersteunde
- steunen
- system
- technieken
- Technologie
- tesseract
- niet de tijd of
- top
- Trainingen
- Transformatie
- transformeren
- Vertaling
- unicode
- us
- gebruikers
- Bekijk
- visualisatie
- web
- Wat is
- woorden
- Mijn werk
- workflow
- Bedrijven
- waard
- het schrijven van
- X
- jaar