Generatiivinen tiedustelu

Pura taulukot PDF-tiedostosta – Python-koodin opetusohjelma

Treffi:

Tämä blogi toimii lähtökohtana kaikille, jotka haluavat poimia taulukoita PDF-tiedostoista ja kuvista. Aloitamme python-koodin opetusohjelmalla, joka opastaa sinut OCR:n käyttöönottoprosessin läpi PDF-tiedostoissa ja kuvissa tunnistaaksesi ja purkaaksesi taulukoita jäsennellyissä muodoissa (luettelo, json-objekti, pandas-tietokehys). Tämän jälkeen tarkastelemme kooditonta alustaa automaattista taulukkojen purkamista varten ja tutkimme sitten muutamia taulukonpoimintatyökaluja, jotka ovat saatavilla ilmaiseksi verkossa.

esittely

PDF-dokumenttien kokonaismäärän maailmassa arvioidaan ylittäneen 3 biljoonaa. Näiden asiakirjojen hyväksymisen voidaan katsoa johtuvan niiden luontaisesta luonteesta olla riippumattomia alustoista, jolloin niillä on johdonmukainen ja luotettava renderöintikokemus eri ympäristöissä.

Joka päivä syntyy monia tapauksia, joissa PDF-tiedostoista on luettava ja poimittava tekstiä ja taulukkotietoja. Ihmiset ja organisaatiot, jotka perinteisesti tekivät tämän manuaalisesti, ovat alkaneet etsiä teknisiä vaihtoehtoja, jotka voivat korvata manuaalisen työn tekoälyllä.

OCR on lyhenne sanoista Optical Character Recognition, ja se käyttää tekoälyä muuntaakseen painetun tai käsin kirjoitetun tekstin kuvan koneellisesti luettavaksi tekstiksi. Nykyään on olemassa erilaisia ​​avoimen lähdekoodin ja suljetun lähdekoodin OCR-moottoreita. On huomattava, että usein työ ei ole valmis sen jälkeen, kun OCR on lukenut asiakirjan ja antanut tulosteen, joka koostuu tekstivirrasta, ja sen päälle rakennetaan teknologiakerroksia, jotka käyttävät nyt koneellisesti luettavaa tekstiä ja poimivat asiaankuuluvat attribuutit. jäsennelty muoto.

Käytämme alla olevaa laskua taulukon purkamiseen. Tavoitteena on lukea laskun PDF-tiedostosta kunkin tuotteen määrä, kuvaus, yksikköhinta, määrä taulukkomuodossa.

lasku.pdf

Aloitetaan.

Edellytykset

Tiedoston käsittelyyn ja taulukon purkamiseen tarvittava OCR käsitellään Nanonets API:n API-kutsulla.

Jotta voimme tehdä API-kutsun ja saada purettuja taulukoita pdf-tiedostosta, tarvitsemme pyynnöt kirjasto. Jälkikäsittelykoodille, joka muuntaa API-vastauksen tietokehysluetteloksi, tarvitsemme pandas ja numpy kirjasto. Voit asentaa ne python-ympäristöösi pip:n avulla.

pip install requests pandas numpy

Saat ensimmäisen ennusteen suorittamalla alla olevan koodinpätkän. Sinun on lisättävä API_KEY ja MODEL_ID todentaaksesi itsesi.

Saat ilmaisen API_KEY:n ja MODEL_ID:n kirjautumalla sisään https://app.nanonets.com/#/signup?redirect=tools.

Kun olet valmis, suorita koodinpätkän alapuolella.

import requests url = 'https://app.nanonets.com/api/v2/OCR/Model/REPLACE_MODEL_ID/LabelFile/?async=false' data = {'file': open('invoice.png', 'rb')} response = requests.post(url, auth=requests.auth.HTTPBasicAuth('REPLACE_API_KEY', ''), files=data)

Saamme alla olevan lähdön.

- result objekti sisältää joukon sivukohtaisia ​​tulosobjekteja. Jokainen esine sisältää prediction objekti, jonka kaikki havaitut taulukot ovat taulukkoelementtejä. Jokaisella havaitulla taulukolla on sitten taulukko nimeltään cells, joka on joukko havaitun taulukon kaikista soluista. Rivi, sarake ja havaittu alkuperäinen teksti on läsnä muodossa row, col, ocr_text jokaisen soluobjektin attribuutti cells.

Suoritamme nyt jonkin verran jälkikäsittelyä json-vastauksen muuttamiseksi panda-tietokehyksiksi. Kun olet saanut yllä olevan API-vastauksen, voit suorittaa alla olevan koodinpätkän saadaksesi luettelon tietokehyksistä, jotka sisältävät havaitut taulukot.

import pandas as pd
import numpy as np alldfs = []
for item in response.json()["result"]: tables = [] dfs = [] for pred in item['prediction']: if pred['type'] == 'table': labels = ['none'] * 100 maxcol = 0 for cell in pred['cells']: if labels[cell['col'] - 1] == 'none': labels[cell['col'] - 1] = cell['label'] if cell['col'] > maxcol: maxcol = cell['col'] labels = labels[:maxcol] df = pd.DataFrame(index=np.arange(100), columns=np.arange(100)) for cell in pred['cells']: df[cell['col']][cell['row']] = cell['text'] df=df.dropna(axis=0,how='all') df=df.dropna(axis=1,how='all') df.columns = labels tables.append(df) alldfs.append(tables)

Tämän suorittamisen jälkeen alldfs objekti on luettelo, jossa jokainen luettelon objekti sisältää ennusteita asiakirjan jokaiselle sivulle. Lisäksi jokainen tällainen objekti on itse luettelo tietokehyksistä, joka sisältää kaikki kyseisen sivun taulukot.

Näemme, että laskun pdf:ssä olevat kaksi taulukkoa on havaittu ja tallennettu tietokehyksiksi ensimmäiselle sivulle alldfs[0], ja kahteen pöytään pääsee osoitteessa alldfs[0][0] ja alldfs[0][1].

Näin ollen olemme suorittaneet OCR:n ensimmäiselle PDF-tiedostollemme ja poimineet siitä taulukot. Tutkimme json-vastetta ja suoritimme jälkikäsittelyn käyttämällä pandaa ja numpya saadaksemme tiedot halutussa muodossa. Voit myös käyttää omaa jälkikäsittelyäsi käsitelläksesi ja käyttääksesi tietoja json-vastauksesta käyttötapauksesi mukaan.

Tarjoamme myös koodittoman alustan Nanoents API:n ohella lisätuella rivikohdille, automatisoidulle tuonnille ja viennille suosituista ERP:istä / ohjelmistoista / tietokannoista, puitteet hyväksymis- ja validointisääntöjen määrittämiseen ja paljon muuta.


Yksi tekoälyasiantuntijamme voi soittaa 15 minuutin puheluun keskustellakseen käyttötapauksestasi, antaakseen sinulle henkilökohtaisen esittelyn ja löytääkseen sinulle parhaan suunnitelman.


Tee enemmän – Poimi rivikohdat ja tasaiset kentät

Voit laajentaa Nanonets OCR:n toimintoja tunnistamaan tasaiset kentät ja rivikohdat sekä taulukot pdf-tiedostoista ja kuvista. Sinä pystyt kouluta oma mallisi 15 minuutissa havaita minkä tahansa rivikohdan tai tasaisen kentän kuvassa tai pdf-tiedostossa. Nanonets tarjoaa myös valmiita malleja, joihin on lisätty rivikohtatuki suosituille asiakirjatyypeille, kuten laskuille, kuiteille, ajokorteille, henkilökorteille, ansioluetteloille jne.

Näin ollen mukautetun mallin luominen tai jonkin valmiiksi rakennetuista malleistamme voit havaita ja poimia rivikohtia, tasaisia ​​kenttiä ja taulukoita yhdessä API-kutsussa.

Otetaan esimerkki yllä olevasta laskusta. Tavoitteena on nyt havaita tasaiset kentät, kuten myyjän nimi, myyjän osoite, puhelinnumero, sähköpostiosoite, kokonaissumma sekä taulukot laskun pdf-tiedostosta Nanonets OCR:n avulla.

Voit mennä https://app.nanonets.com ja kloonaa esikoulutettu laskutositetyyppimalli.

Kun olet valmis, navigoi kohti yhdistää -osio vasemmassa siirtymisruudussa, joka tarjoaa käyttövalmiita koodinpätkiä rivikohtien, tasaisten kenttien ja taulukoiden poimimiseen Nanonets API:n avulla.

Suorittamalla yllä olevan koodinpätkän laskutiedostossamme voimme havaita rivikohdat sekä taulukot API-kutsussa.

Voit myös käyttää online-alustaamme automatisoidun työnkulun luomiseen ja rivikohtien ja taulukoiden poimimiseen PDF-tiedostoista ja kuvista, ulkoisten integraatioiden määrittämiseen suosittujen ERP-/ohjelmisto-/tietokantojen kanssa sekä hyväksymis- ja vahvistussääntöjen määrittäminen.


Yksi tekoälyasiantuntijamme voi soittaa 15 minuutin puheluun keskustellakseen käyttötapauksestasi, antaakseen sinulle henkilökohtaisen esittelyn ja löytääkseen sinulle parhaan suunnitelman.


Tarjoamme taulukoiden purkamista verkkoalustallamme sekä Nanonets API:n kautta. Kun Nanonets-tilisi on valmis, voit käyttää alustaa sovellusliittymän sijaan taulukoiden poimimiseen asiakirjoistasi.

Voit määrittää työnkulkusi täällä. Tarjoamme valmiita integraatioita useiden suosittujen ERP/ohjelmistojen/tietokantojen kanssa.

  • automaattinen tuonti ja vienti ERP/ohjelmisto/tietokanta
  • määritä automaattiset hyväksymis- ja vahvistussäännöt
  • määritä jälkikäsittely purkamisen jälkeen

Yksi tekoälyasiantuntijamme voi soittaa 15 minuutin puheluun keskustellakseen käyttötapauksestasi, antaakseen sinulle henkilökohtaisen esittelyn ja löytääkseen sinulle parhaan suunnitelman.


On olemassa joukko ilmaisia ​​online-OCR-työkaluja, joita voidaan käyttää OCR:n suorittamiseen ja taulukoiden poimimiseen verkossa. Se on yksinkertaisesti kysymys syötetiedostojen lataamisesta, odottamisesta, että työkalu käsittelee ja antaa tulosteen, ja sitten ladata tuloste vaaditussa muodossa.

Tässä on luettelo tarjoamistamme ilmaisista online-OCR-työkaluista -

Onko sinulla yrityksen OCR / älykäs asiakirjakäsittely käyttötapaus ? Kokeile Nanonetsia

Tarjoamme eri käyttötapauksiin räätälöityjä OCR- ja IDP-ratkaisuja – ostoreskontraautomaatio, laskuautomaatio, myyntisaatavien automaatio, kuitti/henkilökortti/DL/passi-OCR, kirjanpitoohjelmistointegraatiot, BPO-automaatio, taulukoiden purku, PDF-poiminta ja paljon muuta. Tutustu tuotteisiimme ja ratkaisuihimme käyttämällä sivun oikeassa yläkulmassa olevia avattavia valikoita.

Oletetaan esimerkiksi, että sinulla on suuri määrä laskuja, jotka luodaan joka päivä. Nanonetsin avulla voit ladata nämä kuvat ja opettaa omalle mallillesi, mitä etsiä. Esimerkiksi: Laskuissa voit rakentaa mallin tuotteiden nimien ja hintojen poimimiseksi. Kun merkinnät on tehty ja mallinne on rakennettu, sen integrointi on yhtä helppoa kuin kahden koodirivin kopioiminen.

Tässä on muutamia syitä, miksi sinun kannattaa harkita Nanonetsin käyttöä -

  1. Nanonetsin avulla on helppoa poimia tekstiä, jäsentää olennaiset tiedot vaadituiksi kenttiin ja hylätä kuvasta poimitut merkityksettömät tiedot.
  2. Toimii hyvin useilla kielillä
  3. Suorittaa hyvin tekstiä luonnossa
  4. Harjoittele omia tietojasi, jotta ne sopivat käyttötarkoitukseesi
  5. Nanonets OCR API:n avulla voit kouluttaa mallejasi helposti uusilla tiedoilla, jotta voit automatisoida toimintasi missä tahansa nopeammin.
  6. Sisäistä kehittäjien tiimiä ei tarvita

Vierailla Nanonetit yritysten OCR- ja IDP-ratkaisuihin.

Luo tili aloittaaksesi ilmaisen kokeilun.

spot_img

Uusin älykkyys

spot_img