Metadati del libro e recupero delle copertine tramite l'OCR e l'API di Google Libri
Con KNIME estrarre informazioni critiche dalle immagini diventa facile come l'ABC.
By Roberto Cadili, Data Scientist, KNIME & Lada Rudnitckaia, Scienziato dei dati, KNIME
Figura 1: Esempi di avvisi di edizione di libri in cui le informazioni possono essere estratte grazie all'OCR.
La maggior parte delle volte, i dati grezzi di cui abbiamo bisogno per il nostro progetto di data science non sono organizzati in una tabella ordinata, ben strutturata e perspicace. Piuttosto, questo a volte viene memorizzato come testo in un documento scansionato. Le parole nel documento devono quindi essere estratte una per una per formare una cella di dati in formato testo. Questo è il compito svolto dal riconoscimento ottico dei caratteri (OCR).
Mentre leggi le parole di questo articolo, siano esse testo o numero, i tuoi occhi sono in grado di elaborarle riconoscendo gli schemi chiari e scuri che compongono i caratteri (ad es. lettere, numeri, segni di punteggiatura, ecc.). Il tuo cervello sta quindi decodificando le diverse combinazioni di caratteri e schemi per cogliere il significato delle parole. In tal senso, i tuoi occhi e il tuo cervello sono il motore OCR più sofisticato e raffinato che tu possa immaginare e funzionano senza che tu te ne accorga.
I computer hanno capacità simili, ma devono affrontare un limite cruciale: l'assenza di occhi. Se vogliamo che i computer vedano e leggano un documento di testo fisico, dobbiamo inserire un file grafico generato con uno scanner ottico o una fotocamera digitale. Per quanto riguarda i computer, non c'è differenza tra un documento acquisito con una di queste opzioni e una fotografia della Torre Eiffel: entrambi sono considerati come raccolte prive di significato di quadrati colorati - noti anche come pixel - che costituiscono qualsiasi immagine grafica computerizzata. In quanto tale, quest'ultimo è solo un'immagine del testo che intendiamo leggere piuttosto che il testo stesso.
È qui che l'OCR può tornare utile. Questa potente tecnologia è in grado di estrarre dati stampati, dattiloscritti o scritti a mano, siano essi fatture, biglietti da visita, testi legali o tabulati, e convertirli in un formato digitale consultabile e modificabile. Sebbene per molti anni l'OCR sia stato considerato un servizio costoso, che solo pochissime grandi aziende potevano permettersi, dalla metà degli anni 2000 in poi, il suo costo è gradualmente diminuito mentre la sua accuratezza e capacità si sono evolute per supportare oggi diverse centinaia di lingue e codifica dei caratteri , da UTF-8 a GB2312.
Il vantaggio di poter cercare ed estrarre testo dalle immagini può essere impagabile. Ad esempio, nel settore legale o contabile, può rappresentare un notevole risparmio di costi e tempo, in quanto consente di recuperare in pochi secondi porzioni di testo o numeri in articoli o bilanci. Il confronto di questo processo con il costo dell'assunzione di un gruppo di persone per leggere migliaia di documenti solo per trovare un'unica informazione critica dà un'idea di come l'OCR possa avvantaggiare le aziende.
Più di recente, la tecnologia OCR sta subendo una rivoluzione silenziosa poiché i fornitori di questo servizio la stanno combinando con l'intelligenza artificiale. Di conseguenza, non solo i dati vengono acquisiti, resi ricercabili e modificabili, ma il sistema di intelligenza artificiale sta effettivamente comprendendo il contenuto per svolgere attività specifiche. Ad esempio, dopo aver eseguito l'OCR di un testo, l'intelligenza artificiale può fornire la sua traduzione utilizzando la traduzione automatica neurale con un intervento umano minimo. Un altro esempio classico viene dalla sezione di auditing, dove le fatture fraudolente possono essere riconosciute dopo aver eseguito l'OCR del contenuto del documento pdf, utilizzando tecniche di rilevamento dei valori anomali. E così via. Questa sinergia combina il meglio di entrambi i mondi per semplificare i processi e aumentare la produttività per aziende e clienti.
Nel caso d'uso descritto in questo articolo, l'OCR viene utilizzato per identificare un libro e quindi per recuperare i metadati del libro dal repository di Google Libri.
Più nello specifico, andremo a dare un'occhiata a:
- Come può essere condotto l'OCR Piattaforma di analisi KNIME.
- Come possiamo integrare il processore OCR di KNIME e l'API di Google Libri per il caso d'uso del recupero dei metadati e della copertina del libro.
OCR nella piattaforma di analisi KNIME
L'OCR di un'immagine contenente testo in KNIME è un compito molto semplice. Tutto ciò che serve è installare il Elaborazione immagini KNIME - Integrazione Tess4J estensione nel tuo locale Piattaforma di analisi KNIMEe per trascinare e rilasciare il file Tess4J node nell'editor del flusso di lavoro.
Il nodo Tess4J integra il file Libreria Tesseract OCR, uno dei processori OCR open source più utilizzati e accurati disponibili. Tesseract è stato originariamente sviluppato come software proprietario da Hewlett-Packard Laboratories nei primi anni '1990 ed è stato successivamente reso open source nel 2005. Da allora Google ha adottato il progetto e ne ha sponsorizzato lo sviluppo.
Il nodo Tess4J viene eseguito su Tesseract 3, che funziona riconoscendo i modelli di caratteri in una procedura a due passaggi.
- Nel primo passaggio, il motore tenta di riconoscere ogni singolo carattere. Quindi passa i caratteri che sono stati riconosciuti con elevata sicurezza nel primo passaggio a un classificatore adattivo come dati di addestramento. In questo modo, il classificatore adattivo ha la possibilità di imparare a riconoscere il testo successivo in modo più accurato.
- Tuttavia, può accadere che il classificatore adattivo apprenda informazioni utili troppo tardi per dare un contributo significativo. Per risolvere questo problema e sfruttare le conoscenze acquisite dal classificatore adattivo, il motore esegue un secondo passaggio in cui i caratteri che non sono stati riconosciuti abbastanza bene vengono nuovamente riconosciuti [1].
Tesseract 3 gestisce qualsiasi carattere Unicode (codificato con UTF-8) e può elaborare testo in varie lingue e layout di scrittura: da sinistra a destra (es. inglese, italiano, russo, ecc.), da destra a sinistra (es. arabo, ebraico, urdu ecc.) e dall'alto verso il basso (es. giapponese, coreano, cinese, ecc.) [2].
Esclusione di responsabilità. Gli utenti Mac non sono attualmente in grado di utilizzare il nodo Tess4J. Gli sviluppatori di KNIME stanno lavorando per ripristinare il buon funzionamento.
Caso d'uso: recupero dei metadati e della copertina del libro
Ora che abbiamo acquisito una conoscenza di base di come funziona l'OCR nella piattaforma KNIME Analytics, diamo un'occhiata a un caso d'uso interessante. Supponiamo di aver raccolto immagini che illustrano le note di edizione di diversi libri e con queste informazioni vogliamo recuperare i metadati e le copertine dei libri. I dati recuperati potrebbero quindi essere utilizzati, ad esempio, per creare una biblioteca digitale personalizzata e addestrare un sistema di raccomandazione di libri.
Il flusso di lavoro nella Figura 2 copre tutti i passaggi: dalla lettura delle immagini, all'OCRing, all'elaborazione del testo e all'estrazione del riferimento ISBN, ai metadati del libro e al recupero e visualizzazione della copertina. Diamo un'occhiata ai diversi passaggi in dettaglio.
Figura 2: Questo flusso di lavoro esegue una semplice attività OCR sugli avvisi di edizione del libro e recupera i metadati e la copertina del libro utilizzando l'API di Google Libri.
1 — Leggi dati immagine
Il primo passaggio consiste nell'importare le immagini dell'avviso dell'edizione del libro in KNIME. L'avviso di edizione è la pagina di un libro contenente informazioni sull'edizione corrente, come un avviso di copyright, note legali, informazioni sulla pubblicazione, cronologia di stampa e un codice ISBN (Figura 1).
Il metanodo "Leggi i dati dell'immagine" si occupa di questo in modo semplice e programmatico (Figura 3). Identifichiamo la posizione in cui sono archiviati i file di immagine con l'estensione Elenca file/cartelle nodo e utilizzare il Lettore di immagini (tabella) node per importare correttamente le immagini. Nel nodo Image Reader (Table), dobbiamo solo specificare la "File Input Column", ovvero la colonna con i percorsi dei file in cui sono archiviate le nostre immagini. Tutte le altre configurazioni possono essere lasciate come predefinite.
Il lettore di immagini (tabella) fa parte di Elaborazione delle immagini KNINE estensione e, come altri nodi in questa estensione, offre una vista interattiva contenente l'immagine e i suoi metadati semplicemente facendo clic con il pulsante destro del mouse sul nodo, selezionando "Visualizza: visualizzatore di immagini" e facendo doppio clic su qualsiasi immagine nella vista tabella.
Figura 3: All'interno del metanodo “Leggi i dati dell'immagine”. Il nodo Image Reader (Table) importa le immagini nel flusso di lavoro e ci consente di esplorarle in modo interattivo nella sua visualizzazione.
2 — OCR
Dopo aver letto i file immagine degli avvisi dell'edizione del libro, possiamo eseguirne l'OCR.
La configurazione del nodo Tess4J è molto semplice e richiede solo pochi clic (Figura 4). Nel Impostazioni profilo scheda, il nodo offre la possibilità di correggere qualsiasi rotazione o inclinazione dell'immagine selezionando la casella "Allinea immagini di input" nella sezione "Preelaborazione" della finestra di dialogo di configurazione. Di solito si consiglia di farlo, poiché i file grafici potrebbero non essere allineati correttamente. Inoltre, il nodo Tess4J produce automaticamente un'immagine binarizzata dietro il cofano.
Successivamente, selezioniamo il "Percorso Tessdata". Per impostazione predefinita, questo è impostato su "Usa interno", che ci consente quindi di scegliere la lingua del testo che vogliamo elaborare. In questa configurazione, l'inglese è la lingua predefinita, ma il nodo Tess4J supporta altre lingue naturali come danese, italiano, spagnolo, russo, greco, slovacco, tedesco e francese. Vale la pena ricordare che selezionando "Usa esterno", possiamo espandere le capacità del nodo Tess4J per includere lingue che non sono supportate internamente. In effetti, possiamo scegliere i nostri modelli di linguaggi di dati addestrati esterni specificando la directory in cui sono archiviati. Scegliamo "Use Internal" poiché preferiamo affidarci ai modelli interni di Tess4J per i nostri documenti in inglese.
Nella sezione “Recognition Configuration” troviamo le due più importanti configurazioni di drop-down list, ovvero la “Page Segmentation Mode” e la “OCR Engine Mode”. Il primo definisce come la nostra pagina è segmentata.
Nella Figura 4, selezioniamo "Full Auto Pageseg", che garantisce una segmentazione della pagina completamente automatica. A seconda del caso d'uso specifico a portata di mano, la selezione di un'altra modalità tra le 13 disponibili (ad esempio, "Colonna singola" o "Testo sparse") potrebbe essere un'opzione più adatta.
La seconda impostazione ci chiede di scegliere il motore OCR. Qui selezioniamo "Solo Tesseract", che garantisce l'esecuzione più rapida. Altre opzioni includono "Solo cubo" - una modalità di riconoscimento alternativa per Tesseract - che è più lenta ma spesso produce risultati migliori; o "Tesseract And Cube", che combina il meglio di entrambi i mondi. La scelta di un motore o di un altro dipende fortemente dalla qualità dell'immagine e dalla complessità del testo che vogliamo elaborare.
Oltre alle impostazioni di base, il nodo Tess4J offre un Configurazione avanzata scheda dove possiamo definire un insieme di parametri di controllo. Questa scheda rende il nodo estremamente flessibile e aiuta gli utenti esperti a personalizzare e mettere a punto il motore Tesseract OCR in base alle loro esigenze specifiche. Non preoccuparti, però, nella maggior parte dei casi le configurazioni di base ti porteranno lontano!
Figura 4: dialogo di configurazione del nodo Tess4J.
Oltre ad adattare le configurazioni del nodo Tess4J al caso d'uso in questione, è buona norma preelaborare accuratamente le immagini di input, se necessario. In particolare, Tesseract funziona meglio quando le immagini sono sufficientemente ingrandite in modo tale che il numero di pixel dell'altezza x dei caratteri sia di almeno 20 pixel; le immagini sono allineate correttamente e hanno una risoluzione sufficientemente elevata; e tutti i bordi scuri vengono rimossi, altrimenti potrebbero essere interpretati erroneamente come caratteri [3]. Il Elaborazione delle immagini KNINE l'estensione include diversi nodi per la pulizia, la manipolazione e la trasformazione delle immagini e molti altri esempi di flussi di lavoro può essere trovato sul Hub KNIME.
L'output del nodo Tess4J è una tabella contenente il testo estratto come tipo di dati String, e come tale può essere cercato e modificato.
3 — Elaborazione del testo per l'estrazione del codice ISBN
Una volta che le immagini sono state sottoposte a OCR, è possibile finalmente accedere al testo che contengono e recuperare informazioni utili.
In particolare, gli avvisi di edizione riportano solitamente il codice ISBN assegnato al libro. Il codice ISBN è un identificatore di libro commerciale univoco di 13 cifre (era di 10 cifre prima del 2007) e come tale viene assegnato a ciascuna edizione e variazione separata di una pubblicazione. L'estrazione del codice ISBN ci consente di fare riferimento a ciascun libro in modo inequivocabile quando vogliamo recuperare metainformazioni. Per raggiungere questo obiettivo, possiamo fare affidamento sui nodi inclusi in KNIME — Elaborazione del testo estensione, alcuni dei quali sono utilizzati nel metanodo “estrazione ISBN” (Figura 5).
Nel metanodo "Pulizia del testo", iniziamo trasformando il testo sottoposto a OCR dal tipo di dati Stringa a Documento. Successivamente, convertiamo il testo in minuscolo, rimuoviamo la punteggiatura, gli spazi vuoti, i trattini e sostituiamo le lettere "o" con "0" (zero) per correggere i caratteri non riconosciuti nei codici ISBN.
Estraiamo i codici ISBN isolando i 13 caratteri che seguono la stringa “isbn”, e usiamo il Motore di regole nodo per verificare se i caratteri estratti non contengono valori mancanti e hanno una lunghezza prevista di 13 caratteri. Sfruttiamo quindi la capacità di questo nodo per aggiungere una colonna che etichetta l'estrazione riuscita come 1 e l'estrazione non riuscita come 0.
Figura 5: All'interno del metanodo "estrazione ISBN".
4 - Recupero e visualizzazione di metainformazioni
Nella fase finale, utilizziamo i codici ISBN per recuperare le metainformazioni e le copertine dei libri dall'API di Google Libri. Il metanodo "Ottieni metadati e copertine del libro" se ne occupa (Figura 6). Tuttavia, il recupero dei metadati è possibile solo se i codici ISBN sono stati estratti correttamente. Per garantire una gestione agevole dell'estrazione del codice ISBN riuscita/non riuscita, includiamo diversi nodi di controllo del flusso di lavoro. È possibile trovare una panoramica approfondita nel Cheat Sheet: controllo e orchestrazione con la piattaforma di analisi KNIME.
Se il codice ISBN viene estratto con successo, utilizziamo il OTTIENI Richiesta nodo a cui inviare una richiesta GET API di Google Libri, un servizio web RESTful gratuito fornito da Google che consente il recupero di diverse metainformazioni come titolo del libro, sottotitolo, autori, data di pubblicazione, descrizione, conteggio delle pagine, lingua, valutazione media, conteggio delle valutazioni e copertina. Inoltre, questo servizio web RESTful non richiede la creazione di un account sviluppatore. La configurazione del nodo GET Request è molto semplice. Richiede la semplice selezione di una "colonna URL" significativa che costruiamo nel file Manipolazione delle stringhe nodo unendo il URL dell'API di Google Libri con il codice ISBN di ogni bando di edizione. Tutte le altre configurazioni possono essere lasciate come predefinite.
Analizziamo quindi l'output JSON del nodo GET Request utilizzando il file Percorso JSON nodo e unisci le metainformazioni estratte con le copertine dei libri prima di raccogliere i risultati finali.
Infine, creiamo il componente "Visualizza metadati e copertine del libro" per una visualizzazione ordinata delle metainformazioni e delle copertine del libro recuperate.
Nel componente, avvolgiamo il file Widget filtro cursore intervallo interattivo nodo per abilitare il filtraggio dinamico dei libri in base al conteggio medio delle valutazioni (0-terribile; 5-fantastico) assegnato dai lettori su Google Libri e il Vista a tessere nodo per visualizzare i risultati.
Il componente acquisisce quindi una vista che include lo slider per selezionare i libri in base alla valutazione media e una tabella che ospita le copertine e la descrizione dei libri selezionati. Per questo articolo, abbiamo scelto di estrarre libri con valutazioni comprese tra 3 e 5 e i risultati sono visualizzati nella Figura 6.
Figura 6: Metainformazioni e copertine dei libri recuperate per i libri con valutazioni superiori a 3.
Sommario
In questo articolo, abbiamo illustrato come l'OCR può essere facilmente condotto in KNIME Analytics Platform. A tal fine, abbiamo presentato il nodo Tess4J e fornito dettagli sul funzionamento della libreria Tesseract OCR su cui si basa questo nodo.
Inoltre, abbiamo mostrato un semplice caso d'uso in cui l'OCR può essere una risorsa potente e utile. Abbiamo estratto informazioni dagli avvisi di edizione del libro, in particolare i codici ISBN, per inviare una richiesta GET al servizio web RESTful di Google Libri. Questo ci ha permesso di recuperare i metadati e le copertine dei libri.
Con KNIME, l'OCR delle immagini per estrarre informazioni critiche diventa facile come l'ABC. Provalo tu stesso! Qual è il tuo caso d'uso dell'OCR?
Il flusso di lavoro presentato in questo articolo può essere scaricato gratuitamente dal Hub KNIME.
Riferimenti
[1] Smith, R. (2007). "Una panoramica del motore Tesseract OCR". Nona conferenza internazionale sull'analisi e il riconoscimento dei documenti (ICDAR 2007), pp. 629–633. Accessibile a:
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/33418.pdf
[Estratto: 15.07.2021].
[2] Progetto Tesseract OCR su GitHub — https://github.com/tesseract-ocr/tesseract
[3] Documentazione Tesseract OCR su GitHub — https://tesseract-ocr.github.io/tessdoc/
Roberto Cadili è un data scientist presso KNIME, appassionato di PNL e appassionato di storia. Editor per Low Code per Advanced Data Science.
Lada Rudnitckaia è uno scienziato dei dati presso KNIME.
Come pubblicato per la prima volta in Low Code per Data Science avanzata.
Originale. Ripubblicato con il permesso.
Correlato:
Fonte: https://www.kdnuggets.com/2021/11/book-metadata-cover-retrieval-ocr-google-books-api.html
- "
- &
- 2021
- Il mio account
- Contabilità
- AI
- Tutti
- .
- analitica
- api
- articolo
- news
- gli autori
- auto
- MIGLIORE
- Libri
- Scatola
- costruire
- affari
- aziende
- che
- Career
- casi
- riconoscimento del personaggio
- Cinese
- classificazione
- Pulizia
- clienti
- codice
- Raccolta
- Colonna
- Aziende
- componente
- computer
- Convegno
- fiducia
- Configurazione
- contenuto
- copyright
- Corrente
- cruscotto
- dati
- scienza dei dati
- scienziato di dati
- dettaglio
- rivelazione
- Costruttori
- sviluppatori
- Mercato
- digitale
- documenti
- Cadere
- Presto
- editore
- ingegnere
- Inglese
- eccetera
- esecuzione
- Espandere
- Sfruttare
- estrazione
- figura
- Infine
- finanziario
- Nome
- seguire
- modulo
- formato
- Gratis
- Francese
- GitHub
- buono
- Gruppo
- Manovrabilità
- a portata di mano
- qui
- Alta
- Affitto
- storia
- di hosting
- Come
- Tutorial
- HTTPS
- idea
- identificare
- Immagine
- Compreso
- Reddito
- Aumento
- industria
- informazioni
- interattivo
- Internazionale
- IT
- join
- conoscenze
- Coreano
- per il tuo brand
- Lingua
- Le Lingue
- grandi
- IMPARARE
- apprendimento
- Legale
- Leva
- Biblioteca
- leggera
- Lista
- località
- Lunghi
- machine learning
- traduzione automatica
- Manipolazione
- medie
- cioè
- pulito
- Neurale
- nlp
- nodi
- numeri
- OCR
- Offerte
- aprire
- open source
- riconoscimento ottico dei caratteri
- Opzione
- Opzioni
- Altro
- Persone
- Fisico
- immagine
- pixel
- piattaforma
- della produttività
- progetto
- Python
- qualità
- gamma
- valutazioni
- Crudo
- dati grezzi
- Lettore
- lettori
- Lettura
- rapporto
- risorsa
- Risultati
- Scienze
- Cerca
- selezionato
- senso
- set
- regolazione
- Un'espansione
- So
- Software
- RISOLVERE
- Spagnolo
- Sponsored
- inizia a
- Storie
- di successo
- supporto
- supportato
- supporti
- sistema
- tecniche
- Tecnologia
- tesseract
- tempo
- top
- Training
- Trasformazione
- trasformazione
- Traduzione
- unicode
- us
- utenti
- Visualizza
- visualizzazione
- sito web
- Che cosa è l'
- parole
- Lavora
- flusso di lavoro
- lavori
- valore
- scrittura
- X
- anni