Cum se exportă din PDF în Excel

Nodul sursă: 807929

Acest blog este un ghid cuprinzător despre exportul de informații din PDF-uri scanate în Excel

Explozia de informații și utilizarea PDF-urilor

Informațiile sunt peste tot. Conform statisticilor, mai mult de 1.7 MB de date sunt create în fiecare secundă în anul 2020. Dacă această tendință continuă, am avea 463 exaocteți de date până la sfârșitul lui 2025. Aceste date pot fi orice, să zicem, informațiile colectate de către mașini cu conducere autonomă, documente legate de companie, e-mailuri, fotografii etc. Dintre acestea, pentru a stoca date legate de text, PDF-urile sunt cel mai frecvent utilizate. Câteva exemple comune de PDF-uri includ cărți, facturi, formulare fiscale, informații logistice și multe altele.

Dar există o problemă aici! Mulți oameni consideră că este confuz să analizeze sau să extragă informații importante din documente PDF; prin urmare, ei găsesc modalități de a migra datele din documente în date tabelare (mai ales foi Excel) pentru a utiliza informațiile și a scoate la iveală informații semnificative. În această coloană, vom afla cum exportăm informații PDF în foi Excel prin diferite tehnici. De asemenea, vom analiza modul în care OCR și Deep Learning ne pot ajuta să automatizăm întregul proces de extragere a informațiilor din PDF-uri.

Înainte de a începe, iată o scurtă prezentare a postării:


Problema conversiei PDF-urilor în Excel

PDF-urile sunt de obicei unul dintre cele mai lizibile formate pentru vizualizarea datelor. Dar convertirea lor în foi Excel este o sarcină greu de realizat deoarece:

  • Avem nevoie de un format cu primitive simple și fără informații structurate
  • Nu există un echivalent al unei componente de tabel în fișierele PDF, deoarece tabelele sunt create cu linii drepte și fundaluri colorate
  • Deoarece tabelele din PDF-uri sunt desenate ca imagini, detectarea unui tabel este un proces complex: – Înțelegem șabloanele în termeni de forme, poziția textului, relația dintre linii și text etc.
  • PDF-urile create prin imagine digitală sau prin scanarea unui fișier tipărit au linii distorsionate și nu au elemente de text

Întregul efort pare disperat, dar după cum vom vedea, uneori putem extrage informații și din aceste fișiere PDF.

Privind problemele de mai sus, există două tipuri de PDF-uri care conțin tabele:

  1. Tabele cu date textuale (generate electronic)
  2. Tabele cu imagini scanate (generate neelectronic)
PDF-uri scanate cu rezoluție scăzută/dezorientate (neelectronic)

Doriți să exportați informații din PDF-uri scanate în foi Excel? Du-te la Nanoneți pentru a automatiza procesul de export din PDF-uri în Excel...


Cum funcționează exportul PDF scanat în Excel?

Fișierele PDF sunt destinate exclusiv vizualizarii datelor și nu manipulării acestora. Prin urmare, exportul datelor PDF în foi Excel este una dintre cele mai obositoare și complicate sarcini.

Majoritatea utilizatorilor sau dezvoltatorilor încep prin a naviga prin unele dintre instrumentele online disponibile pentru a efectua această sarcină. Dar nu sunt suficient de precise sau capabile să analizeze formate PDF complexe. De asemenea, aceste instrumente nu sunt gratuite și sunt limitate la utilizarea zilnică sau lunară.

Pentru a înțelege funcționarea mutării PDF-urilor în Excel, va trebui mai întâi să verificăm dacă PDF-urile sunt realizate electronic sau nu. Când PDF-urile sunt generate electronic, exportul PDF în Excel este destul de simplu. Aceasta implică exportul datelor într-un document Word și apoi copierea lor într-un registru de lucru Excel. În al doilea caz, când PDF-urile nu sunt generate electronic (să spunem dacă sunt capturate prin telefoane sau descărcate de pe e-mail), procesul este destul de complicat. Mai jos este o prezentare detaliată a modului în care funcționează procesul de export:

  • În primul rând, convertoarele PDF în Word/Excel/Direct Text sunt folosite pentru a copia informațiile de care avem nevoie. În acest caz, rezultatul este adesea dezordonat dacă PDF-urile urmează orice șabloane sau dacă există tabele.
  • Motorul OCR (Optical Character Recognition) este folosit pentru a citi PDF-ul și apoi pentru a copia conținutul acestuia într-un format diferit, de obicei text simplu. Calitatea variază între motoarele OCR și adesea licențele nu sunt gratuite. Ai putea întotdeauna să optezi pentru Tesseract OCR gratuit și open-source, dar necesită anumite cunoștințe de programare.
  • Este necesară o programare suplimentară pentru a procesa textul în formatul necesar sau pentru a le stoca în format tabelar. Dacă sunteți dezvoltator și sunteți familiarizat cu codarea, puteți utiliza PDFMiner (bazat pe Python) sau TIka (bazat pe Java).
  • În cele din urmă, va trebui să scriem fragmente de cod pentru a trimite datele formatate în Excel sau pentru a configura API-uri online dacă folosim Foi de calcul Google.

Metode de detectare a tabelelor în PDF-uri textuale

Acum, să începem prin a discuta despre metodele de extragere a tabelelor din PDF-uri atunci când acestea sunt realizate electronic. Pentru a îndeplini această sarcină, avem două tehnici: Stream și Lattice. Aceste tehnici au fost mai întâi dezvăluite și îmbunătățite prin instrumente precum Camelot și Cataloga. De asemenea, vom analiza câteva dintre exemplele folosind aceste instrumente și le vom vedea în acțiune în secțiunile ulterioare.

Detectarea tabelelor utilizând fluxul:

Această tehnică este utilizată pentru a analiza tabele care au spații albe între celule pentru a simula o structură de tabel. Practic, identificarea locului în care textul nu este prezent. Este construit pe baza funcționalității PDFMiner de grupare a caracterelor dintr-o pagină în cuvinte și propoziții folosind margini.

Mai jos este o explicație rapidă a modului în care funcționează această tehnică:

  1. În primul rând, rândurile sunt detectate făcând presupuneri brute bazate pe poziția axei y (adică, înălțimea) a unui text. Practic, tot textul de pe aceeași linie este considerat parte a aceluiași rând. Pentru a citi mai multe despre asta, puteți parcurge  Teza de master a lui Anssi Nurminen despre găsirea locațiilor tabelelor în PDF-uri.
  2. În continuare, textul este grupat în coloane pe baza unor euristici. Într-un PDF, fiecare cuvânt se află în propria sa poziție, deci practic, cuvintele sunt puse în același grup dacă sunt aproape, iar apoi sunt identificate coloane în funcție de distanța dintre grupurile de cuvinte.
  3. În cele din urmă, tabelul este alcătuit pe baza rândurilor și coloanelor detectate la pașii anteriori.

Detectarea tabelelor utilizând zăbrele:

În comparație cu tehnica fluxului, Lattice este de natură mai deterministă. Înseamnă că nu se bazează pe presupuneri; mai întâi parsează tabelele care au linii definite între celule. Apoi, poate analiza automat mai multe tabele prezente pe o pagină.

Această tehnică funcționează în esență prin examinarea formei poligoanelor și identificarea textului din interiorul celulelor tabelului. Acest lucru ar fi simplu dacă un PDF are o caracteristică care poate identifica poligoane. Dacă ar fi avut-o, ar avea în mod plauzibil o metodă de a citi ceea ce se află în interiorul ei. Cu toate acestea, nu. Aici va trebui să folosim o bibliotecă de viziune computerizată precum OpenCV pentru a efectua aproximativ următorii pași:

  1. În primul rând, sunt detectate segmentele de linie
  2. În continuare, intersecțiile liniilor dintre linii sunt detectate analizând intensitatea pixelilor tuturor liniilor. Dacă un pixel al unei linii are mai multă intensitate decât restul pixelului, acesta face parte din două linii și, prin urmare, este o intersecție. După cum se arată în figura 2.
  3. Marginile tabelului sunt determinate prin analizarea intensității pixelilor liniilor intersectate. Aici sunt luați toți pixelii unei linii, iar cele mai externe linii reprezintă limitele tabelului
  4. Analiza imaginii este tradusă în coordonatele PDF, unde sunt determinate celulele. În cele din urmă, textul este atribuit unei celule pe baza acesteia x și y coordonate.

Doriți să exportați informații din PDF-uri scanate în foi Excel? Du-te la Nanoneți pentru a automatiza procesul de export din PDF-uri în Excel...


Metode de detectare a tabelelor din PDF-urile scanate

Ar putea părea imposibil să identifici tabelele din imaginile scanate. Acest lucru se datorează faptului că nu vom găsi niciun text prezent electronic într-o imagine; deci nu poate exista nici o masă. Aici va trebui să folosim OCR și tehnici de deep learning pentru a detecta tabelele și a extrage tot textul din interiorul lor. Acum, să ne uităm la câteva tehnici care extrag tabele din PDF-uri care au informații scanate.

Identificarea tabelelor cu Python și Computer Vision

Computer Vision (CV) este o tehnologie care antrenează computerele să interpreteze și să înțeleagă lumea vizuală. În cazul nostru de extragere a tabelelor din PDF-uri, vom folosi CV-ul pentru a ne ajuta să găsim marginile, marginile și celulele pentru a identifica tabelele. Acest lucru se realizează prin aplicarea diferitelor filtre, contururi și unele operații matematice la un fișier PDF. Cu toate acestea, aceste tehnici includ câțiva pași de pre-procesare a datelor pentru a fi efectuate cu acuratețe.

Acum, să ne scufundăm de fapt în codul python de bază pentru a detecta tabelele din PDF-urile scanate. Luați în considerare că avem un fișier PDF și dorim să-l salvăm într-o foaie Excel. Putem extrage text normal cu OCR, dar pentru a identifica tabelele, va trebui să folosim CV.

Primul pas pe care va trebui să-l facem este să convertim PDF-ul în imagini, iar acest lucru se datorează faptului că majoritatea algoritmilor CV sunt implementați pe imagini. Deoarece imaginile pot fi transformate într-o serie de numere, putem găsi asemănări între aceste numere și ne dăm seama unde se află exact tabelele și textul. Mai jos este fragmentul de cod:

from pdf2image import convert_from_path # convert pdf file to image
images = convert_from_path('example.pdf')
for i in range(len(images)): # Save pages as images in the pdf images[i].save('page'+ str(i) +'.png, 'PNG')

Să zicem, prima noastră pagină este numită page_1, va trebui mai întâi să-l încărcăm într-o variabilă python și apoi să aplicăm toate operațiile care ne ajută să identificăm caracteristicile tabelului. Mai jos este fragmentul de cod complet:

# import cv2 import cv2 # load the image file = r'page_1.png'
table_image_contour = cv2.imread(file, 0)
table_image = cv2.imread(file) # Inverse Image Thresholding
ret, thresh_value = cv2.threshold( table_image_contour, 180, 255, cv2.THRESH_BINARY_INV) # Dilation
kernel = np.ones((5,5),np.uint8)
dilated_value = cv2.dilate(thresh_value,kernel,iterations = 1) contours, hierarchy = cv2.findContours( dilated_value, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: x, y, w, h = cv2.boundingRect(cnt) # bounding the images if y < 50: table_image = cv2.rectangle(table_image, (x, y), (x + w, y + h), (0, 0, 255), 1) plt.imshow(table_image)
plt.show()
cv2.namedWindow('detecttable', cv2.WINDOW_NORMAL)

În fragmentul de cod de mai sus, am făcut multe! Acum să încercăm să decodificăm acest proces.

În primul rând, am importat cv2 (pachetul computer-vision) în programul nostru. Acest pachet este open-source și complet gratuit de utilizat. Îl poți instala pe computer și îl poți încerca. În continuare, încărcăm o imagine de contur utilizând funcția „imread” încorporată din cv2. Această imagine de contur este versiunea de contrast a imaginii originale.

Apoi, am folosit tehnica inversă de prag și dilatare a imaginii pentru a îmbunătăți datele din imaginea dată. Odată ce imaginile sunt îmbunătățite, folosim metoda findContours din cv2 pentru a obține contururile imaginii prezente. FindContours despachetează două valori. Prin urmare, vom adăuga încă o variabilă numită hierarchy. Când imaginile sunt imbricate, contururile emană interdependență. Pentru a reprezenta astfel de relații, se folosește ierarhia.

În cele din urmă, contururile marchează unde exact datele sunt prezente în imagine. Repetăm ​​lista de contururi pe care am calculat-o în pasul anterior și calculăm coordonatele casetelor dreptunghiulare așa cum se observă în imaginea originală folosind metoda cv2.boundingRect. În ultima iterație, am pus acele casete pe imaginea originală table_image folosind cv2.rectangle(). În cele din urmă, trasăm rezultatul folosind matplotlib. Mai jos este o captură de ecran:

Identificarea tabelelor cu Deep Learning

Învățarea profundă a avut un impact uriaș asupra aplicațiilor legate de înțelegerea documentelor, extragerea informațiilor și multe altele. Pentru cazuri de utilizare, cum ar fi extragerea tabelelor, ar trebui luate în considerare multe lucruri și trebuie create conducte solide pentru a construi algoritmi de ultimă generație. În această secțiune, vom parcurge câțiva dintre pașii și tehnicile necesare pentru a construi rețele neuronale solide pentru a efectua extragerea tabelelor dintr-un fișier PDF.

  1. Colectare de date: Abordările bazate pe învățarea profundă folosesc intens date și necesită volume mari de date de instruire pentru a învăța reprezentări eficiente. Din păcate, există foarte puține seturi de date precum Marmot, UW3 etc. pentru detectarea tabelelor și chiar și acestea conțin doar câteva sute de imagini. Cu toate acestea, pentru documente cu șabloane și machete complicate, ar putea fi nevoiți să colectăm propriile seturi de date.
  2. Pre-procesare de date: Acest pas este cel mai comun lucru pentru orice problemă bazată pe învățarea automată sau bazată pe știința datelor. Implica în principal înțelegerea tipului de document la care lucrăm. De exemplu, să presupunem că scopul nostru este să exportăm PDF-uri în foi Excel. Va trebui să ne asigurăm că toate datele de intrare sunt consecvente. Acestea pot fi facturi, chitanțe sau orice informații scanate. Dar cu consecvență, modelele de învățare profundă vor putea învăța și înțelege caracteristicile cu mai multă acuratețe.
  3. Adnotări rând-coloană de tabel: După procesarea documentelor, va trebui să generăm adnotări pentru toate paginile din document. Aceste adnotări sunt practic măști pentru tabel și coloană. Adnotările ne ajută să identificăm tabelele și regiunile coloanelor din imagine. Aici, deoarece toate celelalte texte din interiorul PDF-urilor sunt deja extrase de un OCR precum Tesseract, doar textul din interiorul tabelelor trebuie să fie filtrat. În continuare, va trebui să definim o colecție de rânduri și mai multe coloane prezente la nivel orizontal cu aceste cuvinte filtrate. Cu toate acestea, va trebui, de asemenea, să luăm în considerare reguli de segmentare diferite, în funcție de conținutul unei coloane sau de demarcații de linii, iar un rând se poate întinde pe mai multe linii.
  4. Construirea unui model: Modelul este inima algoritmului de învățare profundă. În esență, implică proiectarea și implementarea unei rețele neuronale. De obicei, pentru seturile de date care conțin copii scanate, rețelele neuronale convoluționale sunt utilizate pe scară largă. Cu toate acestea, construirea modelelor de ultimă generație implică multă experiență și experimente. Acum, să ne uităm la unii dintre algoritmii existenți care au fost utilizați pentru a extrage tabele din PDF-urile scanate.
Modele de învățare profundă care generează/adnotări măști din tabele

Doriți să exportați informații din PDF-uri scanate în foi Excel? Du-te la Nanoneți pentru a automatiza procesul de export din PDF-uri în Excel...


Beneficiile de afaceri ale automatizării procesului PDF în Excel

  • Automatizarea PDF-urilor poate crea și configura reguli și formule pentru a extrage automat date din PDF în Excel. Acest lucru reduce timpul necesar pentru a căuta și a copia/lipi manual informațiile necesare.
  • Extragerea datelor din imagini în text poate fi mult mai ușoară prin automatizarea PDF-urilor, folosind motoare OCR încorporate fără a fi nevoie să tastați din nou datele manual. Acest lucru reduce probabilitatea greșelilor de scriere și a altor erori în timpul extragerii.
  • Eficiența afacerii poate fi îmbunătățită prin automatizarea întregii conducte de extracție și rularea acestuia pe un lot de fișiere PDF pentru a obține toate informațiile dorite dintr-o singură mișcare. Prin aceasta, ne putem asigura că datele sunt disponibile atunci când este necesar.
  • Prin automatizarea conversiei PDF în Excel, vă putem integra cu ușurință datele cu orice software terță parte. De exemplu, să presupunem că dacă dorim să stabilim un proces RPA pentru automatizarea extragerii facturilor, le-am putea încorpora cu ușurință cu aceste conducte.

Revizuirea unor soluții existente pentru conversia PDF-urilor în Excel

Acolo, putem găsi mai multe instrumente care pot converti datele PDF în Excel. Cu toate acestea, fiecare produs are avantajele și dezavantajele sale. În această secțiune, ne vom uita la unele dintre instrumentele gratuite din cloud/on-prem pe care le putem folosi pentru a converti PDF în Excel și pentru a ajuta la automatizare.

Nanoneți

Nanonets este un software OCR bazat pe inteligență artificială care automatizează captarea datelor pentru procesarea inteligentă a documentelor de facturi, chitanțe, cărți de identitate și multe altele. Nanonets folosește OCR avansat, machine learning și Deep Learning pentru a extrage informații relevante din date nestructurate. Este rapid, precis, ușor de utilizat, permite utilizatorilor să construiască modele OCR personalizate de la zero și are câteva integrări Zapier. Digitalizați documente, extrageți câmpuri de date și integrați-vă cu aplicațiile de zi cu zi prin intermediul API-urilor într-o interfață simplă și intuitivă.

Cum se distinge Nanonets ca software OCR?

Pro-uri:

  • UI modernă
  • Manipulează volume mari de documente
  • Preț rezonabil
  • Usor de folosit
  • Nu necesită nicio echipă internă de dezvoltatori
  • Algoritmul / modelele pot fi instruite / recalificate
  • Documentare și asistență excelente
  • O mulțime de opțiuni de personalizare
  • O gamă largă de opțiuni de integrare
  • Funcționează cu non-engleză sau cu mai multe limbi
  • Aproape nu este necesară o post-procesare
  • Integrare bidirecțională perfectă cu numeroase programe de contabilitate
  • API excelent pentru dezvoltatori

Contra:

  • Nu mă descurc foarte sus vârfuri de volum
  • UI de captare a tabelelor poate fi mai bun

EasyPDF

EasePDF este un convertor PDF gratuit online, all-in-one, care extrage fiecare foaie de tabel din PDF și le salvează în foi de calcul Excel cu cea mai mare rată de precizie. Acesta va păstra toate datele, aspectul și formatarea din PDF-ul original.

Pro-uri:

  • Gratuit
  • Google Drive, integrarea One Drive
  • Suport procesare lot
  • Instrumente de preprocesare
  • Funcționează pe telefoane mobile

Contra:

  • Fără API-uri
  • Complet cloud
  • Nu se antrenează cu date personalizate

pdftoexcel

pdftoexcel.com este un serviciu online gratuit de conversie PDF în Excel pe care oricine îl poate folosi. Dar pentru utilizatorii gratuiti, încărcarea poate dura puțin mai mult timp.

Pro-uri:

  • Gratuit
  • În coadă pentru mai multe încărcări

Contra

  • Fără API-uri
  • Complet cloud
  • Nu se antrenează cu date personalizate
  • UI nu atât de grozav
  • Nicio conversie în lot în ediția gratuită

Pdfzilla

PDFZilla este un instrument puternic care ne permite să convertim documente PDF în Excel, Word, Text simplu, Text îmbogățit, JPG, GIF, PNG și mai multe formate de fișiere.

Pro-uri:

  • Precizie bună
  • Suportă peste 20 de limbi
  • Sprijină proces în lot

Contra:

  • Aplicație disponibilă numai pe Windows
  • Perioadă de încercare limitată
  • UI nu atât de grozav

Adobe Acrobat PDF în Excel:

Adobe este dezvoltatorul original al formatului PDF, deci Adobe Acrobat software-ul ar trebui să fie software-ul lider pe piață. Este cu siguranță plin de funcții, inclusiv capacitatea de a converti fișiere PDF în fișiere XL XS pentru a fi utilizate în foile de calcul Excel. Procesul ar trebui să fie rapid și nedureros, cu datele păstrate fără a fi nevoie de reformatare

În Adobe Acrobat, deschideți fișierul PDF pe care doriți să-l exportați, faceți clic pe instrumentul Export PDF, alegeți formatele, cum ar fi Excel Workbook sau .xlxs, apoi expediați. Puteți face acest lucru pe orice dispozitiv, inclusiv pe telefonul mobil.

Pro-uri

  • Precizie ridicată
  • Exportați cu ușurință caracteristici
  • Caracteristici cuprinzătoare

Contra

  • Fără personalizare API
  • Preturi mari
  • Perioadă de încercare limitată

O comparație rapidă...

Caracteristică Nanoneți EasyPDF pdftoexcel Pdfzilla Adobe Acrobat
User Interface Simplu, ușor și modern simplu Complicat și neintuitiv Complicat simplu
Integrations Multe Limitat Limitat Limitat Multe
Personalizare Da Nu Nu Limitat Limitat
API-uri Da Nu Nu Limitat Limitat
Viteză Rapid Rapid Încetini Moderată Rapid
Acuratete Înalt Înalt Moderată Înalt Înalt


Doriți să exportați informații din PDF-uri scanate în foi Excel? Du-te la Nanoneți pentru a automatiza procesul de export din PDF-uri în Excel...


Probleme cu care se confruntă frecvent la exportul PDF în Excel

  1. Găsirea algoritmilor potriviți: Când vine vorba de automatizarea extragerii de text PDF în Excel, o problemă comună cu care se confruntă majoritatea dezvoltatorilor este găsirea algoritmului corect care poate analiza și înțelege întregul document PDF. Iată un întrebare postat pe StackOverflow referitor la același lucru. Acest lucru se datorează faptului că, acolo, găsim mai mulți algoritmi de învățare profundă, dar din nou, va trebui să-i ajustam pe baza cazului nostru de utilizare și a tipului de date; aceasta presupune reantrenarea întregului model cu propriile noastre date folosind modelul existent. De asemenea, dezvoltatorii nu pot promite aceeași acuratețe după ce modelele sunt reinstruite, deoarece modelele de învățare profundă necesită o mulțime de ajustare a hiperparametrilor.
  2. Extragerea tabelului: Pentru automatizarea procesului de conversie a PDF-urilor în Excel, extragerea tabelelor joacă un rol crucial. Prin urmare, identificarea tabelelor și analizarea acestora este, de asemenea, esențială pentru această automatizare. Cei mai mulți dezvoltatori noi ar putea răsfoi prin diferiți algoritmi bazați pe CV și învățare profundă pentru extragerea tabelelor, ceea ce este o provocare. Puțini dintre ei ar putea folosi servicii precum Texttract, Rossum etc., care sunt complicat de integrat cu diferite fluxuri de lucru ale diferitelor backend-uri.
  3. Postprocesare și scriptare suplimentară: este posibil ca textul care a fost extras din PDF-uri să nu fie exact tot timpul. Prin urmare, o mulțime de pași de post-procesare sunt urmați folosind diferite tehnici, de exemplu, să spunem dacă dorim să fie extrase numai anumite coloane din tabele sau enumerați toate datele dintr-o coloană din PDF. În astfel de cazuri, OCR nu este suficient. Va trebui să ne bazăm pe tehnici care folosesc expresii regulate, modele de limbaj și condiții imbricate simple. Aceasta este din nou o muncă suplimentară. Prin urmare, va trebui să fim atenți atunci când alegem un algoritm de extracție puternic care cuprinde cea mai mare parte a post-procesării.

Concluzie

În acest articol, am văzut cum putem exporta PDF în Excel folosind diferite tehnici. Am analizat în detaliu modul în care putem folosi OCR și Deep Learning pentru a converti PDF-urile electronice și non-electronice într-un document Excel.

În plus, am văzut cum putem construi o conductă solidă folosind modele de învățare profundă pentru conversia PDF în Excel. În cele din urmă, am văzut câteva dintre instrumentele populare pe care le putem folosi direct pentru a construi fluxuri de lucru.

Începeți să utilizați Nanonets pentru automatizare

Încercați modelul sau solicitați astăzi o demo!

ÎNCEARCĂ ACUM

Sursa: https://nanonets.com/blog/pdf-to-excel/

Timestamp-ul:

Mai multe din Republicat de Platon