Filtrează articolele

AI

Cum să construiești o conductă de parsare cu Docling Parse pentru inteligența documentelor conștientă de layout

În acest tutorial, vom construi un flux de lucru care utilizează Docling Parse pentru a analiza documente PDF la un nivel structural detaliat. Vom pregăti un mediu Python stabil, vom gestiona problemele comune de dependență în Colab și vom genera un PDF personalizat cu mai multe pagini, care include text, coloane, conținut asemănător tabelelor, forme vectoriale și o imagine încorporată. Apoi, vom extrage cuvinte, caractere și linii cu coordonate la nivel de pagină, vom reda suprapuneri vizuale și vom salva rezultatele în JSON și CSV structurate. Vom vedea cum parsarea la nivel scăzut sprijină analiza layout-ului, reconstrucția ordinii de citire și pregătirea documentelor pentru regăsire.

Introducere



În era digitalizării, documentele PDF rămân un format omniprezent, dar adesea dificil de procesat automat. De la facturi și rapoarte financiare până la articole academice și manuale tehnice, PDF-urile conțin informații valoroase îngropate în structuri complexe de layout. Aici intervine Docling Parse, o unealtă puternică care permite extragerea detaliată a conținutului, păstrând în același timp conștientizarea layout-ului. În acest articol, vom explora cum să construim o conductă de parsare care transformă documentele statice în date structurate, gata pentru analiză sau integrare în sisteme de inteligență artificială.

Configurarea mediului



Primul pas este să pregătim un mediu Python stabil. Vom folosi Google Colab pentru simplitate, dar aceleași principii se aplică și pe un server local. Instalăm dependențele necesare, inclusiv Docling Parse, PyMuPDF pentru manipularea PDF-urilor și matplotlib pentru vizualizări. Este important să gestionăm versiunile pentru a evita conflictele, mai ales cu biblioteci precum numpy sau pandas.

```python
!pip install docling-parse pymupdf matplotlib pandas
```

Dacă întâmpini erori de dependență în Colab, o soluție comună este să repornești runtime-ul după instalare sau să folosești un mediu virtual. De asemenea, asigură-te că ai o versiune recentă de Python (3.8+).

Generarea unui PDF personalizat



Pentru a testa conducta, vom crea un PDF cu mai multe pagini care include diverse elemente: text simplu, coloane, conținut asemănător tabelelor, forme vectoriale (cum ar fi linii și cercuri) și o imagine încorporată. Acest lucru ne va permite să evaluăm cât de bine se descurcă Docling Parse cu diferite tipuri de conținut.

Folosind PyMuPDF, putem construi pagină cu pagină:

```python
import fitz

doc = fitz.open()
page = doc.new_page()
page.insert_text((50, 50), "Acesta este un titlu", fontsize=20)
page.insert_text((50, 100), "Text pe coloane...", fontsize=12)
# Adăugăm o imagine
doc.close()
```

Salvăm documentul și îl încărcăm în Docling Parse.

Parsarea cu Docling Parse



Docling Parse oferă o interfață simplă pentru a extrage elemente la nivel de pagină. Inițializăm parserul și procesăm PDF-ul:

```python
from docling_parse import DoclingParse

parser = DoclingParse()
document = parser.parse("document.pdf")
```

Rezultatul este un obiect care conține pagini, fiecare cu o listă de elemente: cuvinte, caractere, linii, imagini etc. Fiecare element are coordonate (x, y, lățime, înălțime) și metadate.

Extragerea cuvintelor, caracterelor și liniilor



Să extragem cuvintele dintr-o pagină:

```python
for page in document.pages:
for word in page.words:
print(word.text, word.bbox)
```

Caracterele sunt și mai detaliate, permițând reconstrucția exactă a textului. Liniile sunt grupuri de cuvinte pe aceeași linie orizontală, utile pentru a păstra ordinea de citire.

Redarea suprapunerilor vizuale



Pentru a verifica acuratețea parsării, putem reda suprapuneri vizuale peste imaginea paginii. Folosim matplotlib pentru a desena dreptunghiuri în jurul elementelor extrase:

```python
import matplotlib.pyplot as plt
from PIL import Image

img = Image.open("page.png")
plt.imshow(img)
for word in page.words:
rect = plt.Rectangle((word.bbox.x, word.bbox.y), word.bbox.width, word.bbox.height, fill=False, edgecolor='red')
plt.gca().add_patch(rect)
plt.show()
```

Acest pas este crucial pentru depanare și pentru a înțelege cum parserul interpretează layout-ul.

Salvarea rezultatelor în JSON și CSV



Odată ce avem datele, le putem structura pentru utilizare ulterioară. JSON este ideal pentru stocarea ierarhică, iar CSV pentru analize tabelare:

```python
import json
import csv

with open("output.json", "w") as f:
json.dump(document.to_dict(), f, indent=2)

with open("output.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["text", "x", "y", "width", "height"])
for page in document.pages:
for word in page.words:
writer.writerow([word.text, word.bbox.x, word.bbox.y, word.bbox.width, word.bbox.height])
```

Analiza layout-ului și reconstrucția ordinii de citire



Unul dintre cele mai puternice aspecte ale Docling Parse este capacitatea de a reconstrui ordinea de citire. Prin analiza pozițiilor relative ale elementelor, putem determina fluxul logic al textului, chiar și în layout-uri complexe cu coloane sau tabele. Acest lucru este esențial pentru aplicații precum extragerea de informații sau alimentarea modelelor de limbaj.

De exemplu, dacă avem un document cu două coloane, parserul poate identifica că textul din coloana stângă trebuie citit înaintea celui din dreapta, chiar dacă coordonatele y se suprapun.

Pregătirea documentelor pentru regăsire



Datele extrase pot fi folosite pentru a crea indexuri de căutare sau pentru a antrena modele de machine learning. Prin salvarea coordonatelor și a textului, putem reconstrui documentul original sau putem rula interogări precise. De exemplu, putem găsi toate cuvintele care apar într-o anumită regiune a paginii, util pentru analiza formularelor sau a facturilor.

Concluzie



În acest tutorial, am văzut cum Docling Parse transformă PDF-urile în date structurate, păstrând conștientizarea layout-ului. De la configurarea mediului și generarea unui PDF personalizat până la extragerea detaliată și salvarea în formate standard, conducta construită este robustă și flexibilă. Această abordare deschide uși pentru aplicații avansate de inteligență documentară, cum ar fi analiza automată a contractelor, extragerea de date din rapoarte financiare sau integrarea în sisteme de regăsire a informațiilor.

De ce este important:



Parsarea conștientă de layout este esențială pentru a extrage sensul real din documente complexe. Fără ea, am pierde contextul spațial care face diferența între un titlu și o notă de subsol, sau între o coloană de text și un tabel. Docling Parse oferă o soluție accesibilă și puternică pentru a aduce inteligența documentelor la un nou nivel, facilitând automatizarea și analiza în domenii precum finanțe, juridic, educație și cercetare.

Acest site folosește cookie-uri pentru a-ți oferi o experiență de navigare cât mai plăcută. Continuarea navigării implică acceptarea acestora.