Kirjan metatiedot ja kansien haku OCR:n ja Google Books API:n avulla
KNIME:n avulla kriittisten tietojen poimiminen kuvista on yhtä helppoa kuin ABC.
By Roberto Cadili, Data Scientist, KNIME & Lada Rudnitckaia, Data Scientist, KNIME
Kuva 1: Esimerkkejä kirjapainosilmoituksista, joista voidaan poimia tietoja OCR:n ansiosta.
Useimmiten datatieteen projektiimme tarvitsemamme raakadata ei ole järjestetty siistiin, hyvin jäsenneltyyn ja oivaltavaan taulukkoon. Pikemminkin tämä joskus tallennetaan tekstinä skannattuun asiakirjaan. Asiakirjan sanat on sitten purettava yksitellen tekstimuotoillun tietosolun muodostamiseksi. Tämän tehtävän suorittaa Optical Character Recognition (OCR).
Kun luet tämän artikkelin sanoja, olipa kyse tekstistä tai numerosta, silmäsi pystyvät käsittelemään niitä tunnistamalla vaaleat ja tummat kuviot, joista muodostuu merkkejä (esim. kirjaimet, numerot, välimerkit jne.). Aivosi dekoodaavat sitten eri merkkien ja kuvioiden yhdistelmiä ymmärtääkseen sanojen merkityksen. Siinä mielessä silmäsi ja aivosi ovat kehittynein ja hienostunein OCR-moottori, jonka voit kuvitella, ja ne toimivat sinun edes huomaamatta sitä.
Tietokoneilla on samanlaiset ominaisuudet, mutta niiden on ratkaistava ratkaiseva rajoitus: silmien puuttuminen. Jos haluamme tietokoneiden näkevän ja lukevan fyysistä tekstidokumenttia, meidän on syötettävä graafinen tiedosto, joka on luotu joko optisella skannerilla tai digitaalikameralla. Mitä tulee tietokoneisiin, kummallakaan näistä vaihtoehdoista hankitun asiakirjan ja Eiffel-tornin valokuvan välillä ei ole eroa: molempia pidetään merkityksettöminä kokoelmana värillisiä neliöitä – tunnetaan myös pikseleinä – jotka muodostavat minkä tahansa tietokonegrafisen kuvan. Sellaisenaan jälkimmäinen on vain kuva tekstistä, jonka aiomme lukea, eikä itse tekstiä.
Tässä OCR voi olla hyödyllinen. Tämä tehokas tekniikka pystyy poimimaan painettua, kirjoitettua tai käsin kirjoitettua tietoa, olivatpa ne sitten laskuja, käyntikortteja, lakitekstejä tai tulosteita, ja muuntaa ne haettavaksi ja muokattavaksi digitaaliseen muotoon. Vaikka tekstintunnistusta on useiden vuosien ajan pidetty kalliina palveluna, johon vain harvoilla suurilla yrityksillä oli varaa, 2000-luvun puolivälistä alkaen sen kustannukset ovat asteittain laskeneet samalla kun sen tarkkuus ja ominaisuudet ovat kehittyneet tukemaan nykyään useita satoja kieliä ja merkkikoodausta. , UTF-8:sta GB2312:een.
Tekstin hakemisen ja kuvien poimimisen edut voivat olla korvaamattomia. Esimerkiksi laki- tai kirjanpitoalalla se voi säästää merkittävästi kustannuksia ja aikaa, koska se mahdollistaa tekstin osien tai numeroiden hakemisen artikkeleista tai tilinpäätöstiedoista muutamassa sekunnissa. Vertaamalla tätä prosessia kustannuksiin, jotka aiheutuvat ihmisryhmän palkkaamisesta lukemaan tuhansia asiakirjoja vain löytääkseen yhden tärkeän tiedon, saa käsityksen siitä, kuinka tekstintunnistus voi hyödyttää yrityksiä.
Viime aikoina OCR-tekniikka on käymässä hiljaista vallankumousta, kun tämän palvelun tarjoajat yhdistävät sen tekoälyyn. Sen seurauksena tietoja ei vain kerätä, se tehdään haettavaksi ja muokattavaksi, vaan tekoälyjärjestelmä itse asiassa ymmärtää sisältöä tiettyjen tehtävien suorittamiseksi. Esimerkiksi tekstin OCR-tunnistuksen jälkeen tekoäly voi tarjota sen käännöksen hermoston konekäännösten avulla ilman, että ihminen puuttuu asiaan. Toinen klassinen esimerkki tulee auditointiosiosta, jossa vilpilliset laskut voidaan tunnistaa pdf-dokumentin sisällön OCR-tarkistuksen jälkeen käyttämällä poikkeamien havaitsemistekniikoita. Ja niin edelleen. Tämä synergia yhdistää molempien maailmojen parhaat puolet prosessien virtaviivaistamiseksi ja yritysten ja asiakkaiden tuottavuuden lisäämiseksi.
Tässä artikkelissa kuvatussa käyttötapauksessa tekstintunnistusta käytetään kirjan tunnistamiseen ja sitten kirjan metatietojen hakemiseen Google-kirjojen arkistosta.
Tarkemmin sanottuna aiomme tarkastella:
- Kuinka OCR voidaan suorittaa KNIME Analytics -alusta.
- Kuinka voimme integroida KNIME:n OCR-prosessorin ja Google Books API:n kirjan metatietojen ja kannen hakemista varten.
OCR KNIME Analytics -alustalla
Tekstiä sisältävän kuvan tekstintunnistus KNIMEssä on erittäin helppo tehtävä. Kaikki mitä tarvitaan, on asentaa KNIME-kuvankäsittely — Tess4J-integraatio laajennus paikallisellasi KNIME Analytics -alusta, ja vedä ja pudota Tess4J solmu työnkulkueditoriin.
Tess4J-solmu integroi Tesseact OCR-kirjasto, yksi laajimmin käytetyistä ja tarkimmista avoimen lähdekoodin OCR-prosessoreista. Tesseract kehitettiin alun perin Hewlett-Packard Laboratoriesin omaksi ohjelmistoksi 1990-luvun alussa, ja myöhemmin se tehtiin avoimeksi lähdekoodiksi vuonna 2005. Google on sittemmin ottanut projektin käyttöön ja sponsoroinut sen kehitystä.
Tess4J-solmu toimii Tesseract 3:lla, joka toimii tunnistamalla merkkikuvioita kaksivaiheisessa menettelyssä.
- Ensimmäisellä kerralla moottori yrittää tunnistaa jokaisen yksittäisen hahmon. Sitten se välittää ensimmäisellä ajokerralla suurella varmuudella tunnistetut merkit adaptiiviselle luokittimelle harjoitustietoina. Tällä tavalla mukautuva luokitin voi oppia tunnistamaan myöhemmän tekstin tarkemmin.
- Saattaa kuitenkin käydä niin, että adaptiivinen luokittelija oppii hyödyllistä tietoa liian myöhään antaakseen merkityksellisen panoksen. Tämän ongelman ratkaisemiseksi ja adaptiivisen luokittelijan hankkiman tiedon hyödyntämiseksi moottori suorittaa toisen vaiheen, jossa merkit, joita ei tunnistettu tarpeeksi hyvin, tunnistetaan uudelleen [1].
Tesseract 3 käsittelee kaikki Unicode-merkit (koodattu UTF-8:lla) ja voi käsitellä tekstiä eri kielillä ja kirjoitusasettelulla: vasemmalta oikealle (esim. englanti, italia, venäjä jne.), oikealta vasemmalle (esim. arabia, heprea, urdu jne.) ja ylhäältä alas (esim. japani, korea, kiina jne.) [2].
Vastuuvapauslauseke. Mac-käyttäjät eivät tällä hetkellä voi käyttää Tess4J-solmua. KNIME-kehittäjät pyrkivät palauttamaan sujuvan toiminnan.
Käyttötapaus: Kirjan metatietojen ja kannen hakeminen
Nyt kun olemme saaneet perusymmärryksen OCR:n toiminnasta KNIME Analytics Platformissa, katsotaanpa mielenkiintoinen käyttötapaus. Oletetaan, että olemme keränneet kuvia, jotka havainnollistavat useiden kirjojen painosilmoituksia ja näiden tietojen avulla haluamme hakea kirjojen metatiedot ja kannet. Haettuja tietoja voitaisiin sitten käyttää esimerkiksi räätälöidyn digitaalisen kirjaston rakentamiseen ja kirjansuosittelujärjestelmän kouluttamiseen.
Kuvan 2 työnkulku kattaa kaikki vaiheet: kuvan lukemisesta, OCR:stä, tekstinkäsittelystä ja ISBN-viitteiden poimimisesta kirjan metatietoihin ja kansien hakuun ja visualisointiin. Katsotaanpa eri vaiheita yksityiskohtaisesti.
Kuva 2: Tämä työnkulku suorittaa yksinkertaisen OCR-tehtävän kirjapainosilmoituksille ja hakee kirjojen metatiedot ja kannet Google Books API:n avulla.
1 — Lue kuvatiedot
Ensimmäinen askel on tuoda kirjapainoksen ilmoituskuvat KNIMEen. Painosilmoitus on kirjan sivu, joka sisältää tietoja nykyisestä painoksesta, kuten tekijänoikeusilmoituksen, juridiset huomautukset, julkaisutiedot, painohistorian ja ISBN-koodin (Kuva 1).
Metanodi “Read image data” huolehtii siitä helposti ja ohjelmallisesti (kuva 3). Tunnistamme kuvatiedostojen tallennuspaikan kanssa Luettelo tiedostot/kansiot solmu ja käytä Kuvanlukija (taulukko) node tuodaksesi kuvat kauniisti. Image Reader (Taulukko) -solmussa meidän tarvitsee vain määrittää "File Input Column", eli sarake, jossa on polut tiedostoihin, joihin kuvamme on tallennettu. Kaikki muut asetukset voidaan jättää oletusasetuksiksi.
Kuvanlukija (taulukko) on osa KNINE kuvankäsittely laajennus, ja, kuten muut tämän laajennuksen solmut, se tarjoaa interaktiivisen näkymän, joka sisältää kuvan ja sen metatiedot, napsauttamalla solmua hiiren kakkospainikkeella, valitsemalla "Näytä: Kuvankatseluohjelma" ja kaksoisnapsauttamalla mitä tahansa kuvaa taulukkonäkymässä.
Kuva 3: "Lue kuvatiedot" -metanodin sisällä. Image Reader (taulukko) -solmu tuo kuvat työnkulkuun ja antaa meille mahdollisuuden tutkia niitä interaktiivisesti sen näkymässä.
2 — OCR
Kirjapainosilmoitusten kuvatiedostot luettuamme voimme tunnistaa ne.
Tess4J-solmun konfigurointi on hyvin yksinkertainen ja vaatii vain muutaman napsautuksen (kuva 4). Vuonna Asetukset -välilehdellä, solmu tarjoaa mahdollisuuden korjata minkä tahansa käännöksen tai vinon kuvan valitsemalla asetusikkunan "Esikäsittely" -osiossa "Deskew input images" -ruudun. Yleensä on suositeltavaa tehdä niin, koska grafiikkatiedostoja ei ehkä ole kohdistettu oikein. Lisäksi Tess4J-solmu tuottaa automaattisesti binaarisen kuvan konepellin taakse.
Seuraavaksi valitsemme "Tessdata Path". Oletuksena tämä on "Käytä sisäistä", jolloin voimme sitten valita käsiteltävän tekstin kielen. Tässä kokoonpanossa englanti on oletuskieli, mutta Tess4J-solmu tukee muita luonnollisia kieliä, kuten tanska, italia, espanja, venäjä, kreikka, slovakki, saksa ja ranska. On syytä mainita, että valitsemalla "Käytä ulkoista" voimme laajentaa Tess4J-solmun ominaisuuksia sisältämään kieliä, joita ei tueta sisäisesti. Voimme todellakin valita omia, ulkoisesti koulutettuja tietokielimallejamme määrittämällä hakemiston, johon ne on tallennettu. Valitsemme "Käytä sisäistä", koska luotamme mieluummin Tess4J:n sisäisiin malleihin englanninkielisissä asiakirjoissamme.
"Tunnistamisen määritys" -osiosta löydät kaksi tärkeintä pudotusvalikon kokoonpanoa, nimittäin "Sivun segmentointitila" ja "OCR-moottoritila". Ensimmäinen määrittää, kuinka sivumme segmentoidaan.
Kuvassa 4 valitsemme "Full Auto Pageseg", joka varmistaa täysin automaattisen sivun segmentoinnin. Käytettävästä käyttötapauksesta riippuen toisen tilan valitseminen 13:sta käytettävissä olevasta (esim. "Yksi sarake" tai "Harva teksti") saattaa olla sopivampi vaihtoehto.
Toinen asetus pyytää meitä valitsemaan OCR-moottorin. Täällä valitsemme "Vain Tesseract", joka varmistaa nopeimman suorituskyvyn. Muita vaihtoehtoja ovat "Cube Only" - vaihtoehtoinen tunnistustila Tesseractille - joka on hitaampi, mutta tuottaa usein parempia tuloksia; tai "Tesseract And Cube", joka yhdistää molempien maailmojen parhaat puolet. Yhden tai toisen moottorin valinta riippuu suuresti kuvan laadusta ja käsiteltävän tekstin monimutkaisuudesta.
Perusasetusten lisäksi Tess4J-solmu tarjoaa Advanced Config -välilehti, jossa voimme määrittää joukon ohjausparametreja. Tämä välilehti tekee solmusta erittäin joustavan ja auttaa kokeneita käyttäjiä räätälöimään ja hienosäätämään Tesseract OCR -moottorin erityistarpeisiinsa. Älä kuitenkaan huoli, useimmissa tapauksissa peruskokoonpanot vievät sinut pitkälle!
Kuva 4: Tess4J-solmun määritysikkuna.
Sen lisäksi, että Tess4J-solmun konfiguraatiot säädellään kulloiseenkin käyttötapaukseen, on hyvä käytäntö esikäsitellä syötetyt kuvat perusteellisesti tarvittaessa. Erityisesti Tesseract toimii parhaiten, kun kuvat on skaalattu riittävästi siten, että merkkien x-korkeuden pikselimäärä on vähintään 20 pikseliä; kuvat on kohdistettu oikein ja niiden resoluutio on riittävän korkea; ja kaikki tummat reunat poistetaan, tai ne voidaan tulkita väärin merkeiksi [3]. The KNINE kuvankäsittely laajennus sisältää useita solmuja kuvan puhdistamista, käsittelyä ja muuntamista varten ja monia esimerkkityönkulkuja löytyy sen KNIME-keskitin.
Tess4J-solmun tulos on taulukko, joka sisältää poimitun tekstin String-tietotyyppinä, ja sellaisena sitä voidaan etsiä ja muokata.
3 — Tekstinkäsittely ISBN-poimintaa varten
Kun kuvat on OCR-tarkistettu, niiden sisältämää tekstiä voidaan vihdoin käyttää ja hyödyllistä tietoa voidaan hakea.
Erityisesti painosilmoituksissa ilmoitetaan yleensä kirjalle annettu ISBN-koodi. ISBN-koodi on yksilöllinen, 13-numeroinen (ennen vuotta 10 se oli 2007-numeroinen) kaupallisen kirjan tunniste, ja sellaisena se on liitetty jokaiseen julkaisun erilliseen painokseen ja muunnelmaan. Poimimalla ISBN-koodin voimme viitata jokaiseen kirjaan yksiselitteisesti, kun haluamme hakea metatietoa. Tämän saavuttamiseksi voimme luottaa mukana oleviin solmuihin KNIME — Tekstinkäsittely laajennus, joista joitain käytetään "ISBN-poisto"-metanodissa (kuva 5).
"Tekstin puhdistus" -metanodissa aloitamme muuntamalla OCRed-tekstin merkkijonosta asiakirjan tietotyypiksi. Seuraavaksi muunnamme tekstin pieniksi kirjaimiksi, poistamme välimerkit, välilyönnit, väliviivat ja korvaamme kirjaimet "o" "0":lla (nollat) korjataksemme ISBN-koodien väärin tunnistetut merkit.
Poimimme ISBN-koodit eristämällä 13 merkkiä, jotka seuraavat merkkijonoa "isbn", ja käytämme Sääntömoottori solmu tarkistaaksesi, että poimitut merkit eivät sisällä puuttuvia arvoja ja ovatko niiden odotettu pituus 13 merkkiä. Hyödynnämme sitten tämän solmun kykyä liittää sarakkeen, joka merkitsee onnistuneen purkamisen arvoksi 1 ja epäonnistuneen purkamisen arvoksi 0.
Kuva 5: "ISBN-poiminnan" metanodin sisällä.
4 — Metatietojen haku ja visualisointi
Viimeisessä vaiheessa käytämme ISBN-koodeja kirjojen metatietojen ja kansien noutamiseen Google-kirjojen sovellusliittymästä. "Hae kirjan metatiedot ja kannet" -metanodi huolehtii tästä (kuva 6). Metatietojen haku on kuitenkin mahdollista vain, jos ISBN-koodit on purettu onnistuneesti. Varmistaaksemme onnistuneen/epäonnistuneen ISBN-poiminnan sujuvan käsittelyn sisällytämme siihen useita työnkulun ohjaussolmuja. Löydät oivaltavan yleiskatsauksen Huijauslehti: ohjaus ja orkestrointi KNIME Analytics -alustan avulla.
Jos ISBN-koodi puretaan onnistuneesti, käytämme HAE Pyyntö solmu, johon GET-pyyntö lähetetään Google-kirjojen sovellusliittymä, Googlen tarjoama ilmainen RESTful-verkkopalvelu, joka mahdollistaa useiden metatietojen, kuten kirjan nimen, alaotsikon, kirjoittajien, julkaisupäivän, kuvauksen, sivumäärän, kielen, keskiarvosanan, arvioiden lukumäärän ja kannen, hakemisen. Lisäksi tämä RESTful-verkkopalvelu ei vaadi kehittäjätilin luomista. GET Request -solmun konfigurointi on hyvin yksinkertaista. Se vaatii yksinkertaisen merkityksellisen "URL-sarakkeen" valinnan, jonka rakennamme Merkkijono manipulointi solmu liittymällä Google-kirjojen sovellusliittymän URL-osoite kunkin painoksen ilmoituksen ISBN-koodilla. Kaikki muut asetukset voidaan jättää oletusasetuksiksi.
Sen jälkeen jäsennämme GET Request -solmun JSON-ulostulon käyttämällä JSON-polku solmu ja yhdistä poimitut metatiedot kirjojen kansiin ennen lopullisten tulosten keräämistä.
Lopuksi luomme "Visualisoi kirjan metatiedot ja kannet" -komponentin haettujen kirjojen metatietojen ja kansien siistiä visualisointia varten.
Käärimme komponenttiin Interaktiivinen alueen liukusäätimen suodatinwidget solmu, joka mahdollistaa dynaamisen kirjojen suodatuksen, joka perustuu Google-kirjojen lukijoiden keskimääräiseen arvosanaan (0-kauhea; 5-fantastic), ja Laatanäkymä solmu näyttää tulokset.
Komponentti hankkii sitten näkymän, jossa on liukusäädin, jonka avulla voit valita kirjat keskimääräisen luokituksen perusteella ja taulukon, jossa on valittujen kirjojen kannet ja kuvaukset. Tätä artikkelia varten olemme valinneet poimia kirjoja, joiden arvosanat ovat 3–5, ja tulokset näkyvät kuvassa 6.
Kuva 6: Haettu metatiedot ja kirjojen kannet kirjoille, joiden luokitus on yli 3.
Yhteenveto
Tässä artikkelissa olemme havainnollistaneet, kuinka tekstintunnistus voidaan suorittaa helposti KNIME Analytics -alustalla. Tätä tarkoitusta varten olemme esitelleet Tess4J-solmun ja toimittaneet yksityiskohtia Tesseract OCR -kirjaston toiminnasta, johon tämä solmu perustuu.
Lisäksi olemme osoittaneet yksinkertaisen käyttötapauksen, jossa OCR voi olla tehokas ja hyödyllinen resurssi. Olemme poimineet tietoja kirjojen painosilmoituksista – erityisesti ISBN-koodeista – lähettääksemme GET-pyynnön Google-kirjojen RESTful-verkkopalveluun. Tämän ansiosta olemme voineet hakea kirjojen metatiedot ja kannet.
KNIME:n avulla kuvien tekstintunnistus on yhtä helppoa kuin ABC. Kokeile itse! Mikä on OCR-käyttötapasi?
Tässä artikkelissa esitetty työnkulku voidaan ladata ilmaiseksi osoitteesta KNIME-keskitin.
Viitteet
[1] Smith, R. (2007). "Yleiskatsaus Tesseractin OCR-moottoriin". Yhdeksäs kansainvälinen asiakirja-analyysin ja tunnustamisen konferenssi (ICDAR 2007), s. 629–633. Saatavilla osoitteessa:
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/33418.pdf
[Haettu: 15.07.2021].
[2] Tesseract OCR -projekti GitHubissa — https://github.com/tesseract-ocr/tesseract
[3] Tesseractin OCR-dokumentaatio GitHubissa — https://tesseract-ocr.github.io/tessdoc/
Roberto Cadili on KNIME:n datatieteilijä, NLP-harrastaja ja historian ystävä. Editor for Low Code for Advanced Data Science.
Lada Rudnitckaia on KNIME: n datatieteilijä.
Kuten ensimmäisen kerran julkaistiin vuonna Low Code for Advanced Data Science.
Alkuperäinen. Postitettu luvalla.
Related:
Lähde: https://www.kdnuggets.com/2021/11/book-metadata-cover-retrieval-ocr-google-books-api.html
- "
- &
- 2021
- Tili
- kirjanpito
- AI
- Kaikki
- analyysi
- Analytics
- api
- artikkeli
- artikkelit
- Tekijät
- auto
- PARAS
- Kirjat
- Laatikko
- rakentaa
- liiketoiminta
- yritykset
- joka
- Ura
- tapauksissa
- hahmon tunnistaminen
- kiinalainen
- luokittelu
- Siivous
- asiakkaat
- koodi
- Kerääminen
- Sarake
- kaupallinen
- Yritykset
- komponentti
- tietokoneet
- Konferenssi
- luottamus
- Konfigurointi
- pitoisuus
- tekijänoikeus
- Nykyinen
- kojelauta
- tiedot
- tietojenkäsittely
- tietojen tutkija
- yksityiskohta
- Detection
- Kehittäjä
- kehittäjille
- Kehitys
- digitaalinen
- asiakirjat
- Pudota
- Varhainen
- toimittaja
- insinööri
- Englanti
- jne.
- teloitus
- Laajentaa
- Käyttää hyväkseen
- uuttaminen
- Kuva
- Vihdoin
- taloudellinen
- Etunimi
- seurata
- muoto
- muoto
- Ilmainen
- Ranskan
- GitHub
- hyvä
- Ryhmä
- Käsittely
- kätevä
- tätä
- Korkea
- Palkkaaminen
- historia
- hotellit
- Miten
- Miten
- HTTPS
- ajatus
- tunnistaa
- kuva
- Mukaan lukien
- Tulo
- Kasvaa
- teollisuus
- tiedot
- vuorovaikutteinen
- kansainvälisesti
- IT
- yhdistää
- tuntemus
- Korean
- tarrat
- Kieli
- kielet
- suuri
- OPPIA
- oppiminen
- juridinen
- Vaikutusvalta
- Kirjasto
- valo
- Lista
- sijainti
- Pitkät
- koneoppiminen
- konekäännös
- Manipulointi
- keskikokoinen
- nimittäin
- Siisti
- hermo-
- NLP
- solmut
- numerot
- OCR
- Tarjoukset
- avata
- avoimen lähdekoodin
- optinen hahmon tunnistus
- Vaihtoehto
- Vaihtoehdot
- Muut
- Ihmiset
- fyysinen
- kuva
- pixel
- foorumi
- tuottavuus
- projekti
- Python
- laatu
- alue
- arviot
- raaka
- raakadata
- lukija
- lukijoita
- Lukeminen
- raportti
- resurssi
- tulokset
- tiede
- Haku
- valittu
- tunne
- setti
- asetus
- Yksinkertainen
- So
- Tuotteemme
- SOLVE
- Espanjan
- Sponsored
- Alkaa
- tarinat
- onnistunut
- tuki
- Tuetut
- Tukee
- järjestelmä
- tekniikat
- Elektroniikka
- Tesseract
- aika
- ylin
- koulutus
- Muutos
- muuttamassa
- Kääntäminen
- Unicode
- us
- Käyttäjät
- Näytä
- visualisointi
- verkko
- Mikä on
- sanoja
- Referenssit
- työnkulku
- toimii
- arvoinen
- kirjoittaminen
- X
- vuotta