Bokmetadata och omslagshämtning med OCR och Google Books API
Med KNIME blir det lika enkelt som ABC att extrahera viktiga delar av information från bilder.
By Roberto Cadili, datavetare, KNIME & Lada Rudnitckaia, datavetare, KNIME
Figur 1: Exempel på bokupplaganotiser där information kan extraheras tack vare OCR.
För det mesta är de rådata som vi behöver för vårt datavetenskapsprojekt inte organiserade i en snygg, välstrukturerad och insiktsfull tabell. Snarare lagras detta ibland som text i ett skannat dokument. Ord i dokumentet måste sedan extraheras ett efter ett för att bilda en textformaterad datacell. Detta är uppgiften som utförs av Optical Character Recognition (OCR).
När du läser orden i den här artikeln, oavsett om det är text eller nummer, kan dina ögon bearbeta dem genom att känna igen ljusa och mörka mönster som utgör tecken (t.ex. bokstäver, siffror, skiljetecken, etc.). Din hjärna avkodar sedan de olika kombinationerna av tecken och mönster för att förstå meningen med orden. I den meningen är dina ögon och hjärna den mest sofistikerade och raffinerade OCR-motor du kan tänka dig, och de fungerar utan att du ens märker det.
Datorer har liknande möjligheter, men de måste hantera en avgörande begränsning: frånvaron av ögon. Om vi vill att datorer ska se och läsa ett fysiskt textdokument måste vi mata in en grafisk fil som genereras antingen med en optisk skanner eller en digitalkamera. När det gäller datorer finns det ingen skillnad mellan ett dokument som förvärvats med något av dessa alternativ och ett fotografi av Eiffeltornet: båda betraktas som meningslösa samlingar av färgade kvadrater – även kallade pixlar – som utgör vilken datorgrafisk bild som helst. Som sådan är det senare bara en bild av texten som vi tänker läsa snarare än själva texten.
Det är här OCR kan komma till nytta. Denna kraftfulla teknik kan extrahera utskrivna, maskinskrivna eller handskrivna data, oavsett om det är fakturor, visitkort, juridiska texter eller utskrifter, och konvertera den till ett sökbart och redigerbart digitalt format. Även om OCR under många år har betraktats som en dyr tjänst, som endast ett fåtal stora företag hade råd med, från mitten av 2000-talet och framåt, har dess kostnad gradvis sjunkit medan dess noggrannhet och kapacitet har utvecklats för att idag stödja flera hundra språk och teckenkodning , från UTF-8 till GB2312.
Fördelen med att kunna söka och extrahera text från bilder kan vara ovärderlig. Till exempel, inom juridik- eller redovisningsbranschen, kan det representera en betydande kostnads- och tidsbesparing, eftersom det möjliggör hämtning av delar av text eller siffror i artiklar eller bokslut på några sekunder. Att jämföra denna process med kostnaden för att anställa en grupp människor för att läsa igenom tusentals dokument bara för att hitta en enda viktig information ger en uppfattning om hur OCR kan gynna företag.
På senare tid genomgår OCR-tekniken en tyst revolution då leverantörer av denna tjänst kombinerar den med AI. Som ett resultat av det är inte bara data som fångas in, görs sökbara och redigerbara, utan AI-systemet förstår faktiskt innehållet för att utföra specifika uppgifter. Till exempel, efter OCRing av en text, kan AI tillhandahålla sin översättning med hjälp av neural maskinöversättning med minimal mänsklig inblandning. Ett annat klassiskt exempel kommer från revisionssektionen, där bedrägliga fakturor kan identifieras efter OCR-kontroll av innehållet i pdf-dokumentet, med hjälp av outlier-detektionstekniker. Och så vidare. Denna synergi kombinerar det bästa av två världar för att effektivisera processer och öka produktiviteten för företag och kunder.
I det användningsfall som beskrivs i den här artikeln används OCR för att identifiera en bok och sedan för att hämta bokens metadata från Google Böckers arkiv.
Mer specifikt kommer vi att ta en titt på:
- Hur OCR kan utföras i KNIME Analytics-plattformen.
- Hur vi kan integrera KNIME:s OCR-processor och Google Books API för användningsfallet att hämta bokmetadata och omslag.
OCR i KNIME Analytics-plattform
OCR att göra en bild som innehåller text i KNIME är en mycket enkel uppgift. Allt som krävs är att installera KNIME-bildbehandling — Tess4J-integration förlängning i din lokala KNIME Analytics-plattformenoch för att dra och släppa Tess4J nod till din arbetsflödesredigerare.
Tess4J-noden integrerar Tesseract OCR-bibliotek, en av de mest använda och exakta OCR-processorer med öppen källkod som finns tillgängliga. Tesseract utvecklades ursprungligen som en proprietär programvara av Hewlett-Packard Laboratories i början av 1990-talet och gjordes senare till öppen källkod 2005. Google har sedan dess anammat projektet och sponsrat dess utveckling.
Tess4J-noden körs på Tesseract 3, som fungerar genom att känna igen teckenmönster i en tvåstegsprocedur.
- I det första passet försöker motorn känna igen varje enskild karaktär. Den skickar sedan karaktärerna som kändes igen med hög tillförsikt i det första passet till en adaptiv klassificerare som träningsdata. På så sätt har den adaptiva klassificeraren chansen att lära sig att känna igen efterföljande text mer exakt.
- Det kan dock hända att den adaptiva klassificeraren lär sig användbar information för sent för att ge ett meningsfullt bidrag. För att lösa detta problem och dra nytta av kunskapen som förvärvats av den adaptiva klassificeraren, kör motorn ett andra pass där tecken som inte kändes igen tillräckligt väl igenkänns igen [1].
Tesseract 3 hanterar alla Unicode-tecken (kodade med UTF-8) och kan bearbeta text på olika språk och skrivlayout: vänster till höger (t.ex. engelska, italienska, ryska, etc.), höger till vänster (t.ex. arabiska, hebreiska, urdu etc.) och topp-till-botten (t.ex. japanska, koreanska, kinesiska, etc.) [2].
Varning. Mac-användare kan för närvarande inte använda Tess4J-noden. KNIME-utvecklare arbetar för att återställa smidig funktion.
Användningsfall: Hämta bokmetadata och omslag
Nu när vi har fått en grundläggande förståelse för hur OCR fungerar i KNIME Analytics Platform, låt oss ta en titt på ett intressant användningsfall. Anta att vi har samlat in bilder som illustrerar utgåvan av flera böcker och med denna information vill vi hämta bokmetadata och omslag. Den inhämtade datan skulle sedan kunna användas för att till exempel bygga ett skräddarsytt digitalt bibliotek och träna ett bokrekommendatorsystem.
Arbetsflödet i figur 2 täcker alla steg: från bildläsning, OCRing, textbearbetning och extrahering av ISBN-referenser, till bokmetadata och omslagshämtning och visualisering. Låt oss ta en titt på de olika stegen i detalj.
Bild 2: Detta arbetsflöde utför en enkel OCR-uppgift på meddelanden om bokutgåvor och hämtar bokmetadata och omslag med Google Books API.
1 — Läs bilddata
Det första steget är att importera bokutgåvans meddelandebilder till KNIME. Utgåvameddelandet är sidan i en bok som innehåller information om den aktuella utgåvan, såsom ett upphovsrättsmeddelande, juridiska meddelanden, publiceringsinformation, utskriftshistorik och en ISBN-kod (Figur 1).
Metanoden "Läs bilddata" tar hand om det på ett enkelt och programmatiskt sätt (Figur 3). Vi identifierar platsen där bildfiler lagras med Lista filer/mappar nod och använd Bildläsare (tabell) nod för att graciöst importera bilderna. I noden Bildläsare (tabell) behöver vi bara ange "Filinmatningskolumnen", det vill säga kolumnen med sökvägarna till filerna där våra bilder lagras. Alla andra konfigurationer kan lämnas som standard.
Bildläsaren (tabell) är en del av KNINE Bildbehandling förlängning och, liksom andra noder i detta tillägg, erbjuder den en interaktiv vy som innehåller bilden och dess metadata genom att helt enkelt högerklicka på noden, välja "Visa: Bildvisare" och dubbelklicka på valfri bild i tabellvyn.
Figur 3: Inuti metanoden "Läs bilddata". Bildläsarnoden (tabell) importerar bilder till arbetsflödet och låter oss utforska dem interaktivt i dess vy.
2 — OCR
Efter att ha läst i bildfilerna i bokutgåvorna kan vi OCR dem.
Konfigurationen av Tess4J-noden är mycket enkel och kräver bara några få klick (Figur 4). I den Inställningar fliken, erbjuder noden möjligheten att korrigera valfri rotation eller sned bild genom att markera rutan "Skava ingångsbilder" i avsnittet "Förbearbetning" i konfigurationsdialogrutan. Det rekommenderas vanligtvis att göra det, eftersom grafikfiler kanske inte är korrekt justerade. Dessutom producerar Tess4J-noden automatiskt en binär bild bakom huven.
Därefter väljer vi "Tessdata Path". Som standard är detta inställt på "Använd internt", vilket sedan låter oss välja språket för texten som vi vill bearbeta. I den här konfigurationen är engelska standardspråket, men Tess4J-noden stöder andra naturliga språk som danska, italienska, spanska, ryska, grekiska, slovakiska, tyska och franska. Det är värt att nämna att genom att välja "Använd extern" kan vi utöka funktionerna för Tess4J-noden till att inkludera språk som inte stöds internt. Vi kan faktiskt välja våra egna, externt tränade dataspråkmodeller genom att ange katalogen där de lagras. Vi väljer "Använd internt" eftersom vi föredrar att förlita oss på de interna modellerna av Tess4J för våra engelska dokument.
I avsnittet "Konfiguration av igenkänning" hittar vi de två viktigaste rullgardinskonfigurationerna, nämligen "Sidsegmenteringsläge" och "OCR Engine Mode". Den första definierar hur vår sida är segmenterad.
I figur 4 väljer vi "Full Auto Pageseg", vilket säkerställer helautomatisk sidsegmentering. Beroende på det specifika användningsfallet kan det vara lämpligare att välja ett annat läge av de 13 tillgängliga (t.ex. "Enkel kolumn" eller "Gles text").
Den andra inställningen ber oss att välja OCR-motorn. Här väljer vi "Endast Tesseract", vilket säkerställer den snabbaste exekveringen. Andra alternativ inkluderar "Cube Only" - ett alternativt igenkänningsläge för Tesseract - som är långsammare men ofta ger bättre resultat; eller "Tesseract And Cube", som kombinerar det bästa av två världar. Att välja en eller annan motor beror starkt på kvaliteten på bilden och komplexiteten hos texten som vi vill bearbeta.
Utöver de grundläggande inställningarna erbjuder Tess4J-noden en Avancerad konfiguration fliken där vi kan definiera en uppsättning av kontrollparametrar. Denna flik gör noden extremt flexibel och hjälper expertanvändare att anpassa och finjustera Tesseract OCR-motorn efter deras specifika behov. Oroa dig dock inte, i de flesta fall kommer de grundläggande konfigurationerna att ta dig långt!
Figur 4: Konfigurationsdialogruta för Tess4J-noden.
Förutom att justera konfigurationerna av Tess4J-noden till det aktuella användningsfallet, är det en god praxis att förbehandla ingångsbilder grundligt, om det behövs. I synnerhet fungerar Tesseract bäst när bilder är tillräckligt uppskalade så att pixelantalet för teckenens x-höjd är minst 20 pixlar; bilder är korrekt justerade och har en tillräckligt hög upplösning; och eventuella mörka ramar tas bort, eller så kan de misstolkas som tecken [3]. De KNINE Bildbehandling tillägget innehåller flera noder för bildrensning, manipulation och transformation, och många exempel på arbetsflöden kan hittas på KNIME nav.
Utdata från Tess4J-noden är en tabell som innehåller den extraherade texten som strängdatatyp, och som sådan kan den sökas och redigeras.
3 — Textbearbetning för ISBN-extraktion
När bilderna är OCR-behandlade kan texten som de innehåller äntligen nås och användbar information hämtas.
I synnerhet upplagor brukar rapportera den ISBN-kod som tilldelats boken. ISBN-koden är en unik, 13-siffrig lång (den brukade vara 10-siffrig långt före 2007), kommersiell bokidentifierare och som sådan tilldelas den varje separat utgåva och variant av en publikation. Att extrahera ISBN-koden låter oss referera till varje bok entydigt när vi vill hämta metainformation. För att uppnå det kan vi lita på de noder som ingår i KNIME — Textbehandling förlängning, av vilka några används i metanoden "ISBN-extraktion" (Figur 5).
I metanoden "Textrensning" börjar vi med att omvandla OCR-texten från sträng till dokumentdatatyp. Därefter konverterar vi texten till gemener, tar bort skiljetecken, blanksteg, bindestreck och ersätter bokstäverna "o" med "0" (nollor) för att korrigera för felaktiga tecken i ISBN-koderna.
Vi extraherar ISBN-koderna genom att isolera de 13 tecknen som följer strängen "isbn", och använder Regelmotor nod för att kontrollera om de extraherade tecknen inte innehåller saknade värden och har en förväntad längd på 13 tecken. Vi utnyttjar sedan den här nodens förmåga att lägga till en kolumn som etiketterar framgångsrik extraktion som 1 och misslyckad extrahering som 0.
Figur 5: Inuti metanoden för "ISBN-extraktion".
4 — Hämtning och visualisering av metainformation
I det sista steget använder vi ISBN-koderna för att hämta bokmetainformation och omslag från Google Books API. Metanoden "Hämta bokmetadata och omslag" tar hand om det (Figur 6). Men metadatahämtning är endast möjlig om ISBN-koderna har extraherats. För att säkerställa en smidig hantering av lyckad/misslyckad ISBN-extrahering inkluderar vi flera noder för arbetsflödeskontroll. Du kan hitta en insiktsfull översikt i Fuskark: Kontroll och orkestrering med KNIME Analytics-plattform.
Om ISBN-koden extraheras framgångsrikt använder vi GET-förfrågan nod att skicka en GET-förfrågan till Google Books API, en gratis RESTful webbtjänst som drivs av Google som tillåter hämtning av flera metainformation såsom boktitel, underrubrik, författare, publiceringsdatum, beskrivning, sidantal, språk, genomsnittligt betyg, antal betyg och omslag. Dessutom kräver denna RESTful webbtjänst inte skapandet av ett utvecklarkonto. Konfigurationen av GET Request-noden är mycket enkel. Det kräver det enkla valet av en meningsfull "URL-kolumn" som vi konstruerar i Strängmanipulation nod genom att gå med i Google Books API URL med ISBN-koden för varje utgåvameddelande. Alla andra konfigurationer kan lämnas som standard.
Vi analyserar sedan JSON-utgången från GET Request-noden med hjälp av JSON-sökväg nod och sammanfoga extraherad metainformation med bokomslag innan du samlar in de slutliga resultaten.
Slutligen skapar vi komponenten "Visualisera bokmetadata och omslag" för en snygg visualisering av den hämtade bokmetainformationen och omslagen.
I komponenten lindar vi in Interaktiv Range Slider Filter Widget nod för att aktivera dynamisk bokfiltrering baserat på det genomsnittliga betygsantalet (0-fruktansvärt; 5-fantastiskt) tilldelat av läsare på Google Böcker, och Kakelvy nod för att visa resultaten.
Komponenten får sedan en vy inklusive reglaget för att välja böcker baserat på det genomsnittliga betyget och en tabell med omslag och beskrivning av valda böcker. För den här artikeln har vi valt att extrahera böcker med betyg mellan 3 och 5, och resultaten visas i figur 6.
Figur 6: Hämtad metainformation och bokomslag för böcker med betyg högre än 3.
Sammanfattning
I den här artikeln har vi illustrerat hur OCR enkelt kan utföras i KNIME Analytics Platform. För detta ändamål har vi presenterat Tess4J-noden och tillhandahållit detaljer om hur Tesseract OCR-biblioteket som denna nod är baserad på fungerar.
Dessutom har vi visat ett enkelt användningsfall där OCR kan vara en kraftfull och användbar resurs. Vi har hämtat information från meddelanden om bokutgåvor – särskilt ISBN-koderna – för att skicka en GET-förfrågan till Google Books RESTful-webbtjänst. Detta har gjort det möjligt för oss att hämta bokmetadata och omslag.
Med KNIME blir OCRing av bilder för att extrahera viktiga delar av information lika enkelt som ABC. Prova själv! Vad är ditt OCR-användningsfall?
Arbetsflödet som presenteras i den här artikeln kan laddas ner gratis från KNIME nav.
Referensprojekt
[1] Smith, R. (2007). "En översikt över Tesseract OCR-motorn". Nionde internationella konferensen om dokumentanalys och erkännande (ICDAR 2007), s. 629-633. Tillgänglig på:
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/33418.pdf
[Hämtad: 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 är datavetare på KNIME, NLP-entusiast och historieälskare. Redaktör för Low Code for Advanced Data Science.
Lada Rudnitckaia är datavetare vid KNIME.
Som först publicerad i Låg kod för avancerad datavetenskap.
Ursprungliga. Skickas om med tillstånd.
Relaterat:
Källa: https://www.kdnuggets.com/2021/11/book-metadata-cover-retrieval-ocr-google-books-api.html
- "
- &
- 2021
- Konto
- Redovisning
- AI
- Alla
- analys
- analytics
- api
- Artikeln
- artiklar
- Författarna
- bil
- BÄST
- Böcker
- Box
- SLUTRESULTAT
- företag
- företag
- vilken
- Karriär
- fall
- karaktärigenkänning
- kinesisk
- klassificering
- Rengöring
- klienter
- koda
- Samla
- Kolumn
- kommersiella
- Företag
- komponent
- datorer
- Konferens
- förtroende
- konfiguration
- innehåll
- upphovsrätt
- Aktuella
- instrumentbräda
- datum
- datavetenskap
- datavetare
- detalj
- Detektering
- Utvecklare
- utvecklare
- Utveckling
- digital
- dokument
- Drop
- Tidig
- redaktör
- ingenjör
- Engelska
- etc
- utförande
- Bygga ut
- Exploit
- extraktion
- Figur
- Slutligen
- finansiella
- Förnamn
- följer
- formen
- format
- Fri
- franska
- GitHub
- god
- Grupp
- Arbetsmiljö
- praktisk
- här.
- Hög
- Anställa
- historia
- värd
- Hur ser din drömresa ut
- How To
- HTTPS
- Tanken
- identifiera
- bild
- Inklusive
- Inkomst
- Öka
- industrin
- informationen
- interaktiva
- Internationell
- IT
- delta
- kunskap
- koreanska
- Etiketter
- språk
- Språk
- Large
- LÄRA SIG
- inlärning
- Adress
- Hävstång
- Bibliotek
- ljus
- Lista
- läge
- Lång
- maskininlärning
- maskinöversättning
- Manipulation
- Medium
- nämligen
- Propert
- neural
- nlp
- noder
- nummer
- OCR
- Erbjudanden
- öppet
- öppen källkod
- optisk teckenigenkänning
- Alternativet
- Tillbehör
- Övriga
- Personer
- fysisk
- Bild
- pixel
- plattform
- produktivitet
- projektet
- Python
- kvalitet
- område
- betyg
- Raw
- rådata
- Läsare
- läsare
- Läsning
- rapport
- resurs
- Resultat
- Vetenskap
- Sök
- vald
- känsla
- in
- inställning
- Enkelt
- So
- Mjukvara
- LÖSA
- spanska
- Sponsrade
- starta
- Upplevelser för livet
- framgångsrik
- stödja
- Som stöds
- Stöder
- system
- tekniker
- Teknologi
- tesseract
- tid
- topp
- Utbildning
- Transformation
- omvandla
- Översättning
- unicode
- us
- användare
- utsikt
- visualisering
- webb
- Vad är
- ord
- Arbete
- arbetsflöde
- fungerar
- värt
- skrivning
- X
- år