Metadatele cărții și recuperarea copertelor utilizând OCR și API-ul Google Cărți
Cu KNIME, extragerea informațiilor critice din imagini devine la fel de ușoară ca ABC.
By Roberto Cadili, Data Scientist, KNIME & Lada Rudnitckaia, Data Scientist, KNIME
Figura 1: Exemple de notificări de ediție de cărți în care informațiile pot fi extrase datorită OCR.
De cele mai multe ori, datele brute de care avem nevoie pentru proiectul nostru de știință a datelor nu sunt organizate într-un tabel ordonat, bine structurat și perspicace. Mai degrabă, aceasta este uneori stocată ca text într-un document scanat. Cuvintele din document trebuie apoi extrase unul câte unul pentru a forma o celulă de date formatată text. Aceasta este sarcina efectuată de Recunoașterea optică a caracterelor (OCR).
Pe măsură ce citiți cuvintele acestui articol, fie că este text sau număr, ochii tăi sunt capabili să le proceseze prin recunoașterea modelelor deschise și întunecate care alcătuiesc caracterele (de exemplu, litere, cifre, semne de punctuație etc.). Creierul tău decodifică apoi diferitele combinații de caractere și modele pentru a înțelege sensul cuvintelor. În acest sens, ochii și creierul tău sunt cel mai sofisticat și rafinat motor OCR pe care ți-l poți imagina și funcționează fără ca tu să observi.
Calculatoarele au capacități similare, dar trebuie să abordeze o limitare crucială: absența ochilor. Dacă dorim ca computerele să vadă și să citească un document text fizic, trebuie să introducem un fișier grafic generat fie cu un scaner optic, fie cu o cameră digitală. În ceea ce privește computerele, nu există nicio diferență între un document achiziționat cu oricare dintre aceste opțiuni și o fotografie a Turnului Eiffel: ambele sunt considerate colecții lipsite de sens de pătrate colorate - cunoscute și sub denumirea de pixeli - care constituie orice imagine grafică pe computer. Ca atare, aceasta din urmă este doar o imagine a textului pe care intenționăm să-l citim mai degrabă decât textul în sine.
Aici poate fi utilă OCR. Această tehnologie puternică este capabilă să extragă date tipărite, dactilografiate sau scrise de mână, fie că este vorba despre facturi, cărți de vizită, texte legale sau tipărite, și să le transforme într-un format digital care poate fi căutat și editabil. Deși timp de mulți ani OCR a fost privit ca un serviciu costisitor, pe care doar foarte puține companii mari și-l puteau permite, de la mijlocul anilor 2000 încoace, costul său a scăzut treptat, în timp ce acuratețea și capacitățile sale au evoluat pentru a accepta astăzi câteva sute de limbi și codificare de caractere. , de la UTF-8 la GB2312.
Beneficiul de a putea căuta și extrage text din imagini poate fi neprețuit. De exemplu, în industria juridică sau contabilă, poate reprezenta o economie semnificativă de costuri și timp, deoarece permite regăsirea unor porțiuni de text sau numere din articole sau situații financiare în câteva secunde. Compararea acestui proces cu costul angajării unui grup de oameni care să citească mii de documente doar pentru a găsi o singură informație critică oferă o idee despre modul în care OCR poate beneficia companiile.
Mai recent, tehnologia OCR trece printr-o revoluție liniștită, deoarece furnizorii acestui serviciu îl combină cu AI. Ca rezultat, nu numai că datele sunt capturate, făcute căutabile și editabile, dar sistemul AI înțelege de fapt conținutul pentru a îndeplini sarcini specifice. De exemplu, după OCR-ul unui text, AI poate furniza traducerea acestuia folosind traducerea automată neuronală cu intervenție umană minimă. Un alt exemplu clasic vine din secțiunea de audit, unde facturile frauduloase pot fi recunoscute după OCR-ul conținutului documentului pdf, folosind tehnici de detectare a valorii aberante. Și așa mai departe. Această sinergie combină tot ce este mai bun din ambele lumi pentru a eficientiza procesele și pentru a crește productivitatea pentru companii și clienți.
În cazul de utilizare descris în acest articol, OCR este utilizat pentru a identifica o carte și apoi pentru a prelua metadatele cărții din depozitul Google Cărți.
Mai precis, vom arunca o privire la:
- Cum poate fi efectuat OCR în Platforma KNIME Analytics.
- Cum putem integra procesorul OCR de la KNIME și API-ul Google Cărți pentru cazul de utilizare al recuperării metadatelor și coperta cărții.
OCR în platforma KNIME Analytics
OCR-ul unei imagini care conține text în KNIME este o sarcină foarte ușoară. Tot ce este nevoie este să instalați Procesarea imaginilor KNIME — Integrare Tess4J extensie în local Platforma KNIME Analytics, și pentru a trage și plasa Tess4J nod în editorul fluxului de lucru.
Nodul Tess4J integrează Biblioteca Tesseract OCR, unul dintre cele mai utilizate și mai precise procesoare OCR open-source disponibile. Tesseract a fost dezvoltat inițial ca software proprietar de către Hewlett-Packard Laboratories la începutul anilor 1990 și a fost ulterior făcut open source în 2005. De atunci, Google a adoptat proiectul și a sponsorizat dezvoltarea acestuia.
Nodul Tess4J rulează pe Tesseract 3, care funcționează prin recunoașterea tiparelor de caractere într-o procedură cu două treceri.
- În prima trecere, motorul încearcă să recunoască fiecare personaj individual. Apoi trece caracterele care au fost recunoscute cu mare încredere în prima trecere la un clasificator adaptiv ca date de antrenament. În acest fel, clasificatorul adaptiv are șansa de a învăța cum să recunoască mai precis textul ulterior.
- Cu toate acestea, se poate întâmpla ca clasificatorul adaptiv să învețe informații utile prea târziu pentru a aduce o contribuție semnificativă. Pentru a rezolva această problemă și a valorifica cunoștințele dobândite de clasificatorul adaptiv, motorul operează o a doua trecere în care caracterele care nu au fost recunoscute suficient de bine sunt recunoscute din nou [1].
Tesseract 3 gestionează orice caractere Unicode (codate cu UTF-8) și poate procesa text în diferite limbi și aspect de scriere: de la stânga la dreapta (de exemplu, engleză, italiană, rusă etc.), de la dreapta la stânga (de ex., arabă, ebraică, urdu etc.) și de sus în jos (de exemplu, japoneză, coreeană, chineză etc.) [2].
Disclaimer. Utilizatorii de Mac nu pot folosi în prezent nodul Tess4J. Dezvoltatorii KNIME lucrează pentru a restabili funcționarea fără probleme.
Caz de utilizare: Preluarea metadatelor cărții și a copertei
Acum că am dobândit o înțelegere de bază a modului în care funcționează OCR în Platforma KNIME Analytics, să aruncăm o privire la un caz de utilizare interesant. Să presupunem că am colectat imagini care ilustrează anunțurile de ediție ale mai multor cărți și cu aceste informații dorim să recuperăm metadatele și copertele cărților. Datele preluate ar putea fi apoi utilizate, de exemplu, pentru a construi o bibliotecă digitală personalizată și pentru a pregăti un sistem de recomandare de cărți.
Fluxul de lucru din Figura 2 acoperă toți pașii: de la citirea imaginilor, OCR, procesarea textului și extragerea referințelor ISBN, până la metadatele cărților și recuperarea și vizualizarea copertelor. Să aruncăm o privire asupra diferiților pași în detaliu.
Figura 2: Aceasta flux de lucru efectuează o sarcină OCR simplă pe notificările ediției cărților și preia metadatele cărții și coperta folosind API-ul Google Cărți.
1 — Citiți datele imaginii
Primul pas este să importați imaginile anunțului ediției cărții în KNIME. Anunțul de ediție este pagina dintr-o carte care conține informații despre ediția curentă, cum ar fi o notificare privind drepturile de autor, notificări legale, informații despre publicare, istoricul tipăririi și un cod ISBN (Figura 1).
Metanodul „Citiți datele imaginii” se ocupă de asta într-un mod ușor și programatic (Figura 3). Identificăm locația în care fișierele de imagine sunt stocate cu Listează fișiere/directoare nod și utilizați Cititor de imagini (tabel) nod pentru a importa cu grație imaginile. În nodul Cititor de imagini (Tabel), trebuie doar să specificăm „Coloana de intrare fișier”, adică coloana cu căile către fișierele în care sunt stocate imaginile noastre. Toate celelalte configurații pot fi lăsate implicite.
Cititorul de imagini (Tabel) face parte din Procesarea imaginii KNINE extensie și, ca și alte noduri din această extensie, oferă o vizualizare interactivă care conține imaginea și metadatele acesteia făcând simplu clic dreapta pe nod, selectând „Vizualizare: Vizualizator de imagini” și făcând dublu clic pe orice imagine din vizualizarea tabelului.
Figura 3: În interiorul metanodului „Citiți datele imaginii”. Nodul Cititor de imagini (Tabel) importă imagini în fluxul de lucru și ne permite să le explorăm interactiv în vizualizarea sa.
2 — OCR
După citirea fișierelor imagine ale anunțurilor de ediție de carte, le putem OCR.
Configurarea nodului Tess4J este foarte simplă și necesită doar câteva clicuri (Figura 4). În setări cont fila, nodul oferă posibilitatea de a corecta orice imagine de rotație sau deformată prin selectarea casetei „Deskew input images” din secțiunea „Preprocessing” a dialogului de configurare. De obicei, se recomandă să faceți acest lucru, deoarece fișierele grafice ar putea să nu fie aliniate corect. Mai mult, nodul Tess4J produce automat o imagine binarizată în spatele capotei.
Apoi, selectăm „Calea Tessdata”. În mod implicit, acesta este setat la „Utilizați intern”, ceea ce ne permite apoi să alegem limba textului pe care dorim să-l procesăm. În această configurație, engleza este limba implicită, dar nodul Tess4J acceptă alte limbi naturale, cum ar fi daneză, italiană, spaniolă, rusă, greacă, slovacă, germană și franceză. Merită menționat faptul că selectând „Utilizați extern”, putem extinde capacitățile nodului Tess4J pentru a include limbi care nu sunt acceptate intern. Într-adevăr, putem alege propriile noastre modele de limbaj de date antrenate extern, specificând directorul în care sunt stocate. Alegem „Utilizați intern” deoarece preferăm să ne bazăm pe modelele interne ale Tess4J pentru documentele noastre în limba engleză.
În secțiunea „Configurare recunoaștere”, găsim cele mai importante două configurații de listă derulantă, și anume „Modul de segmentare a paginii” și „Modul motor OCR”. Primul definește modul în care este segmentată pagina noastră.
În Figura 4, selectăm „Full Auto Pageseg”, care asigură segmentarea complet automată a paginii. În funcție de cazul specific de utilizare, selectarea unui alt mod din cele 13 disponibile (de exemplu, „Coloană unică” sau „Text rar”) ar putea fi o opțiune mai potrivită.
A doua setare ne cere să alegem motorul OCR. Aici, selectăm „Numai Tesseract”, care asigură cea mai rapidă execuție. Alte opțiuni includ „Numai cub” – un mod alternativ de recunoaștere pentru Tesseract – care este mai lent, dar adesea produce rezultate mai bune; sau „Tesseract And Cube”, care combină tot ce este mai bun din ambele lumi. Alegerea unui motor sau altul depinde foarte mult de calitatea imaginii și de complexitatea textului pe care dorim să-l procesăm.
Pe lângă setările de bază, nodul Tess4J oferă un Configurare avansată filă unde putem defini un set de parametrii de control. Această filă face nodul extrem de flexibil și ajută utilizatorii experți să personalizeze și să ajusteze motorul Tesseract OCR la nevoile lor specifice. Nu vă faceți griji, însă, pentru cele mai multe cazuri, configurațiile de bază vă vor duce mult!
Figura 4: Dialogul de configurare al nodului Tess4J.
Pe lângă ajustarea configurațiilor nodului Tess4J la cazul de utilizare în cauză, este o practică bună să preprocesați temeinic imaginile de intrare, dacă este necesar. În special, Tesseract funcționează cel mai bine atunci când imaginile sunt suficient de mărite, astfel încât numărul de pixeli al înălțimii x a caracterelor să fie de cel puțin 20 de pixeli; imaginile sunt aliniate corect și au o rezoluție suficient de mare; și orice chenar întunecat este eliminat, sau ar putea fi interpretate greșit ca personaje [3]. The Procesarea imaginii KNINE extensia include mai multe noduri pentru curățarea, manipularea și transformarea imaginilor și multe exemple de fluxuri de lucru pot fi găsite pe Hub KNIME.
Ieșirea nodului Tess4J este un tabel care conține textul extras ca tip de date String și, ca atare, poate fi căutat și editat.
3 — Procesarea textului pentru extragerea ISBN
Odată ce imaginile sunt OCR, textul pe care le conțin poate fi în sfârșit accesat și informații utile recuperate.
În special, notificările de ediție raportează de obicei codul ISBN alocat cărții. Codul ISBN este un identificator de carte comercială unic, format din 13 cifre (obișnuia avea 10 cifre cu mult înainte de 2007), și ca atare este atribuit fiecărei ediții și variații separate a unei publicații. Extragerea codului ISBN ne permite să ne referim la fiecare carte fără ambiguitate atunci când dorim să regăsim metainformații. Pentru a realiza acest lucru, ne putem baza pe nodurile incluse în KNIME — Procesarea textului extensie, dintre care unele sunt utilizate în metanodul „extracție ISBN” (Figura 5).
În metanodul „Curățarea textului”, începem prin a transforma textul OCR din tipul de date String în document. Apoi, convertim textul în litere mici, eliminăm semnele de punctuație, spațiile goale, cratimele și înlocuim literele „o” cu „0” (zerouri) pentru a corecta caracterele recunoscute greșit din codurile ISBN.
Extragem codurile ISBN izolând cele 13 caractere care urmează șirul „isbn” și folosim Rule Engine nod pentru a verifica dacă caracterele extrase nu conțin valori lipsă și au o lungime estimată de 13 caractere. Apoi exploatăm capacitatea acestui nod de a adăuga o coloană care etichetează extragerea reușită ca 1 și extracția nereușită ca 0.
Figura 5: În interiorul metanodului „extracție ISBN”.
4 — Recuperarea și vizualizarea metainformațiilor
În ultimul pas, folosim codurile ISBN pentru a prelua metainformații și coperți ale cărților din API-ul Google Cărți. Metanodul „Obține metadatele și copertele cărții” se ocupă de asta (Figura 6). Cu toate acestea, recuperarea metadatelor este posibilă numai dacă codurile ISBN au fost extrase cu succes. Pentru a asigura o gestionare fără probleme a extragerii ISBN cu succes/nereușite, includem mai multe noduri de control al fluxului de lucru. Puteți găsi o privire de ansamblu perspicace în Cheat Sheet: control și orchestrare cu platforma KNIME Analytics.
Dacă codul ISBN este extras cu succes, folosim codul Solicitare GET nod la care trimite o solicitare GET API Google Cărți, un serviciu web gratuit RESTful oferit de Google care permite preluarea mai multor metainformații, cum ar fi titlul cărții, subtitrarea, autorii, data publicării, descrierea, numărul de pagini, limba, evaluarea medie, numărul de evaluări și coperta. În plus, acest serviciu web RESTful nu necesită crearea unui cont de dezvoltator. Configurarea nodului GET Request este foarte simplă. Necesită selectarea simplă a unei „coloane URL” semnificative pe care o construim în Manipularea șirurilor nod prin alăturarea Adresa URL a API-ului Google Cărți cu codul ISBN al fiecărei ediții. Toate celelalte configurații pot fi lăsate implicite.
Analizăm apoi rezultatul JSON al nodului GET Request folosind Calea JSON nod și unește metainformațiile extrase cu coperțile cărților înainte de a colecta rezultatele finale.
În cele din urmă, creăm componenta „Vizualizează metadatele și copertele cărții” pentru o vizualizare clară a metainformațiilor și a coperților cărții recuperate.
În componentă, înfășurăm Widget interactiv pentru filtru cu glisor nod pentru a activa filtrarea dinamică a cărților pe baza numărului mediu de evaluări (0-îngrozitor; 5-fantastic) atribuit de cititorii de pe Google Cărți și Vedere Tile nod pentru a afișa rezultatele.
Componenta dobândește apoi o vizualizare care include glisorul pentru a selecta cărțile pe baza evaluării medii și un tabel care găzduiește coperțile și descrierea cărților selectate. Pentru acest articol, am ales să extragem cărți cu evaluări între 3 și 5, iar rezultatele sunt afișate în Figura 6.
Figura 6: Metainformații și coperțile de cărți preluate pentru cărțile cu evaluări mai mari de 3.
Rezumat
În acest articol, am ilustrat modul în care OCR poate fi realizat cu ușurință în Platforma KNIME Analytics. În acest scop, am prezentat nodul Tess4J și am oferit detalii despre funcționarea bibliotecii Tesseract OCR pe care se bazează acest nod.
În plus, am arătat un caz simplu de utilizare în care OCR poate fi o resursă puternică și utilă. Am extras informații din notificările de ediție a cărților – în special, codurile ISBN – pentru a trimite o solicitare GET către serviciul web RESTful Google Cărți. Acest lucru ne-a permis să recuperăm metadatele și copertele cărților.
Cu KNIME, extragerea imaginilor OCR pentru a extrage informații critice devine la fel de ușoară ca ABC. Încercați-l singur! Care este cazul dvs. de utilizare OCR?
Fluxul de lucru prezentat în acest articol poate fi descărcat gratuit de la Hub KNIME.
Referinte
[1] Smith, R. (2007). „O prezentare generală a motorului Tesseract OCR”. A noua Conferință internațională privind analiza și recunoașterea documentelor (ICDAR 2007), p. 629–633. Accesibil la:
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/33418.pdf
[Preluat: 15.07.2021].
[2] Proiect Tesseract OCR pe GitHub — https://github.com/tesseract-ocr/tesseract
[3] Documentația Tesseract OCR pe GitHub — https://tesseract-ocr.github.io/tessdoc/
Roberto Cadili este cercetător de date la KNIME, pasionat de NLP și iubitor de istorie. Editor pentru Low Code pentru Advanced Data Science.
Lada Rudnitckaia este cercetător de date la KNIME.
Așa cum a fost publicat pentru prima dată în Cod scăzut pentru știința avansată a datelor.
Original. Repostat cu permisiunea.
Related:
Sursa: https://www.kdnuggets.com/2021/11/book-metadata-cover-retrieval-ocr-google-books-api.html
- "
- &
- 2021
- Cont
- Contabilitate
- AI
- TOATE
- analiză
- Google Analytics
- api
- articol
- bunuri
- Autorii
- Auto
- CEL MAI BUN
- Manuale
- Cutie
- construi
- afaceri
- întreprinderi
- pasă
- Carieră
- cazuri
- recunoașterea personajelor
- chinez
- clasificare
- Curățenie
- clientii
- cod
- Colectare
- Coloană
- comercial
- Companii
- component
- Calculatoare
- Conferință
- încredere
- Configuraţie
- conţinut
- drepturi de autor
- Curent
- tablou de bord
- de date
- știința datelor
- om de știință de date
- detaliu
- Detectare
- Dezvoltator
- Dezvoltatorii
- Dezvoltare
- digital
- documente
- Picătură
- Devreme
- editor
- inginer
- Engleză
- etc
- execuție
- Extinde
- Exploata
- extracţie
- Figura
- În cele din urmă
- financiar
- First
- urma
- formă
- format
- Gratuit
- Franceză
- GitHub
- bine
- grup
- Manipularea
- la indemana
- aici
- Înalt
- angajarea
- istorie
- găzduire
- Cum
- Cum Pentru a
- HTTPS
- idee
- identifica
- imagine
- Inclusiv
- Venituri
- Crește
- industrie
- informații
- interactiv
- Internațional
- IT
- alătura
- cunoştinţe
- Coreeană
- etichete
- limbă
- Limbă
- mare
- AFLAȚI
- învăţare
- Legal
- Pârghie
- Bibliotecă
- ușoară
- Listă
- locaţie
- Lung
- masina de învățare
- traducere automată
- Manipulare
- mediu
- și anume
- ordinat
- neural
- nlp
- noduri
- numere
- OCR
- promoții
- deschide
- open-source
- recunoaștere optică a caracterelor
- Opțiune
- Opţiuni
- Altele
- oameni
- fizic
- imagine
- Pixel
- platformă
- productivitate
- proiect
- Piton
- calitate
- gamă
- evaluări
- Crud
- date neprelucrate
- Cititor
- cititori
- Citind
- raportează
- resursă
- REZULTATE
- Ştiinţă
- Caută
- selectate
- sens
- set
- instalare
- simplu
- So
- Software
- REZOLVAREA
- Spaniolă
- Sponsorizat
- Începe
- Istorii
- de succes
- a sustine
- Suportat
- Sprijină
- sistem
- tehnici de
- Tehnologia
- Tesseract
- timp
- top
- Pregătire
- Transformare
- transformare
- Traducere
- unicode
- us
- utilizatorii
- Vizualizare
- vizualizare
- web
- Ce este
- cuvinte
- Apartamente
- flux de lucru
- fabrică
- valoare
- scris
- X
- ani