Bokmetadata og omslagshenting ved hjelp av OCR og Google Books API
Med KNIME blir det like enkelt som ABC å trekke ut viktige deler av informasjon fra bilder.
By Roberto Cadili, dataforsker, KNIME & Lada Rudnitckaia, dataforsker, KNIME
Figur 1: Eksempler på bokutgavenotiser hvor informasjon kan trekkes ut takket være OCR.
Mesteparten av tiden er ikke rådataene vi trenger for datavitenskapsprosjektet vårt organisert i en ryddig, godt strukturert og innsiktsfull tabell. Snarere lagres dette noen ganger som tekst i et skannet dokument. Ord i dokumentet må deretter trekkes ut ett etter ett for å danne en tekstformatert datacelle. Dette er oppgaven som utføres av Optical Character Recognition (OCR).
Når du leser ordene i denne artikkelen, enten det er tekst eller tall, er øynene dine i stand til å behandle dem ved å gjenkjenne lyse og mørke mønstre som utgjør tegn (f.eks. bokstaver, tall, skilletegn, etc.). Hjernen din dekoder deretter de forskjellige kombinasjonene av tegn og mønstre for å forstå betydningen av ordene. Sånn sett er øynene og hjernen din den mest sofistikerte og raffinerte OCR-motoren du kan tenke deg, og de fungerer uten at du en gang legger merke til det.
Datamaskiner har lignende evner, men de må takle en avgjørende begrensning: fraværet av øyne. Hvis vi vil at datamaskiner skal se og lese et fysisk tekstdokument, må vi legge inn en grafikkfil som er generert enten med en optisk skanner eller et digitalkamera. Når det gjelder datamaskiner, er det ingen forskjell mellom et dokument anskaffet med noen av disse alternativene og et fotografi av Eiffeltårnet: begge betraktes som meningsløse samlinger av fargede firkanter - også kjent som piksler - som utgjør et hvilket som helst datagrafisk bilde. Som sådan er sistnevnte bare et bilde av teksten som vi har tenkt å lese i stedet for selve teksten.
Det er her OCR kan komme godt med. Denne kraftige teknologien er i stand til å trekke ut trykte, maskinskrevne eller håndskrevne data, det være seg fakturaer, visittkort, juridiske tekster eller utskrifter, og konvertere dem til et søkbart og redigerbart digitalt format. Selv om OCR i mange år har blitt sett på som en kostbar tjeneste, som bare svært få store selskaper hadde råd til, fra midten av 2000-tallet og utover, har kostnadene gradvis sunket mens nøyaktigheten og egenskapene har utviklet seg til å støtte flere hundre språk og tegnkoding i dag. , fra UTF-8 til GB2312.
Fordelen med å kunne søke og trekke ut tekst fra bilder kan være uvurderlig. For eksempel, i advokat- eller regnskapsbransjen, kan det representere en betydelig kostnads- og tidsbesparelse, da det muliggjør gjenfinning av deler av tekst eller tall i artikler eller regnskap i løpet av sekunder. Å sammenligne denne prosessen med kostnadene ved å ansette en gruppe mennesker til å lese gjennom tusenvis av dokumenter bare for å finne én enkelt, kritisk informasjon gir en idé om hvordan OCR kan være til nytte for bedrifter.
Nylig gjennomgår OCR-teknologien en stille revolusjon ettersom leverandører av denne tjenesten kombinerer den med AI. Som et resultat av det blir ikke bare data fanget, gjort søkbare og redigerbare, men AI-systemet forstår faktisk innholdet for å utføre spesifikke oppgaver. For eksempel, etter OCRing av en tekst, kan AI gi sin oversettelse ved hjelp av nevral maskinoversettelse med minimal menneskelig intervensjon. Et annet klassisk eksempel kommer fra revisjonsseksjonen, der falske fakturaer kan gjenkjennes etter OCRing av innholdet i pdf-dokumentet, ved hjelp av avviksdeteksjonsteknikker. Og så videre. Denne synergien kombinerer det beste fra to verdener for å strømlinjeforme prosesser og øke produktiviteten for bedrifter og kunder.
I brukstilfellet som er beskrevet i denne artikkelen, brukes OCR til å identifisere en bok og deretter hente bokens metadata fra Google Books-depotet.
Mer spesifikt skal vi ta en titt på:
- Hvordan OCR kan utføres i KNIME Analytics-plattform.
- Hvordan vi kan integrere KNIMEs OCR-prosessor og Google Books API for bruk av bokmetadata og omslag.
OCR i KNIME Analytics-plattform
Å OCRe et bilde som inneholder tekst i KNIME er en veldig enkel oppgave. Alt som trengs er å installere KNIME bildebehandling — Tess4J-integrasjon utvidelse i ditt lokale KNIME Analytics-plattform, og for å dra og slippe Tess4J node til arbeidsflytredigeringsprogrammet.
Tess4J-noden integrerer Tesseract OCR-bibliotek, en av de mest brukte og nøyaktige OCR-prosessorene med åpen kildekode som er tilgjengelig. Tesseract ble opprinnelig utviklet som en proprietær programvare av Hewlett-Packard Laboratories på begynnelsen av 1990-tallet og ble senere gjort åpen kildekode i 2005. Google har siden da tatt i bruk prosjektet og sponset utviklingen.
Tess4J-noden kjører på Tesseract 3, som fungerer ved å gjenkjenne tegnmønstre i en to-pass prosedyre.
- I den første passeringen prøver motoren å gjenkjenne hver enkelt karakter. Den overfører deretter karakterene som ble gjenkjent med høy selvtillit i det første passet til en adaptiv klassifisering som treningsdata. På denne måten har den adaptive klassifisereren sjansen til å lære å gjenkjenne etterfølgende tekst mer nøyaktig.
- Det kan imidlertid hende at den adaptive klassifikatoren lærer nyttig informasjon for sent til å gi et meningsfullt bidrag. For å løse dette problemet og utnytte kunnskapen som er tilegnet av den adaptive klassifisereren, kjører motoren en andre pass der tegn som ikke ble gjenkjent godt nok gjenkjennes igjen [1].
Tesseract 3 håndterer alle Unicode-tegn (kodet med UTF-8) og kan behandle tekst på forskjellige språk og skriveoppsett: venstre til høyre (f.eks. engelsk, italiensk, russisk, etc.), høyre til venstre (f.eks. arabisk, hebraisk, urdu osv.) og topp-til-bunn (f.eks. japansk, koreansk, kinesisk, etc.) [2].
Ansvarsfraskrivelse. Mac-brukere kan for øyeblikket ikke bruke Tess4J-noden. KNIME-utviklere jobber med å gjenopprette jevn funksjon.
Use Case: Henter bokmetadata og omslag
Nå som vi har fått en grunnleggende forståelse av hvordan OCR fungerer i KNIME Analytics-plattformen, la oss ta en titt på en interessant brukssak. Anta at vi har samlet inn bilder som illustrerer utgavenotisene til flere bøker og med denne informasjonen ønsker vi å hente bokmetadata og omslag. De hentede dataene kan deretter brukes til for eksempel å bygge et tilpasset digitalt bibliotek og trene opp et bokanbefalingssystem.
Arbeidsflyten i figur 2 dekker alle trinn: fra bildelesing, OCRing, tekstbehandling og ISBN-referanseutvinning, til bokmetadata og omslagshenting og visualisering. La oss se nærmere på de forskjellige trinnene.
Figur 2: Dette arbeidsflyt utfører en enkel OCR-oppgave på bokutgavemeldinger og henter bokmetadata og omslag ved hjelp av Google Books API.
1 — Les bildedata
Det første trinnet er å importere merknadsbildene til bokutgaven til KNIME. Utgavevarselet er siden i en bok som inneholder informasjon om gjeldende utgave, for eksempel en merknad om opphavsrett, juridiske merknader, publiseringsinformasjon, utskriftshistorikk og en ISBN-kode (Figur 1).
Metanoden "Les bildedata" tar seg av det på en enkel og programmatisk måte (Figur 3). Vi identifiserer stedet der bildefiler er lagret med Liste over filer/mapper node og bruk Bildeleser (tabell) node for grasiøst å importere bildene. I Image Reader (Tabell)-noden trenger vi bare å spesifisere "File Input Column", det vil si kolonnen med banene til filene der bildene våre er lagret. Alle andre konfigurasjoner kan stå som standard.
Bildeleseren (tabell) er en del av KNINE bildebehandling utvidelsen og, som andre noder i denne utvidelsen, tilbyr den en interaktiv visning som inneholder bildet og dets metadata ved ganske enkelt å høyreklikke på noden, velge "View: Image Viewer", og dobbeltklikke på et hvilket som helst bilde i tabellvisningen.
Figur 3: Inne i metanoden "Les bildedata". Bildeleser-noden (tabell) importerer bilder til arbeidsflyten og lar oss interaktivt utforske dem i visningen.
2 — OCR
Etter å ha lest i bildefilene til bokutgaven, kan vi OCR dem.
Konfigurasjonen av Tess4J-noden er veldig enkel og krever bare noen få klikk (Figur 4). I innstillinger fanen, gir noden muligheten til å korrigere enhver rotasjon eller skjevt bilde ved å merke av i boksen "Deskew input images" i "Forbehandling"-delen av konfigurasjonsdialogen. Det anbefales vanligvis å gjøre det, siden grafikkfiler kanskje ikke er riktig justert. Dessuten produserer Tess4J-noden automatisk et binarisert bilde bak panseret.
Deretter velger vi "Tessdata Path". Som standard er dette satt til "Bruk internt", som deretter lar oss velge språket for teksten vi vil behandle. I denne konfigurasjonen er engelsk standardspråket, men Tess4J-noden støtter andre naturlige språk som dansk, italiensk, spansk, russisk, gresk, slovakisk, tysk og fransk. Det er verdt å nevne at ved å velge "Bruk eksternt", kan vi utvide egenskapene til Tess4J-noden til å inkludere språk som ikke støttes internt. Faktisk kan vi velge våre egne, eksterne trente dataspråkmodeller ved å spesifisere katalogen der de er lagret. Vi velger "Bruk internt" siden vi foretrekker å stole på de interne modellene til Tess4J for våre engelske dokumenter.
I delen "Gjenkjenningskonfigurasjon" finner vi de to viktigste konfigurasjonene i rullegardinlisten, nemlig "Sidesegmenteringsmodus" og "OCR-motormodus". Den første definerer hvordan siden vår er segmentert.
I figur 4 velger vi "Full Auto Pageseg", som sikrer helautomatisk sidesegmentering. Avhengig av den aktuelle brukssaken, kan det være et mer passende alternativ å velge en annen modus av de 13 tilgjengelige (f.eks. «Enkeltkolonne» eller «Spars Text»).
Den andre innstillingen ber oss velge OCR-motoren. Her velger vi "Kun Tesseract", som sikrer den raskeste utførelse. Andre alternativer inkluderer "Cube Only" - en alternativ gjenkjenningsmodus for Tesseract - som er tregere, men ofte gir bedre resultater; eller «Tesseract And Cube», som kombinerer det beste fra to verdener. Å velge en eller annen motor avhenger sterkt av kvaliteten på bildet og kompleksiteten til teksten vi ønsker å behandle.
I tillegg til de grunnleggende innstillingene tilbyr Tess4J-noden en Avansert konfig fanen hvor vi kan definere et sett med kontrollparametere. Denne kategorien gjør noden ekstremt fleksibel og hjelper ekspertbrukere med å tilpasse og finjustere Tesseract OCR-motoren til deres spesifikke behov. Ikke bekymre deg, men i de fleste tilfeller vil de grunnleggende konfigurasjonene ta deg langt!
Figur 4: Konfigurasjonsdialog for Tess4J-noden.
I tillegg til å tilpasse konfigurasjonene til Tess4J-noden til den aktuelle brukssaken, er det en god praksis å forhåndsbehandle inndatabilder grundig om nødvendig. Spesielt fungerer Tesseract best når bildene er tilstrekkelig oppskalert slik at pikselantallet til x-høyden til tegnene er minst 20 piksler; bildene er riktig justert og har en tilstrekkelig høy oppløsning; og eventuelle mørke kanter fjernes, eller de kan feiltolkes som tegn [3]. De KNINE bildebehandling utvidelsen inkluderer flere noder for bilderensing, manipulering og transformasjon, og mange eksempel arbeidsflyter kan bli funnet på KNIME Hub.
Utdata fra Tess4J-noden er en tabell som inneholder den utpakkede teksten som strengdatatype, og som sådan kan den søkes og redigeres.
3 — Tekstbehandling for ISBN-utvinning
Når bildene er OCR-behandlet, kan teksten de inneholder endelig få tilgang til og nyttig informasjon hentes.
Spesielt rapporterer utgavemeldinger vanligvis ISBN-koden som er tildelt boken. ISBN-koden er en unik, 13-sifret lang (den pleide å være 10-sifret lenge før 2007), kommersiell bokidentifikator og som sådan tilordnes den hver separat utgave og variant av en publikasjon. Ved å trekke ut ISBN-koden kan vi referere til hver bok entydig når vi ønsker å hente metainformasjon. For å oppnå det kan vi stole på nodene som er inkludert i KNIME — Tekstbehandling utvidelse, hvorav noen brukes i "ISBN-ekstraksjon"-metanoden (figur 5).
I metanoden "Tekstrensing" starter vi med å transformere OCR-teksten fra streng til dokumentdatatype. Deretter konverterer vi teksten til små bokstaver, fjerner tegnsetting, mellomrom, bindestreker og erstatter bokstavene "o" med "0" (nuller) for å korrigere for feilgjenkjente tegn i ISBN-kodene.
Vi trekker ut ISBN-kodene ved å isolere de 13 tegnene som følger strengen "isbn", og bruker Regelmotor node for å sjekke om de utpakkede tegnene ikke inneholder manglende verdier og har en forventet lengde på 13 tegn. Vi utnytter deretter denne nodens evne til å legge til en kolonne som merker vellykket utvinning som 1 og mislykket utvinning som 0.
Figur 5: Inne i "ISBN-ekstraksjon"-metanoden.
4 — Henting og visualisering av metainformasjon
I det siste trinnet bruker vi ISBN-kodene for å hente bokmetainformasjon og omslag fra Google Books API. "Få bokmetadata og omslag"-metanoden tar seg av det (Figur 6). Men metadatainnhenting er bare mulig hvis ISBN-kodene ble trukket ut. For å sikre en jevn håndtering av vellykket/mislykket ISBN-utvinning inkluderer vi flere arbeidsflytkontrollnoder. Du finner en innsiktsfull oversikt i Jukseark: Kontroll og orkestrering med KNIME Analytics-plattform.
Hvis ISBN-koden pakkes ut, bruker vi FÅ forespørsel node å sende en GET-forespørsel til Google Books API, en gratis RESTful-netttjeneste drevet av Google som tillater gjenfinning av flere metainformasjon som boktittel, undertittel, forfattere, utgivelsesdato, beskrivelse, sideantall, språk, gjennomsnittlig vurdering, rangeringstall og omslag. Videre krever ikke denne RESTful-netttjenesten opprettelse av en utviklerkonto. Konfigurasjonen av GET Request-noden er veldig enkel. Det krever det enkle valget av en meningsfull "URL-kolonne" som vi konstruerer i Strengmanipulasjon node ved å bli med i Google Books API URL med ISBN-koden for hver utgavemelding. Alle andre konfigurasjoner kan stå som standard.
Vi analyserer deretter JSON-utgangen til GET Request-noden ved å bruke JSON-bane node og slå sammen ekstrahert metainformasjon med bokomslag før du samler inn de endelige resultatene.
Til slutt lager vi "Visualiser bokmetadata og omslag"-komponenten for en ryddig visualisering av hentet bokmetainformasjon og omslag.
I komponenten pakker vi inn Interaktiv Range Slider Filter Widget node for å aktivere dynamisk bokfiltrering basert på gjennomsnittlig rangeringstall (0-forferdelig; 5-fantastisk) tildelt av lesere på Google Books, og Flisutsikt node for å vise resultatene.
Komponenten får deretter en visning inkludert glidebryteren for å velge bøkene basert på gjennomsnittlig vurdering og en tabell med omslag og beskrivelse av utvalgte bøker. For denne artikkelen har vi valgt å trekke ut bøker med rangeringer mellom 3 og 5, og resultatene vises i figur 6.
Figur 6: Hentet metainformasjon og bokomslag for bøkene med rangeringer høyere enn 3.
Oppsummering
I denne artikkelen har vi illustrert hvordan OCR enkelt kan utføres i KNIME Analytics Platform. For dette formål har vi presentert Tess4J-noden og gitt detaljer om funksjonen til Tesseract OCR-biblioteket som denne noden er basert på.
Videre har vi vist en enkel brukssak hvor OCR kan være en kraftig og nyttig ressurs. Vi har hentet ut informasjon fra merknader om bokutgaver – spesielt ISBN-kodene – for å sende en GET-forespørsel til Google Books RESTful-netttjeneste. Dette har gjort det mulig for oss å hente bokmetadata og omslag.
Med KNIME blir OCRing av bilder for å trekke ut viktige deler av informasjon like enkelt som ABC. Prøv det selv! Hva er din OCR-brukersak?
Arbeidsflyten presentert i denne artikkelen kan lastes ned gratis fra KNIME Hub.
Referanser
[1] Smith, R. (2007). "En oversikt over Tesseract OCR-motoren". Niende internasjonale konferanse om dokumentanalyse og anerkjennelse (ICDAR 2007), s. 629-633. Tilgjengelig på:
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/33418.pdf
[Hentet: 15.07.2021].
[2] Tesseract OCR-prosjekt på GitHub — https://github.com/tesseract-ocr/tesseract
[3] Tesseract OCR-dokumentasjon på GitHub — https://tesseract-ocr.github.io/tessdoc/
Roberto Cadili er dataforsker ved KNIME, NLP-entusiast og historieelsker. Redaktør for lav kode for avansert datavitenskap.
Lada Rudnitckaia er datavitenskapsmann ved KNIME.
Som først publisert i Lav kode for avansert datavitenskap.
original. Ompostet med tillatelse.
Relatert:
Kilde: https://www.kdnuggets.com/2021/11/book-metadata-cover-retrieval-ocr-google-books-api.html
- "
- &
- 2021
- Logg inn
- Regnskap og administrasjon
- AI
- Alle
- analyse
- analytics
- api
- Artikkel
- artikler
- forfattere
- auto
- BEST
- bøker
- Eske
- bygge
- virksomhet
- bedrifter
- hvilken
- Karriere
- saker
- karaktergjenkjenning
- Kinesisk
- klassifisering
- Rengjøring
- klienter
- kode
- Samle
- Kolonne
- kommersiell
- Selskaper
- komponent
- datamaskiner
- Konferanse
- selvtillit
- Konfigurasjon
- innhold
- copyright
- Gjeldende
- dashbord
- dato
- datavitenskap
- dataforsker
- detalj
- Gjenkjenning
- Utvikler
- utviklere
- Utvikling
- digitalt
- dokumenter
- Drop
- Tidlig
- redaktør
- ingeniør
- Engelsk
- etc
- gjennomføring
- Expand
- Exploit
- utdrag
- Figur
- Endelig
- finansiell
- Først
- følge
- skjema
- format
- Gratis
- Fransk
- GitHub
- god
- Gruppe
- Håndtering
- praktisk
- her.
- Høy
- Ansetter
- historie
- Hosting
- Hvordan
- Hvordan
- HTTPS
- Tanken
- identifisere
- bilde
- Inkludert
- Inntekt
- Øke
- industri
- informasjon
- interaktiv
- internasjonalt
- IT
- bli medlem
- kunnskap
- Koreansk
- etiketter
- Språk
- språk
- stor
- LÆRE
- læring
- Lovlig
- Leverage
- Bibliotek
- lett
- Liste
- plassering
- Lang
- maskinlæring
- maskinoversettelse
- Manipulasjon
- medium
- nemlig
- Ryddig
- neural
- nlp
- noder
- tall
- OCR
- Tilbud
- åpen
- åpen kildekode
- Optisk karaktergjenkjennelse
- Alternativ
- alternativer
- Annen
- Ansatte
- fysisk
- bilde
- pixel
- plattform
- produktivitet
- prosjekt
- Python
- kvalitet
- område
- rangeringer
- Raw
- rådata
- Reader
- lesere
- Lesning
- rapporterer
- ressurs
- Resultater
- Vitenskap
- Søk
- valgt
- forstand
- sett
- innstilling
- Enkelt
- So
- Software
- LØSE
- Spansk
- Sponset
- Begynn
- Stories
- vellykket
- støtte
- Støttes
- Støtter
- system
- teknikker
- Teknologi
- Tesseract
- tid
- topp
- Kurs
- Transformation
- transformere
- Oversettelse
- unicode
- us
- Brukere
- Se
- visualisering
- web
- Hva er
- ord
- Arbeid
- arbeidsflyt
- virker
- verdt
- skriving
- X
- år