Sdílet prostřednictvím


Kurz: Funkce Document Intelligence se službami Azure AI

Azure AI Document Intelligence je služba Azure AI , která umožňuje vytvářet aplikaci automatizovaného zpracování dat pomocí technologie strojového učení. V tomto kurzu se dozvíte, jak snadno rozšířit data v Azure Synapse Analytics. Funkce Document Intelligence slouží k analýze formulářů a dokumentů, extrakci textu a dat a vrácení strukturovaného výstupu JSON. Rychle získáte přesné výsledky přizpůsobené vašemu konkrétnímu obsahu bez nadměrného ručního zásahu nebo rozsáhlých odborných znalostí datových věd.

Tento kurz ukazuje použití funkce Document Intelligence se SynapseML k:

  • Extrahování textu a rozložení z daného dokumentu
  • Detekce a extrakce dat z účtenek
  • Detekce a extrakce dat z vizitek
  • Zjišťování a extrahování dat z faktur
  • Detekce a extrakce dat z identifikačních dokumentů

Pokud nemáte předplatné Azure, vytvořte si před zahájením bezplatného účtu.

Požadavky

Začínáme

Otevřete Synapse Studio a vytvořte nový poznámkový blok. Začněte tím, že naimportujete SynapseML.

import synapse.ml
from synapse.ml.cognitive import *

Konfigurace funkce Document Intelligence

Použijte propojenou funkci Document Intelligence, kterou jste nakonfigurovali v krocích před konfigurací .

ai_service_name = "<Your linked service for Document Intelligence>"

Analýza rozložení

Extrahujte text a informace o rozložení z daného dokumentu. Vstupní dokument musí mít jeden z podporovaných typů obsahu – "application/pdf", "image/jpeg", "image/png" nebo "image/tiff".

Příklad vstupu

Fotografie ukázkové nákupní objednávky

from pyspark.sql.functions import col, flatten, regexp_replace, explode, create_map, lit

imageDf = spark.createDataFrame([
  ("<replace with your file path>/layout.jpg",)
], ["source",])

analyzeLayout = (AnalyzeLayout()
                 .setLinkedService(ai_service_name)
                 .setImageUrlCol("source")
                 .setOutputCol("layout")
                 .setConcurrency(5))


display(analyzeLayout
        .transform(imageDf)
        .withColumn("lines", flatten(col("layout.analyzeResult.readResults.lines")))
        .withColumn("readLayout", col("lines.text"))
        .withColumn("tables", flatten(col("layout.analyzeResult.pageResults.tables")))
        .withColumn("cells", flatten(col("tables.cells")))
        .withColumn("pageLayout", col("cells.text"))
        .select("source", "readLayout", "pageLayout"))

Očekávané výsledky

Snímek obrazovky s očekávanými výsledky analýzy ukázkové nákupní objednávky

Analýza stvrzenek

Detekuje a extrahuje data z účtenek pomocí optického rozpoznávání znaků (OCR) a našeho modelu účtenek, což vám umožní snadno extrahovat strukturovaná data z účtenek, jako je jméno obchodníka, telefonní číslo obchodníka, datum transakce, celkový počet transakcí a další.

Příklad vstupu

Fotografie ukázkové stvrzenky

imageDf2 = spark.createDataFrame([
  ("<replace with your file path>/receipt1.png",)
], ["image",])

analyzeReceipts = (AnalyzeReceipts()
                 .setLinkedService(ai_service_name)
                 .setImageUrlCol("image")
                 .setOutputCol("parsed_document")
                 .setConcurrency(5))


results = analyzeReceipts.transform(imageDf2).cache()
display(results.select("image", "parsed_document"))

Očekávané výsledky

Snímek obrazovky s očekávanými výsledky analýzy ukázkové účtenky

Analýza vizitek

Detekuje a extrahuje data z vizitek pomocí optického rozpoznávání znaků (OCR) a našeho modelu vizitek, což vám umožní snadno extrahovat strukturovaná data z vizitek, jako jsou jména kontaktů, názvy společností, telefonní čísla, e-maily a další.

Příklad vstupu

Fotografie ukázkové vizitky

imageDf3 = spark.createDataFrame([
  ("<replace with your file path>/business_card.jpg",)
], ["source",])

analyzeBusinessCards = (AnalyzeBusinessCards()
                 .setLinkedService(ai_service_name)
                 .setImageUrlCol("source")
                 .setOutputCol("businessCards")
                 .setConcurrency(5))

display(analyzeBusinessCards
        .transform(imageDf3)
        .withColumn("documents", explode(col("businessCards.analyzeResult.documentResults.fields")))
        .select("source", "documents"))

Očekávané výsledky

Snímek obrazovky s očekávanými výsledky analýzy ukázkové vizitky

Analýza faktur

Detekuje a extrahuje data z faktur pomocí optického rozpoznávání znaků (OCR) a našich modelů hlubokého učení na faktuře, což vám umožní snadno extrahovat strukturovaná data z faktur, jako jsou odběratel, dodavatel, ID faktury, datum splatnosti faktury, celková částka faktury, splatná částka faktury, částka daně, příjemce, faktura do, řádkové položky a další.

Příklad vstupu

Fotografie ukázkové faktury

imageDf4 = spark.createDataFrame([
  ("<replace with your file path>/invoice.png",)
], ["source",])

analyzeInvoices = (AnalyzeInvoices()
                 .setLinkedService(ai_service_name)
                 .setImageUrlCol("source")
                 .setOutputCol("invoices")
                 .setConcurrency(5))

display(analyzeInvoices
        .transform(imageDf4)
        .withColumn("documents", explode(col("invoices.analyzeResult.documentResults.fields")))
        .select("source", "documents"))

Očekávané výsledky

Snímek obrazovky s očekávanými výsledky analýzy ukázkové faktury

Analýza dokumentů ID

Rozpozná a extrahuje data z identifikačních dokumentů pomocí optického rozpoznávání znaků (OCR) a našeho modelu dokumentu ID, což vám umožní snadno extrahovat strukturovaná data z dokumentů ID, jako je jméno, příjmení, datum narození, číslo dokumentu a další.

Příklad vstupu

Fotografie příkladu ID řidičského průkazu

imageDf5 = spark.createDataFrame([
  ("<replace with your file path>/id.jpg",)
], ["source",])

analyzeIDDocuments = (AnalyzeIDDocuments()
                 .setLinkedService(ai_service_name)
                 .setImageUrlCol("source")
                 .setOutputCol("ids")
                 .setConcurrency(5))

display(analyzeIDDocuments
        .transform(imageDf5)
        .withColumn("documents", explode(col("ids.analyzeResult.documentResults.fields")))
        .select("source", "documents"))

Očekávané výsledky

Snímek obrazovky s očekávanými výsledky analýzy ukázkového ID řidičského průkazu

Vyčištění prostředků

Pokud chcete zajistit vypnutí instance Sparku, ukončete všechny připojené relace (poznámkové bloky). Fond se vypne při dosažení doby nečinnosti zadané ve fondu Apache Sparku. Můžete také vybrat zastavit relaci ze stavového řádku v pravém horním rohu poznámkového bloku.

Snímek obrazovky znázorňující tlačítko Zastavit relaci na stavovém řádku

Další kroky