Com extreure dades estructurades de PDF amb ChatGPT i .NET

Com extreure dades estructurades de PDF amb ChatGPT i .NET

Desbloquejar les automatitzacions avançades i els fluxos de treball d’intel·ligència artificial en les seves aplicacions .NET per extreure dades estructurades (com taules, formularis o entitats) de PDFs i convertir-les en formats que es poden llegir per màquina.

Introducció

L’extracció de dades estructurades dels documents PDF és un requisit crític per a la intel·ligència empresarial, el reportatge i els escenaris d’automatització. Mentre que Aspose.PDF.Plugin permet una robusta extracción de text en .NET, la combinació amb ChatGPT li permet parsejar, categoritzar i formatar informació com a objectes JSON, CSV, o domini.

Casos d’ús comuns:

  • Extracció de dades de facturació per a l’automatització de la comptabilitat
  • Descarregar taules de documents d’investigació
  • Transformació de formularis escanats en registres estructurats

Pas 1: Extreure text o contingut de taula de PDF

Comencem utilitzant el TextExtractor o, per a dades de taula, opcions especialitzades a Aspose.PDF.Plugin.

using Aspose.Pdf.Plugins;

var inputPath = @"C:\Docs\invoice.pdf";
var extractor = new TextExtractor();
var options = new TextExtractorOptions();
options.AddInput(new FileDataSource(inputPath));
var resultContainer = extractor.Process(options);
string rawText = resultContainer.ResultCollection[0].ToString();

Pas 2: Preparació i enviament de fonts a ChatGPT

Podeu instruir ChatGPT a parsejar i retornar les dades en un format estructurat com JSON o CSV.

string apiKey = "YOUR_OPENAI_API_KEY";
string prompt = $"Extract the following invoice data as JSON: {rawText}";
// Use HttpClient as in previous examples
  • Tips per a millors resultats:

  • Utilitzeu promptes clares i explícites: “Extractar una taula de descripcions d’objectes, preus i totals com a JSON”.

  • Per a PDFs grans, extreure i enviar text en segments lògics (per exemple, una taula alhora).

Pas 3: Parseu i valideu la sortida AI

Després d’obtenir la resposta de ChatGPT, parseu les dades estructurades utilitzant un parser JSON (o CSV):

// Assume jsonData is a JSON string received from ChatGPT
var structuredData = JsonConvert.DeserializeObject<List<InvoiceItem>>(jsonData);

public class InvoiceItem
{
    public string Description { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }
    public decimal Total { get; set; }
}

Pasos de validació:

  • Verificar els tipus de dades vàlids (numèric, data, etc.)
  • Registre o bandera de dades incompletes/ambigues per a la revisió

Pas 4: Salvar o utilitzar les dades extraïdes

  • Emmagatzema els resultats estructurats en una base de dades, un arxiu d’Excel o un sistema de processament baix.
  • Opcionalment, utilitzeu Aspose.PDF.Plugin’s TableGenerator per injectar dades estructurades en un resum PDF o informe.

Scenaris avançats i solució de problemes

  • Extracció de batxillerat:

  • Passar a través de múltiples PDFs i agregar dades estructurades de tots els documents.

  • Combinació de l’OCR:

  • Per a PDFs escanats, utilitzeu els plugins OCR primer abans de l’extracció de text.

  • Actuació d’errors:

  • Capturar i registrar errors API, respostes JSON invalidades i fragments no estructurats.

Les millors pràctiques per a la precisió i la conformitat

  • Pre- neteja el text PDF abans d’enviar a ChatGPT per eliminar els titulars/fots.
  • Eviteu l’enviament de documents sensibles llevat que utilitzeu punts finals segurs / autoritzats d’IA.
  • Per a l’extracció de dades crítiques, utilitzeu un pas de validació post-processament.

FAQ: Extracció de dades estructurada amb ChatGPT

**Q: Quins tipus de dades estructurades puc extreure dels PDF?**A: Taules, llistes, camps anomenats i patrons regulars (com ara dates, quantitats, IDs).

**Q: Pot aquest mètode processar múltiples PDFs alhora?**A: Sí, s’està donant suport a l’extracció de batxillerat - passeu a través del vostre conjunt de PDF i agregeu els resultats.

**Q: És el ChatGPT sempre precís amb taules i números?**A: Per obtenir els millors resultats, utilitzeu promptes exactes i valideu totes les sortides en codi.

 Català