Bogmetadata og omslagshentning ved hjælp af OCR og Google Books API
Med KNIME bliver det lige så nemt som ABC at udtrække kritiske informationer fra billeder.
By Roberto Cadili, Data Scientist, KNIME & Lada Rudnitckaia, Data Scientist, KNIME
Figur 1: Eksempler på opslag om bogudgaver, hvor information kan udtrækkes takket være OCR.
Det meste af tiden er de rådata, som vi har brug for til vores datavidenskabsprojekt, ikke organiseret i en pæn, velstruktureret og indsigtsfuld tabel. Snarere gemmes dette nogle gange som tekst i et scannet dokument. Ord i dokumentet skal derefter udtrækkes et efter et for at danne en tekstformateret datacelle. Dette er opgaven udført af Optical Character Recognition (OCR).
Når du læser ordene i denne artikel, hvad enten det er tekst eller tal, er dine øjne i stand til at behandle dem ved at genkende lyse og mørke mønstre, der udgør tegn (f.eks. bogstaver, tal, tegnsætningstegn osv.). Din hjerne afkoder derefter de forskellige kombinationer af tegn og mønstre for at forstå betydningen af ordene. I den forstand er dine øjne og hjerne den mest sofistikerede og raffinerede OCR-motor, du overhovedet kan forestille dig, og de fungerer, uden at du selv bemærker det.
Computere har lignende egenskaber, men de skal tackle en afgørende begrænsning: fraværet af øjne. Hvis vi vil have computere til at se og læse et fysisk tekstdokument, skal vi indtaste en grafisk fil, der er genereret enten med en optisk scanner eller et digitalkamera. For så vidt angår computere, er der ingen forskel mellem et dokument erhvervet med en af disse muligheder og et fotografi af Eiffeltårnet: begge betragtes som meningsløse samlinger af farvede firkanter - også kendt som pixels - der udgør et hvilket som helst computergrafikbillede. Som sådan er sidstnævnte blot et billede af teksten, som vi agter at læse frem for selve teksten.
Det er her OCR kan komme til nytte. Denne kraftfulde teknologi er i stand til at udtrække trykte, maskinskrevne eller håndskrevne data, det være sig fakturaer, visitkort, juridiske tekster eller udskrifter, og konvertere dem til et søgbart og redigerbart digitalt format. Selvom OCR i mange år er blevet betragtet som en dyr tjeneste, som kun meget få store virksomheder havde råd til, er omkostningerne fra midten af 2000'erne og fremefter gradvist sunket, mens dens nøjagtighed og muligheder har udviklet sig til i dag at understøtte flere hundrede sprog og tegnkodning , fra UTF-8 til GB2312.
Fordelen ved at kunne søge og udtrække tekst fra billeder kan være uvurderlig. For eksempel i den juridiske eller regnskabsmæssige branche kan det repræsentere en betydelig omkostnings- og tidsbesparelse, da det muliggør genfinding af dele af tekst eller tal i artikler eller regnskaber i løbet af få sekunder. Sammenligning af denne proces med omkostningerne ved at ansætte en gruppe mennesker til at læse tusindvis af dokumenter igennem for blot at finde et enkelt, kritisk stykke information giver en idé om, hvordan OCR kan gavne virksomheder.
For nylig gennemgår OCR-teknologien en stille revolution, da udbydere af denne service kombinerer den med kunstig intelligens. Som et resultat af det bliver data ikke kun fanget, gjort søgbare og redigerbare, men AI-systemet forstår faktisk indholdet for at udføre specifikke opgaver. For eksempel, efter OCRing af en tekst, kan AI levere sin oversættelse ved hjælp af neural maskinoversættelse med minimal menneskelig indgriben. Et andet klassisk eksempel kommer fra revisionssektionen, hvor svigagtige fakturaer kan genkendes efter OCRing af indholdet af pdf-dokumentet ved hjælp af outlier-detektionsteknikker. Og så videre. Denne synergi kombinerer det bedste fra begge verdener for at strømline processer og øge produktiviteten for virksomheder og kunder.
I det tilfælde, der er beskrevet i denne artikel, bruges OCR til at identificere en bog og derefter til at hente bogens metadata fra Google Books-lageret.
Mere specifikt skal vi se på:
- Hvordan OCR kan udføres i KNIME Analytics-platform.
- Hvordan vi kan integrere KNIME's OCR-processor og Google Books API til brug for at hente bogmetadata og omslag.
OCR i KNIME Analytics Platform
OCRing af et billede med tekst i KNIME er en meget nem opgave. Alt det kræver er at installere KNIME billedbehandling — Tess4J Integration udvidelse i dit lokale KNIME Analytics-platform, og for at trække og slippe Tess4J node til din workflow-editor.
Tess4J-noden integrerer Tesseract OCR bibliotek, en af de mest udbredte og nøjagtige open source OCR-processorer, der findes. Tesseract blev oprindeligt udviklet som en proprietær software af Hewlett-Packard Laboratories i begyndelsen af 1990'erne og blev senere gjort til open source i 2005. Google har siden da adopteret projektet og sponsoreret dets udvikling.
Tess4J-knuden kører på Tesseract 3, som fungerer ved at genkende tegnmønstre i en to-pass procedure.
- I det første pas forsøger motoren at genkende hver enkelt karakter. Den videregiver derefter de karakterer, der blev genkendt med høj tillid i det første gennemløb, til en adaptiv klassificering som træningsdata. På denne måde har den adaptive klassifikator chancen for at lære at genkende efterfølgende tekst mere præcist.
- Det kan dog ske, at den adaptive klassifikator lærer nyttig information for sent til at give et meningsfuldt bidrag. For at løse dette problem og udnytte den viden, der er erhvervet af den adaptive klassifikator, kører motoren en anden gennemgang, hvor karakterer, der ikke blev genkendt godt nok, genkendes igen [1].
Tesseract 3 håndterer alle Unicode-tegn (kodet med UTF-8) og kan behandle tekst på forskellige sprog og skrivelayout: venstre mod højre (f.eks. engelsk, italiensk, russisk osv.), højre mod venstre (f.eks. arabisk, hebraisk, urdu osv.) og top-til-bund (f.eks. japansk, koreansk, kinesisk osv.) [2].
Ansvarsfraskrivelse. Mac-brugere kan i øjeblikket ikke bruge Tess4J-knuden. KNIME-udviklere arbejder på at genoprette problemfri funktion.
Use Case: Hentning af bogmetadata og omslag
Nu hvor vi har fået en grundlæggende forståelse af, hvordan OCR fungerer i KNIME Analytics Platform, så lad os se på en interessant use case. Antag, at vi har samlet billeder, der illustrerer udgivelsesbekendtgørelser af flere bøger, og med disse oplysninger ønsker vi at hente bogmetadata og omslag. De hentede data kunne så bruges til for eksempel at bygge et skræddersyet digitalt bibliotek og træne et boganbefalingssystem.
Arbejdsgangen i figur 2 dækker alle trin: fra billedlæsning, OCRing, tekstbehandling og ISBN-referenceudtræk, til bogmetadata og omslagssøgning og visualisering. Lad os se nærmere på de forskellige trin.
Figur 2: Dette workflow udfører en simpel OCR-opgave på bogudgavemeddelelser og henter bogmetadata og omslag ved hjælp af Google Books API.
1 — Læs billeddata
Det første trin er at importere bogudgavens opslagsbilleder til KNIME. Udgavemeddelelsen er siden i en bog, der indeholder oplysninger om den aktuelle udgave, såsom en ophavsretsmeddelelse, juridiske meddelelser, publikationsoplysninger, trykhistorik og en ISBN-kode (figur 1).
Metanoden "Læs billeddata" sørger for det på en nem og programmatisk måde (Figur 3). Vi identificerer det sted, hvor billedfiler er gemt med Liste filer/mapper node og brug Billedlæser (tabel) node for elegant at importere billederne. I billedlæser-knuden (tabel) skal vi kun angive "File Input Column", det vil sige kolonnen med stierne til de filer, hvor vores billeder er gemt. Alle andre konfigurationer kan stå som standard.
Billedlæseren (tabel) er en del af KNINE billedbehandling udvidelsen, og som andre noder i denne udvidelse tilbyder den en interaktiv visning, der indeholder billedet og dets metadata ved blot at højreklikke på knudepunktet, vælge "View: Image Viewer" og dobbeltklikke på ethvert billede i tabelvisningen.
Figur 3: Inde i metanoden "Læs billeddata". Billedlæser-noden (tabel) importerer billeder til arbejdsgangen og giver os mulighed for interaktivt at udforske dem i dens visning.
2 — OCR
Efter at have læst billedfilerne i bogudgaven kan vi OCR dem.
Konfigurationen af Tess4J-knuden er meget enkel og kræver kun et par klik (figur 4). I Indstillinger fanen, giver noden mulighed for at rette enhver rotation eller skævt billede ved at markere boksen "Rejse inputbilleder" i afsnittet "Forbehandling" i konfigurationsdialogen. Det anbefales normalt at gøre det, da grafikfiler muligvis ikke er korrekt justeret. Desuden producerer Tess4J-knuden automatisk et binariseret billede bag emhætten.
Dernæst vælger vi "Tessdata-stien". Som standard er dette indstillet til "Brug internt", som så giver os mulighed for at vælge sproget for den tekst, vi vil behandle. I denne konfiguration er engelsk standardsproget, men Tess4J-noden understøtter andre naturlige sprog såsom dansk, italiensk, spansk, russisk, græsk, slovakisk, tysk og fransk. Det er værd at nævne, at ved at vælge "Brug eksternt", kan vi udvide mulighederne for Tess4J-noden til at omfatte sprog, der ikke er internt understøttet. Faktisk kan vi vælge vores egne, eksternt trænede datasprogmodeller ved at angive den mappe, hvor de er gemt. Vi vælger "Brug intern", da vi foretrækker at stole på de interne modeller af Tess4J til vores engelske dokumenter.
I afsnittet "Genkendelseskonfiguration" finder vi de to vigtigste rullelistekonfigurationer, nemlig "Sidesegmenteringstilstand" og "OCR-motortilstand". Den første definerer, hvordan vores side er segmenteret.
I figur 4 vælger vi “Fuld Auto Pageseg”, som sikrer fuldautomatisk sidesegmentering. Afhængigt af den konkrete brugssituation, kan det være en mere passende mulighed at vælge en anden tilstand ud af de 13 tilgængelige (f.eks. "Enkelt kolonne" eller "Sparse Text").
Den anden indstilling beder os om at vælge OCR-motoren. Her vælger vi "Kun Tesseract", som sikrer den hurtigste udførelse. Andre muligheder inkluderer "Kun kube" - en alternativ genkendelsestilstand for Tesseract - som er langsommere, men ofte giver bedre resultater; eller "Tesseract And Cube", som kombinerer det bedste fra begge verdener. At vælge en eller anden motor afhænger i høj grad af kvaliteten af billedet og kompleksiteten af den tekst, vi ønsker at behandle.
Ud over de grundlæggende indstillinger tilbyder Tess4J noden en Avanceret konfig fane, hvor vi kan definere et sæt af kontrolparametre. Denne fane gør noden ekstremt fleksibel og hjælper ekspertbrugere med at tilpasse og finjustere Tesseract OCR-motoren til deres specifikke behov. Bare rolig, i de fleste tilfælde vil de grundlæggende konfigurationer tage dig langt!
Figur 4: Konfigurationsdialog for Tess4J-knuden.
Udover at tilpasse konfigurationerne af Tess4J-noden til den aktuelle brugssag, er det en god praksis at forbehandle inputbilleder grundigt, hvis det er nødvendigt. Især Tesseract fungerer bedst, når billeder er tilstrækkeligt opskaleret, således at pixeltallet for x-højden af tegn er mindst 20 pixels; billeder er korrekt justeret og har en tilstrækkelig høj opløsning; og eventuelle mørke kanter fjernes, eller de kan blive misfortolket som tegn [3]. Det KNINE billedbehandling udvidelsen omfatter flere noder til billedrensning, manipulation og transformation, og mange eksempler på arbejdsgange kan findes på KNIME Hub.
Outputtet fra Tess4J-noden er en tabel, der indeholder den udtrukne tekst som String-datatype, og som sådan kan den søges og redigeres.
3 — Tekstbehandling til ISBN-udtrækning
Når billederne er OCR-behandlet, kan teksten, de indeholder, endelig tilgås og nyttig information hentes.
Især udgavemeddelelser rapporterer normalt den ISBN-kode, der er tildelt bogen. ISBN-koden er en unik, 13-cifret lang (den plejede at være 10-cifret længe før 2007), kommerciel bog-id, og som sådan er den tildelt hver separat udgave og variation af en publikation. Udtræk af ISBN-koden giver os mulighed for entydigt at henvise til hver bog, når vi ønsker at hente metainformation. For at opnå det kan vi stole på de noder, der er inkluderet i KNIME — Tekstbehandling udvidelse, hvoraf nogle bruges i "ISBN-ekstraktion"-metanoden (figur 5).
I metanoden "Tekstrensning" starter vi med at transformere OCR-teksten fra streng til dokumentdatatype. Dernæst konverterer vi teksten til små bogstaver, fjerner tegnsætning, mellemrum, bindestreger og erstatter bogstaverne "o" med "0" (nuller) for at korrigere for forkert genkendte tegn i ISBN-koderne.
Vi udtrækker ISBN-koderne ved at isolere de 13 tegn, der følger efter strengen "isbn", og bruger Regel motor node for at kontrollere, om de udtrukne tegn ikke indeholder manglende værdier og har en forventet længde på 13 tegn. Vi udnytter derefter denne nodes evne til at tilføje en kolonne, der mærker vellykket ekstraktion som 1 og mislykket ekstraktion som 0.
Figur 5: Inde i "ISBN-ekstraktions"-metanoden.
4 — Metainformationssøgning og visualisering
I det sidste trin bruger vi ISBN-koderne til at hente bogmetaoplysninger og omslag fra Google Books API. "Hent bogmetadata og omslag"-metanoden tager sig af det (Figur 6). Men metadata-hentning er kun mulig, hvis ISBN-koderne blev udtrukket. For at sikre en problemfri håndtering af vellykket/mislykket ISBN-udtrækning inkluderer vi flere workflow-kontrolnoder. Du kan finde en indsigtsfuld oversigt i Snydeark: Kontrol og orkestrering med KNIME Analytics Platform.
Hvis ISBN-koden udtrækkes korrekt, bruger vi FÅ anmodning node at sende en GET-anmodning til Google Books API, en gratis RESTful-webtjeneste drevet af Google, der tillader hentning af adskillige metainformationer såsom bogtitel, undertekst, forfattere, udgivelsesdato, beskrivelse, sideantal, sprog, gennemsnitlig vurdering, antal bedømmelser og omslag. Desuden kræver denne RESTful webservice ikke oprettelse af en udviklerkonto. Konfigurationen af GET Request noden er meget ligetil. Det kræver det enkle valg af en meningsfuld "URL-kolonne", som vi konstruerer i Strengemanipulation node ved at slutte sig til Google Books API URL med ISBN-koden for hver udgavemeddelelse. Alle andre konfigurationer kan stå som standard.
Vi analyserer derefter JSON-outputtet fra GET Request noden ved hjælp af JSON-sti node og forenet ekstraheret metainformation med bogomslag, før du indsamler de endelige resultater.
Til sidst opretter vi komponenten "Visualisere bogmetadata og omslag" for en pæn visualisering af den hentede bogmetainformation og omslag.
I komponenten pakker vi ind Interaktiv Range Slider Filter Widget node for at aktivere dynamisk bogfiltrering baseret på det gennemsnitlige antal vurderinger (0-frygteligt; 5-fantastisk) tildelt af læsere på Google Bøger, og Flisevisning node for at vise resultaterne.
Komponenten får derefter en visning inklusive skyderen til at vælge bøgerne baseret på den gennemsnitlige bedømmelse og en tabel med forsider og beskrivelse af udvalgte bøger. Til denne artikel har vi valgt at udtrække bøger med vurderinger mellem 3 og 5, og resultaterne er vist i figur 6.
Figur 6: Hentet metainformation og bogomslag for bøger med vurderinger højere end 3.
Resumé
I denne artikel har vi illustreret, hvordan OCR nemt kan udføres i KNIME Analytics Platform. Til dette formål har vi præsenteret Tess4J-knuden og givet detaljer om funktionen af Tesseract OCR-biblioteket, som denne node er baseret på.
Desuden har vi vist en simpel use case, hvor OCR kan være en kraftfuld og nyttig ressource. Vi har udtrukket oplysninger fra meddelelser om bogudgaver – især ISBN-koderne – for at sende en GET-anmodning til Google Books' RESTful-webtjeneste. Dette har givet os mulighed for at hente bogmetadata og omslag.
Med KNIME bliver OCRing af billeder for at udtrække kritiske informationer lige så let som ABC. Prøv det selv! Hvad er din OCR use case?
Arbejdsgangen præsenteret i denne artikel kan downloades gratis fra KNIME Hub.
Referencer
[1] Smith, R. (2007). "En oversigt over Tesseract OCR-motoren". Niende internationale konference om dokumentanalyse og anerkendelse (ICDAR 2007), s. 629-633. Tilgængelig på:
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/33418.pdf
[Hentet: 15.07.2021].
[2] Tesseract OCR-projekt på GitHub — https://github.com/tesseract-ocr/tesseract
[3] Tesseract OCR-dokumentation på GitHub — https://tesseract-ocr.github.io/tessdoc/
Roberto Cadili er dataforsker hos KNIME, NLP-entusiast og historieelsker. Redaktør for Low Code for Advanced Data Science.
Lada Rudnitckaia er dataforsker ved KNIME.
Som først offentliggjort i Lav kode til avanceret datavidenskab.
Original. Genopslået med tilladelse.
Relateret:
Kilde: https://www.kdnuggets.com/2021/11/book-metadata-cover-retrieval-ocr-google-books-api.html
- "
- &
- 2021
- Konto
- Bogføring og administration
- AI
- Alle
- analyse
- analytics
- api
- artikel
- artikler
- forfattere
- auto
- BEDSTE
- Bøger
- Boks
- bygge
- virksomhed
- virksomheder
- hvilken
- Karriere
- tilfælde
- karaktergenkendelse
- kinesisk
- klassificering
- Rengøring
- kunder
- kode
- Indsamling
- Kolonne
- kommerciel
- Virksomheder
- komponent
- computere
- Konference
- tillid
- Konfiguration
- indhold
- ophavsret
- Nuværende
- instrumentbræt
- data
- datalogi
- dataforsker
- detail
- Detektion
- Udvikler
- udviklere
- Udvikling
- digital
- dokumenter
- Drop
- Tidligt
- editor
- ingeniør
- Engelsk
- etc.
- udførelse
- Udvid
- Exploit
- udvinding
- Figur
- Endelig
- finansielle
- Fornavn
- følger
- formular
- format
- Gratis
- Fransk
- GitHub
- godt
- gruppe
- Håndtering
- praktisk
- link.
- Høj
- Ansættelse
- historie
- Hosting
- Hvordan
- How To
- HTTPS
- idé
- identificere
- billede
- Herunder
- Indkomst
- Forøg
- industrien
- oplysninger
- interaktiv
- internationalt
- IT
- deltage
- viden
- koreansk
- Etiketter
- Sprog
- Sprog
- stor
- LÆR
- læring
- Politikker
- Leverage
- Bibliotek
- lys
- Liste
- placering
- Lang
- machine learning
- maskine oversættelse
- Håndtering
- medium
- nemlig
- neat
- Neural
- NLP
- noder
- numre
- OCR
- Tilbud
- åbent
- open source
- optisk tegngenkendelse
- Option
- Indstillinger
- Andet
- Mennesker
- fysisk
- billede
- pixel
- perron
- produktivitet
- projekt
- Python
- kvalitet
- rækkevidde
- ratings
- Raw
- rådata
- Læser
- læsere
- Læsning
- indberette
- ressource
- Resultater
- Videnskab
- Søg
- valgt
- forstand
- sæt
- indstilling
- Simpelt
- So
- Software
- SOLVE
- Spansk
- Sponsoreret
- starte
- Historier
- vellykket
- support
- Understøttet
- Understøtter
- systemet
- teknikker
- Teknologier
- Tesseract
- tid
- top
- Kurser
- Transformation
- omdanne
- Oversættelse
- unicode
- us
- brugere
- Specifikation
- visualisering
- web
- Hvad er
- ord
- Arbejde
- workflow
- virker
- værd
- skrivning
- X
- år