Wat is het document intelligence-indelingsmodel?

Deze inhoud is van toepassing op:vinkjev4.0 (GA) | Vorige versies:blauw vinkjev3.1 (GA)rood vinkjev3.0 (buiten gebruik stellen)rood vinkjev2.1 (buiten gebruik stellen)

Het indelingsmodel Azure Document Intelligence in Foundry Tools is een geavanceerde API voor documentanalyse op basis van machine learning. Het model is beschikbaar in de Document Intelligence-cloud. U kunt het gebruiken om documenten in verschillende indelingen te verwerken en gestructureerde gegevensweergaven van de documenten te retourneren. Het model combineert een verbeterde versie van de krachtige OCR-mogelijkheden (Optical Character Recognition) met deep learning-modellen om tekst, tabellen, selectiemarkeringen en documentstructuur te extraheren.

Indelingsanalyse van documentstructuur

Indelingsanalyse van documentstructuur is het proces van het analyseren van een document om interessegebieden en hun onderlinge relaties te extraheren. Het doel is om tekst en structurele elementen van de pagina te extraheren om betere semantische begripsmodellen te maken. Er zijn twee typen rollen in een documentindeling:

  • Geometrische rollen: Tekst, tabellen, afbeeldingen en selectiemarkeringen zijn voorbeelden van geometrische rollen.
  • Logische rollen: Titels, koppen en voetteksten zijn voorbeelden van logische rollen van teksten.

In de volgende afbeelding ziet u de typische onderdelen in een afbeelding van een voorbeeldpagina.

Afbeelding van een voorbeeld van een documentindeling.

Ontwikkelopties

Document Intelligence v4.0: 2024-11-30 (GA) ondersteunt de volgende hulpprogramma's, toepassingen en bibliotheken.

Functie Middelen Model-ID
Indelingsmodel Document Intelligence Studio
REST API
C# SDK
Python SDK
Java SDK
JavaScript SDK
prebuilt-layout

Ondersteunde talen

Zie Taalondersteuning: Documentanalysemodellen voor een volledige lijst met ondersteunde talen.

Ondersteunde bestandstypen

Document Intelligence v4.0: indelingsmodel 2024-11-30 (GA) ondersteunt de volgende bestandsindelingen:

Model PDF Afbeelding:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office:
Word (DOCX), Excel (XLS), PowerPoint (PPTX), HTML
Indeling

Invoervereisten

  • Foto's en scans: geef één duidelijke foto of een hoogwaardige scan per document op voor de beste resultaten.
  • PDF's en TIFF's: Voor PDF-bestanden en TIFF's kunnen maximaal 2000 pagina's worden verwerkt. (Met een abonnement op de gratis laag worden alleen de eerste twee pagina's verwerkt.)
  • Wachtwoordvergrendelingen: als uw PDF-bestanden zijn vergrendeld met een wachtwoord, moet u de vergrendeling verwijderen voordat u ze inzendt.
  • Bestandsgrootte: de bestandsgrootte voor het analyseren van documenten is 500 MB voor de betaalde laag (S0) en 4 MB voor de gratis laag (F0).
  • Afbeeldingsafmetingen: De afmetingen van de afbeelding moeten tussen 50 pixels x 50 pixels en 10.000 pixels x 10.000 pixels zijn.
  • Teksthoogte: de minimale hoogte van de tekst die moet worden geëxtraheerd, is 12 pixels voor een afbeelding van 1024 x 768 pixels. Deze dimensie komt overeen met ongeveer 8-punts tekst bij 150 punten per inch.
  • Aangepaste modeltraining: Het maximum aantal pagina's voor trainingsgegevens is 500 voor het aangepaste sjabloonmodel en 50.000 voor het aangepaste neurale model.
  • Aangepaste training voor extractiemodellen: de totale grootte van trainingsgegevens is 50 MB voor het sjabloonmodel en 1 GB voor het neurale model.
  • Training voor aangepast classificatiemodel: de totale grootte van trainingsgegevens is 1 GB met maximaal 10.000 pagina's. Voor 2024-11-30 (GA) is de totale grootte van trainingsgegevens 2 GB met maximaal 10.000 pagina's.
  • Office-bestandstypen (DOCX, XLSX, PPTX): de maximale tekenreekslengte is 8 miljoen tekens.

Zie Servicelimieten voor meer informatie over modelgebruik, quota en servicelimieten.

Aan de slag met het indelingsmodel

Bekijk hoe gegevens, waaronder tekst, tabellen, tabelkoppen, selectiemarkeringen en structuurgegevens, worden geëxtraheerd uit documenten met behulp van Document Intelligence. U hebt de volgende resources nodig:

  • Een Azure-abonnement. U kunt er gratis een maken.

  • Een Document Intelligence-exemplaar in de Azure-portal. U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen. Nadat uw resource is geïmplementeerd, selecteert u Ga naar de resource om uw sleutel en eindpunt op te halen.

    Schermafbeelding met de sleutels en eindpuntlocatie in de Azure portal.

Nadat u uw sleutel en eindpunt hebt opgehaald, gebruikt u de volgende ontwikkelopties om uw Document Intelligence-toepassingen te bouwen en te implementeren.

Gegevensextractie

Het indelingsmodel extraheert structurele elementen uit uw documenten. De volgende structurele elementen worden beschreven in de rest van dit artikel, samen met richtlijnen voor het extraheren van deze elementen uit uw documentinvoer:

Voer de analyse van de lay-out van het voorbeelddocument in Document Intelligence Studio uit. Ga vervolgens naar het tabblad Resultaten en open de volledige JSON-uitvoer.

Schermopname met resultaten op het tabblad JSON-uitvoer in Document Intelligence Studio.

Pagina's

De pages verzameling is een lijst met pagina's in het document. Elke pagina wordt sequentieel weergegeven in het document en bevat de richtingshoek, die aangeeft of de pagina wordt gedraaid en de breedte en hoogte (afmetingen in pixels). De pagina-eenheden in de modeluitvoer worden berekend zoals weergegeven in de volgende tabel.

Bestandsindeling Berekende pagina-eenheid Totaal aantal pagina's
Afbeeldingen (JPEG/JPG, PNG, BMP, HEIF) Elke afbeelding = 1 pagina-eenheid. Totaal aantal afbeeldingen
PDF Elke pagina in de PDF = 1 pagina-eenheid. Totaal aantal pagina's in het PDF-bestand
TIFF Elke afbeelding in de TIFF = 1 pagina-eenheid. Totaal aantal afbeeldingen in de TIFF
Word (DOCX) Maximaal 3000 tekens = 1 pagina-eenheid. Ingesloten of gekoppelde afbeeldingen worden niet ondersteund. Totaal aantal pagina's van maximaal 3000 tekens per pagina
Excel (XLSX) Elk werkblad = 1 pagina-eenheid. Ingesloten of gekoppelde afbeeldingen worden niet ondersteund. Totaal aantal werkbladen
PowerPoint (PPTX) Elke dia is gelijk aan één pagina-eenheid. Ingesloten of gekoppelde afbeeldingen worden niet ondersteund. Totaal aantal dia's
HTML Maximaal 3000 tekens = 1 pagina-eenheid. Ingesloten of gekoppelde afbeeldingen worden niet ondersteund. Totaal aantal pagina's van maximaal 3000 tekens per pagina
# Analyze pages.
for page in result.pages:
print(f"----Analyzing layout from page #{page.page_number}----")
print(f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}")

Geselecteerde pagina's extraheren

Voor grote documenten met meerdere pagina's gebruikt u de pages queryparameter om specifieke paginanummers of paginabereiken aan te geven voor tekstextractie.

Paragrafen

Met het indelingsmodel worden alle geïdentificeerde tekstblokken in de verzameling geëxtraheerd als een object op het paragraphs hoogste niveau onder analyzeResults. Elke vermelding in deze verzameling vertegenwoordigt een tekstblok en bevat de geëxtraheerde tekst als content en de begrenzingscoördinaten polygon . De spans informatie verwijst naar het tekstfragment in de eigenschap op het hoogste niveau content die de volledige tekst uit het document bevat.


"paragraphs": [
    {
        "spans": [],
        "boundingRegions": [],
        "content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
    }
]

Alinearollen

Met de nieuwe paginaobjectdetectie op basis van machine learning worden logische rollen geëxtraheerd, zoals titels, sectiekoppen, paginakopteksten, paginavoetteksten en meer. Met het Document Intelligence-indelingsmodel worden bepaalde tekstblokken in de paragraphs verzameling toegewezen met hun gespecialiseerde rol of type dat door het model wordt voorspeld.

U kunt het beste alinearollen met ongestructureerde documenten gebruiken om inzicht te verkrijgen in de indeling van de geëxtraheerde inhoud voor een uitgebreidere semantische analyse. De volgende paragraafrollen worden ondersteund.

Voorspelde rol Beschrijving Ondersteunde bestandstypen
title De hoofdkoppen op de pagina PDF, Afbeelding, DOCX, PPTX, XLSX, HTML
sectionHeading Een of meer subkoppen op de pagina PDF, Afbeelding, DOCX, XLSX, HTML
footnote Tekst onder aan de pagina PDF, afbeelding
pageHeader Tekst aan de bovenrand van de pagina PDF, Afbeelding, DOCX
pageFooter Tekst aan de onderkant van de pagina PDF, Afbeelding, DOCX, PPTX, HTML
pageNumber Paginanummer PDF, afbeelding
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Tekst, regels en woorden

Het documentindelingsmodel in Document Intelligence extraheert tekst in afdruk- en handgeschreven stijl als lines en words. De styles verzameling bevat een handgeschreven stijl voor lijnen, indien gedetecteerd, samen met de reeksen die verwijzen naar de bijbehorende tekst. Deze functie is van toepassing op ondersteunde handgeschreven talen.

Voor Microsoft Word, Excel, PowerPoint en HTML worden met het indelingsmodel Document Intelligence v4.0 2024-11-30 (GA) alle ingesloten tekst geëxtraheerd. Teksten worden opgedeeld in woorden en alinea's. Ingesloten afbeeldingen worden niet ondersteund.

# Analyze lines.
if page.lines:
    for line_idx, line in enumerate(page.lines):
    words = get_words(page, line)
    print(
        f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
        f"within bounding polygon '{line.polygon}'"
    )

    # Analyze words.
    for word in words:
        print(f"......Word '{word.content}' has a confidence of {word.confidence}")

Handgeschreven stijl voor tekstregels

Het antwoord bevat of elke tekstregel een handgeschreven stijl heeft of niet, samen met een betrouwbaarheidsscore. Zie Handgeschreven taalondersteuning voor meer informatie. In het volgende voorbeeld ziet u een voorbeeld van een JSON-fragment.

"styles": [
{
    "confidence": 0.95,
    "spans": [
    {
        "offset": 509,
        "length": 24
    }
    "isHandwritten": true
    ]
}

Als u de mogelijkheid voor de invoegtoepassing lettertype/stijl inschakelt, krijgt u ook het resultaat lettertype/stijl als onderdeel van het styles object.

Selectietekens

Het indelingsmodel extraheert ook selectiemarkeringen uit documenten. Geëxtraheerde selectiemarkeringen worden weergegeven in de pages verzameling voor elke pagina. Ze bevatten de begrenzing polygon, confidence, en selectie state (selected/unselected). De tekstweergave (dat wil gezegd :selected: en :unselected) wordt ook opgenomen als de beginindex (offset) en length die verwijst naar de eigenschap op het hoogste niveau content die de volledige tekst uit het document bevat.

# Analyze selection marks.
if page.selection_marks:
    for selection_mark in page.selection_marks:
        print(
            f"Selection mark is '{selection_mark.state}' within bounding polygon "
            f"'{selection_mark.polygon}' and has a confidence of {selection_mark.confidence}"
        )

Tabellen

Het extraheren van tabellen is een belangrijke vereiste voor het verwerken van documenten die grote hoeveelheden gegevens bevatten die doorgaans zijn opgemaakt als tabellen. Het indelingsmodel extraheert tabellen in de pageResults sectie van de JSON-uitvoer. Geëxtraheerde tabelgegevens bevatten het aantal kolommen en rijen, rijspanne en kolomspanne.

Elke cel met zijn begrenzingsveelhoek wordt geëxporteerd, samen met de informatie of het gebied als columnHeader wordt herkend of niet. Het model ondersteunt het extraheren van tabellen die worden gedraaid. Elke tabelcel bevat de rij- en kolomindex en begrenzingspogoncoördinaten. Voor de celtekst voert het model de span informatie uit die de beginindex (offset) bevat. Het model geeft ook de length weer binnen topniveau-content die de volledige tekst van het document bevat.

Hier volgen enkele factoren die u moet overwegen wanneer u de mogelijkheid voor extractie van documentinformatiebalen gebruikt:

  • Zijn de gegevens die u wilt ophalen als een tabel en is de tabelstructuur zinvol?
  • Kunnen de gegevens in een tweedimensionaal raster passen als de gegevens niet in een tabelindeling zijn opgenomen?
  • Beslaan uw tabellen meerdere pagina's? Zo ja, om te voorkomen dat u alle pagina's moet labelen, splitst u het PDF-bestand op in pagina's voordat u het naar Document Intelligence verzendt. Na de analyse worden de pagina's verwerkt tot één tabel.
  • Zie Tabellaire velden als u aangepaste modellen maakt. Dynamische tabellen hebben een variabel aantal rijen voor elke kolom. Vaste tabellen hebben een constant aantal rijen voor elke kolom.

Opmerking

Tabelanalyse wordt niet ondersteund als het invoerbestand XLSX is. Voor 2024-11-30 (GA) beslaan de begrenzingsregio's voor afbeeldingen en tabellen alleen de kerninhoud en sluit het bijbehorende bijschrift en voetnoten uit.

if result.tables:
    for table_idx, table in enumerate(result.tables):
        print(f"Table # {table_idx} has {table.row_count} rows and " f"{table.column_count} columns")
        if table.bounding_regions:
            for region in table.bounding_regions:
                print(f"Table # {table_idx} location on page: {region.page_number} is {region.polygon}")
        # Analyze cells.
        for cell in table.cells:
            print(f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'")
            if cell.bounding_regions:
                for region in cell.bounding_regions:
                print(f"...content on page {region.page_number} is within bounding polygon '{region.polygon}'")

Antwoorduitvoer in Markdown-formaat

De indelings-API kan de geëxtraheerde tekst uitvoeren in Markdown-indeling. Gebruik de outputContentFormat=markdown opdracht om de uitvoerindeling op te geven in Markdown. De Markdown-inhoud wordt uitgevoerd als onderdeel van de content sectie.

Opmerking

Voor v4.0 2024-11-30 (GA) wordt de weergave van tabellen gewijzigd in HTML-tabellen om weergave van items zoals samengevoegde cellen en multirow-headers mogelijk te maken. Een andere gerelateerde wijziging is het gebruik van de Unicode-selectievakjetekens ☒ en ☐ voor selectiemarkeringen in plaats van :selected: en :unselected:. Deze update betekent dat de inhoud van selectiemarkeringsvelden :selected: bevat, ook al verwijzen hun spanten naar Unicode-tekens in de span op het bovenste niveau. Zie de Markdown-uitvoerindeling voor een volledige definitie van Markdown-elementen.

document_intelligence_client = DocumentIntelligenceClient(endpoint=endpoint, credential=AzureKeyCredential(key))
poller = document_intelligence_client.begin_analyze_document(
    "prebuilt-layout",
    AnalyzeDocumentRequest(url_source=url),
    output_content_format=ContentFormat.MARKDOWN,
)

Afbeeldingen

Afbeeldingen (grafieken en afbeeldingen) in documenten spelen een cruciale rol bij het aanvullen en verbeteren van de tekstuele inhoud. Ze bieden visuele representaties die helpen bij het begrijpen van complexe informatie. Het figures object dat door het indelingsmodel wordt gedetecteerd, heeft belangrijke eigenschappen zoals:

  • boundingRegions: De ruimtelijke locaties van de afbeelding op de documentpagina's, inclusief het paginanummer en de veelhoekcoördinaten die de grens van de afbeelding aangeven.
  • spans: De tekstgedeelten met betrekking tot de afbeelding specificeren hun offsets en lengten binnen de tekst van het document. Deze verbinding helpt bij het koppelen van de afbeelding aan de relevante tekstcontext.
  • elements: De id's voor tekstelementen of alinea's in het document die zijn gerelateerd aan of beschrijven de afbeelding.
  • caption: De beschrijving als er een is.

Wanneer output=figures tijdens de eerste analysebewerking wordt opgegeven, genereert de service bijgesneden afbeeldingen voor alle gedetecteerde afbeeldingen die toegankelijk zijn via /analyeResults/{resultId}/figures/{figureId}. De FigureId waarde is de id die is opgenomen in elk afbeeldingsobject, volgens een niet-gedocumenteerde conventie van {pageNumber}.{figureIndex} waar figureIndex de waarde opnieuw wordt ingesteld op één per pagina.

Voor v4.0 2024-11-30 (GA) hebben de begrenzingsregio's voor afbeeldingen en tabellen alleen betrekking op de kerninhoud en sluit het bijbehorende bijschrift en voetnoten uit.

# Analyze figures.
if result.figures:
    for figures_idx,figures in enumerate(result.figures):
        print(f"Figure # {figures_idx} has the following spans:{figures.spans}")
        for region in figures.bounding_regions:
            print(f"Figure # {figures_idx} location on page:{region.page_number} is within bounding polygon '{region.polygon}'")

Secties

Hiërarchische documentstructuuranalyse is cruciaal bij het organiseren, begrijpen en verwerken van uitgebreide documenten. Deze aanpak is essentieel voor het semantisch segmenteren van lange documenten om het begrip te verbeteren, navigatie te vergemakkelijken en het ophalen van informatie te verbeteren. De komst van retrieval-geaugmenteerde generatie (RAG) in document-generatieve AI onderschrijft het belang van hiërarchische documentstructuuranalyse.

Het indelingsmodel ondersteunt secties en subsecties in de uitvoer, waarmee de relatie tussen secties en objecten in elke sectie wordt geïdentificeerd. De hiërarchische structuur wordt in elements voor elke sectie onderhouden. U kunt het uitvoerantwoord voor de Markdown-indeling gebruiken om eenvoudig de secties en subsecties in Markdown op te halen.

document_intelligence_client = DocumentIntelligenceClient(endpoint=endpoint, credential=AzureKeyCredential(key))
poller = document_intelligence_client.begin_analyze_document(
    "prebuilt-layout",
    AnalyzeDocumentRequest(url_source=url),
    output_content_format=ContentFormat.MARKDOWN,
)

Deze inhoud is van toepassing op:checkmarkv3.1 (GA) | Nieuwste versie:purple-checkmarkv4.0 (GA) | Eerdere versies:blue-checkmarkv3.0blue-checkmarkv2.1

Deze inhoud is van toepassing op:red-checkmarkv3.0 (buiten gebruik stellen) | Nieuwste versies:purple-checkmarkv4.0 (GA)purple-checkmarkv3.1 | Vorige versie:blue-checkmarkv2.1 (buiten gebruik stellen)

Deze inhoud is van toepassing op:red-checkmarkv2.1 | Latest version:blue-checkmarkv4.0 (GA)

Het Document Intelligence-indelingsmodel is een geavanceerde API voor documentanalyse. Het model is gebaseerd op machine learning en is beschikbaar in de Document Intelligence-cloud. U kunt het gebruiken om documenten in verschillende indelingen te verwerken en gestructureerde gegevensweergaven van de documenten te retourneren. Het combineert een verbeterde versie van de krachtige OCR-mogelijkheden met Deep Learning-modellen. U kunt deze gebruiken om tekst, tabellen, selectiemarkeringen en documentstructuur te extraheren.

Analyse van documentindeling

Indelingsanalyse van documentstructuur is het proces van het analyseren van een document om interessegebieden en hun onderlinge relaties te extraheren. Het doel is om tekst en structurele elementen van de pagina te extraheren om betere semantische begripsmodellen te maken. Er zijn twee typen rollen in een documentindeling:

  • Geometrische rollen: Tekst, tabellen, afbeeldingen en selectiemarkeringen zijn voorbeelden van geometrische rollen.
  • Logische rollen: Titels, koppen en voetteksten zijn voorbeelden van logische rollen van teksten.

In de volgende afbeelding ziet u de typische onderdelen in een afbeelding van een voorbeeldpagina.

Afbeelding van een voorbeeld van een documentindeling.

Ondersteunde talen en landinstellingen

Zie Taalondersteuning: Documentanalysemodellen voor een volledige lijst met ondersteunde talen.

Document Intelligence v2.1 ondersteunt de volgende hulpprogramma's, toepassingen en bibliotheken.

Functie Middelen
Indelingsmodel • Hulpprogramma voor
REST API
Sdk
voor clientbibliotheek• Document Intelligence Docker-container

Invoerrichtlijnen

Ondersteunde bestandsindelingen:

Model PDF Afbeelding:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Office:
Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
Lezen
Indeling
Algemeen document
Voorgebouwd
Aangepaste extractie
Aangepaste classificatie
  • Foto's en scans: geef één duidelijke foto of een hoogwaardige scan per document op voor de beste resultaten.
  • PDF's en TIFF's: Voor PDF's en TIFF's kunnen maximaal 2000 pagina's worden verwerkt met een gratis abonnement. Alleen de eerste twee pagina's worden verwerkt.
  • Bestandsgrootte: de bestandsgrootte voor het analyseren van documenten is 500 MB voor de betaalde laag (S0) en 4 MB voor de gratis laag (F0).
  • Afbeeldingsafmetingen: De afmetingen van de afbeelding moeten tussen 50 pixels x 50 pixels en 10.000 pixels x 10.000 pixels zijn.
  • Wachtwoordvergrendelingen: als uw PDF-bestanden zijn vergrendeld met een wachtwoord, moet u de vergrendeling verwijderen voordat u ze inzendt.
  • Teksthoogte: de minimale hoogte van de tekst die moet worden geëxtraheerd, is 12 pixels voor een afbeelding van 1024 x 768 pixels. Deze dimensie komt overeen met ongeveer 8-punts tekst bij 150 punten per inch.
  • Aangepaste modeltraining: Het maximum aantal pagina's voor trainingsgegevens is 500 voor het aangepaste sjabloonmodel en 50.000 voor het aangepaste neurale model.
  • Aangepaste training voor extractiemodellen: de totale grootte van trainingsgegevens is 50 MB voor het sjabloonmodel en 1 GB voor het neurale model.
  • Training voor aangepast classificatiemodel: de totale grootte van trainingsgegevens is 1 GB met maximaal 10.000 pagina's. Voor 2024-11-30 (GA) is de totale grootte van trainingsgegevens 2 GB met maximaal 10.000 pagina's.
  • Office-bestandstypen (DOCX, XLSX, PPTX): de maximale tekenreekslengte is 8 miljoen tekens.

Invoerhandleiding

  • Ondersteunde bestandsindelingen: JPEG, PNG, PDF en TIFF.
  • Ondersteund aantal pagina's: voor PDF en TIFF worden maximaal 2000 pagina's verwerkt. Voor abonnees van de gratis laag worden alleen de eerste twee pagina's verwerkt.
  • Ondersteunde bestandsgrootte: de bestandsgrootte moet kleiner zijn dan 50 MB en de afmetingen moeten ten minste 50 x 50 pixels en maximaal 10.000 x 10.000 pixels zijn.

Beginnen

U kunt Document intelligence gebruiken om gegevens zoals tekst, tabellen, tabelkoppen, selectiemarkeringen en structuurgegevens uit documenten te extraheren. U hebt de volgende resources nodig:

  • Een Azure-abonnement. U kunt er gratis een maken.
  • Een Document Intelligence-exemplaar in de Azure-portal. U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen. Nadat uw resource is geïmplementeerd, selecteert u Ga naar de resource om uw sleutel en eindpunt op te halen.

Schermafbeelding met de sleutels en eindpuntlocatie in de Azure portal.

Nadat u uw sleutel en eindpunt hebt opgehaald, kunt u de volgende ontwikkelopties gebruiken om uw Document Intelligence-toepassingen te bouwen en te implementeren.

Opmerking

Document Intelligence Studio is beschikbaar met v3.0-API's en latere versies.

REST API

Document Intelligence-hulpprogramma voor het labelen van voorbeelden

  1. Ga naar het Document Intelligence Sample Labeling-tool.

  2. Selecteer Op de startpagina van het voorbeeldhulpprogramma de optie Indeling gebruiken om tekst, tabellen en selectiemarkeringen op te halen.

    Schermopname van verbindingsinstellingen voor het documentinformatie-indelingsproces.

  3. Plak in het veld Eindpunt van de Document Intelligence-service het eindpunt dat u hebt verkregen met uw Document Intelligence-abonnement.

  4. Plak in het sleutelveld de sleutel die u hebt verkregen uit uw Document Intelligence-resource.

  5. Selecteer in het veld Bronde URL in de vervolgkeuzelijst. U kunt het voorbeelddocument gebruiken:

  6. Selecteer Indeling uitvoeren. Met de tool voor labelen in Document Intelligence wordt de API voor lay-outanalyse aangeroepen om het document te analyseren.

    Schermopname van het vervolgkeuzevenster Indeling.

  7. Bekijk de resultaten. Bekijk de gemarkeerde geëxtraheerde tekst, gedetecteerde selectiemarkeringen en gedetecteerde tabellen.

    Schermopname van verbindingsinstellingen voor het hulpprogramma Document Intelligence-voorbeeldlabels.

Document Intelligence v2.1 ondersteunt de volgende hulpprogramma's, toepassingen en bibliotheken.

Functie Middelen
Indelings-API • Hulpprogramma voor
REST API
Sdk
voor clientbibliotheek• Document Intelligence Docker-container

Gegevens extraheren

Het indelingsmodel extraheert structurele elementen uit uw documenten. De structurele elementen worden hier beschreven en de volgende richtlijnen laten zien hoe u deze kunt extraheren uit uw documentinvoer.

Gegevens extraheren

Het indelingsmodel extraheert structurele elementen uit uw documenten. De structurele elementen worden hier beschreven en de volgende richtlijnen laten zien hoe u deze kunt extraheren uit uw documentinvoer.

Pagina

De pages verzameling is een lijst met pagina's in het document. Elke pagina wordt opeenvolgend in het document weergegeven en bevat de richtingshoek die aangeeft of de pagina wordt gedraaid en de breedte en hoogte (afmetingen in pixels). De pagina-eenheden in de modeluitvoer worden berekend zoals weergegeven in de volgende tabel.

Bestandsindeling Berekende pagina-eenheid Totaal aantal pagina's
Afbeeldingen (JPEG/JPG, PNG, BMP, HEIF) Elke afbeelding = 1 pagina-eenheid. Totaal aantal afbeeldingen
PDF Elke pagina in de PDF = 1 pagina-eenheid. Totaal aantal pagina's in het PDF-bestand
TIFF Elke afbeelding in de TIFF = 1 pagina-eenheid. Totaal aantal afbeeldingen in de TIFF
Word (DOCX) Maximaal 3000 tekens = 1 pagina-eenheid. Ingesloten of gekoppelde afbeeldingen worden niet ondersteund. Totaal aantal pagina's van maximaal 3000 tekens per pagina
Excel (XLSX) Elk werkblad = 1 pagina-eenheid. Ingesloten of gekoppelde afbeeldingen worden niet ondersteund. Totaal aantal werkbladen
PowerPoint (PPTX) Elke dia is gelijk aan één pagina-eenheid. Ingesloten of gekoppelde afbeeldingen worden niet ondersteund. Totaal aantal dia's
HTML Maximaal 3000 tekens = 1 pagina-eenheid. Ingesloten of gekoppelde afbeeldingen worden niet ondersteund. Totaal aantal pagina's van maximaal 3000 tekens per pagina
"pages": [
    {
        "pageNumber": 1,
        "angle": 0,
        "width": 915,
        "height": 1190,
        "unit": "pixel",
        "words": [],
        "lines": [],
        "spans": []
    }
]
# Analyze pages.
for page in result.pages:
    print(f"----Analyzing layout from page #{page.page_number}----")
    print(
        f"Page has width: {page.width} and height: {page.height}, measured with unit: {page.unit}"
    )

Geselecteerde pagina's uit documenten extraheren

Voor grote documenten met meerdere pagina's gebruikt u de pages queryparameter om specifieke paginanummers of paginabereiken aan te geven voor tekstextractie.

Paragraaf

Met het indelingsmodel worden alle geïdentificeerde tekstblokken in de verzameling geëxtraheerd als een object op het paragraphs hoogste niveau onder analyzeResults. Elke vermelding in deze verzameling vertegenwoordigt een tekstblok en bevat de geëxtraheerde tekst als contenten de begrenzingscoördinaten polygon . De span informatie verwijst naar het tekstfragment in de eigenschap op het hoogste niveau content die de volledige tekst uit het document bevat.


"paragraphs": [
    {
        "spans": [],
        "boundingRegions": [],
        "content": "While healthcare is still in the early stages of its Al journey, we are seeing pharmaceutical and other life sciences organizations making major investments in Al and related technologies.\" TOM LAWRY | National Director for Al, Health and Life Sciences | Microsoft"
    }
]

Paragraafrol

Met de nieuwe paginaobjectdetectie op basis van machine learning worden logische rollen geëxtraheerd, zoals titels, sectiekoppen, paginakopteksten, paginavoetteksten en meer. Met het Document Intelligence-indelingsmodel worden bepaalde tekstblokken in de paragraphs verzameling toegewezen met hun gespecialiseerde rol of type dat door het model wordt voorspeld. U kunt het beste alinearollen met ongestructureerde documenten gebruiken om inzicht te verkrijgen in de indeling van de geëxtraheerde inhoud voor een uitgebreidere semantische analyse. De volgende paragraafrollen worden ondersteund.

Voorspelde rol Beschrijving Ondersteunde bestandstypen
title De hoofdkoppen op de pagina PDF, Afbeelding, DOCX, PPTX, XLSX, HTML
sectionHeading Een of meer subkoppen op de pagina PDF, Afbeelding, DOCX, XLSX, HTML
footnote Tekst onder aan de pagina PDF, afbeelding
pageHeader Tekst aan de bovenrand van de pagina PDF, Afbeelding, DOCX
pageFooter Tekst aan de onderkant van de pagina PDF, Afbeelding, DOCX, PPTX, HTML
pageNumber Paginanummer PDF, afbeelding
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Tekst, lijn en woord

Het documentindelingsmodel in Document Intelligence extraheert tekst in afdruk- en handgeschreven stijl als regels en woorden. De styles verzameling omvat alle handgeschreven stijlen voor lijnen als deze worden gedetecteerd, samen met de reeksen die naar de bijbehorende tekst verwijzen. Deze functie is van toepassing op ondersteunde handgeschreven talen.

Voor Word, Excel, PowerPoint en HTML worden met het indelingsmodel Document Intelligence v4.0 2024-11-30 (GA) alle ingesloten tekst geëxtraheerd. Teksten worden opgedeeld in woorden en alinea's. Ingesloten afbeeldingen worden niet ondersteund.

"words": [
    {
        "content": "While",
        "polygon": [],
        "confidence": 0.997,
        "span": {}
    },
],
"lines": [
    {
        "content": "While healthcare is still in the early stages of its Al journey, we",
        "polygon": [],
        "spans": [],
    }
]
# Analyze lines.
for line_idx, line in enumerate(page.lines):
    words = line.get_words()
    print(
        f"...Line # {line_idx} has word count {len(words)} and text '{line.content}' "
        f"within bounding polygon '{format_polygon(line.polygon)}'"
    )

    # Analyze words.
    for word in words:
        print(
            f"......Word '{word.content}' has a confidence of {word.confidence}"
        )

Handgeschreven stijl

Het antwoord omvat het classificeren of elke tekstregel een handschriftstijl heeft of niet, samen met een betrouwbaarheidsscore. Zie Handgeschreven taalondersteuning voor meer informatie. In het volgende voorbeeld ziet u een voorbeeld van een JSON-fragment.

"styles": [
{
    "confidence": 0.95,
    "spans": [
    {
        "offset": 509,
        "length": 24
    }
    "isHandwritten": true
    ]
}

Als u de mogelijkheid voor de invoegtoepassing lettertype/stijl inschakelt, krijgt u ook het resultaat lettertype/stijl als onderdeel van het styles object.

Selectiemarkering

Het indelingsmodel extraheert ook selectiemarkeringen uit documenten. Geëxtraheerde selectiemarkeringen worden weergegeven in de pages verzameling voor elke pagina. Ze bevatten de begrenzing polygon, confidence, en selectie state (selected/unselected). De tekstweergave (dat wil gezegd :selected: en :unselected) wordt ook opgenomen als de beginindex (offset) en length die verwijst naar de eigenschap op het hoogste niveau content die de volledige tekst uit het document bevat.

{
    "selectionMarks": [
        {
            "state": "unselected",
            "polygon": [],
            "confidence": 0.995,
            "span": {
                "offset": 1421,
                "length": 12
            }
        }
    ]
}
# Analyze selection marks.
for selection_mark in page.selection_marks:
    print(
        f"Selection mark is '{selection_mark.state}' within bounding polygon "
        f"'{format_polygon(selection_mark.polygon)}' and has a confidence of {selection_mark.confidence}"
    )

Tabel

Het extraheren van tabellen is een belangrijke vereiste voor het verwerken van documenten die grote hoeveelheden gegevens bevatten die doorgaans zijn opgemaakt als tabellen. Het indelingsmodel extraheert tabellen in de pageResults sectie van de JSON-uitvoer. Geëxtraheerde tabelgegevens bevatten het aantal kolommen en rijen, rijspanne en kolomspanne. Elke cel met zijn begrenzingsveelhoek wordt geëxporteerd, samen met de informatie of het gebied als columnHeader wordt herkend of niet.

Het model ondersteunt het extraheren van tabellen die worden gedraaid. Elke tabelcel bevat de rij- en kolomindex en begrenzingspogoncoördinaten. Voor de celtekst voert het model de span informatie uit die de beginindex (offset) bevat. Het model geeft ook de length weer binnen topniveau-content die de volledige tekst van het document bevat.

Hier volgen enkele factoren die u moet overwegen wanneer u de mogelijkheid voor extractie van documentinformatiebalen gebruikt:

  • Zijn de gegevens die u wilt ophalen als een tabel en is de tabelstructuur zinvol?
  • Kunnen de gegevens in een tweedimensionaal raster passen als de gegevens niet in een tabelindeling zijn opgenomen?
  • Beslaan uw tabellen meerdere pagina's? Zo ja, om te voorkomen dat u alle pagina's moet labelen, splitst u het PDF-bestand op in pagina's voordat u het naar Document Intelligence verzendt. Na de analyse worden de pagina's verwerkt tot één tabel.
  • Zie Tabellaire velden als u aangepaste modellen maakt. Dynamische tabellen hebben een variabel aantal rijen voor elke kolom. Vaste tabellen hebben een constant aantal rijen voor elke kolom.

Opmerking

Tabelanalyse wordt niet ondersteund als het invoerbestand XLSX is. Document Intelligence v4.0 2024-11-30 (GA) ondersteunt begrenzingsregio's voor afbeeldingen en tabellen die alleen de kerninhoud dekken en het bijbehorende bijschrift en voetnoten uitsluiten.

{
    "tables": [
        {
            "rowCount": 9,
            "columnCount": 4,
            "cells": [
                {
                    "kind": "columnHeader",
                    "rowIndex": 0,
                    "columnIndex": 0,
                    "columnSpan": 4,
                    "content": "(In millions, except earnings per share)",
                    "boundingRegions": [],
                    "spans": []
                    },
            ]
        }
    ]
}

# Analyze tables.
for table_idx, table in enumerate(result.tables):
    print(
        f"Table # {table_idx} has {table.row_count} rows and "
        f"{table.column_count} columns"
    )
    for region in table.bounding_regions:
        print(
            f"Table # {table_idx} location on page: {region.page_number} is {format_polygon(region.polygon)}"
        )
    for cell in table.cells:
        print(
            f"...Cell[{cell.row_index}][{cell.column_index}] has text '{cell.content}'"
        )
        for region in cell.bounding_regions:
            print(
                f"...content on page {region.page_number} is within bounding polygon '{format_polygon(region.polygon)}'"
            )

Aantekeningen

Het indelingsmodel extraheert aantekeningen in documenten, zoals vinkjes en kruisjes. Het antwoord bevat het soort annotatie, samen met een betrouwbaarheidsscore en begrenzingspolygon.

    {
    "pages": [
    {
        "annotations": [
        {
            "kind": "cross",
            "polygon": [...],
            "confidence": 1
        }
        ]
    }
    ]
}

Uitvoer van natuurlijke leesvolgorde (alleen Latijns)

U kunt de volgorde opgeven waarin de tekstregels worden uitgevoerd met de readingOrder queryparameter. Gebruik natural voor een mensvriendelijkere leesvolgorde-uitvoer, zoals in het volgende voorbeeld wordt getoond. Deze functie wordt alleen ondersteund voor Latijnse talen.

Schermopname van de verwerking van de leesvolgorde van het indelingsmodel.

Paginanummer of -bereik selecteren voor tekstextractie

Voor grote documenten met meerdere pagina's gebruikt u de pages queryparameter om specifieke paginanummers of paginabereiken aan te geven voor tekstextractie. In het volgende voorbeeld ziet u een document met 10 pagina's, met tekst die is geëxtraheerd voor beide gevallen, alle pagina's (1-10) en geselecteerde pagina's (3-6).

Schermopname van de uitvoer van de geselecteerde pagina's van het indelingsmodel.

De bewerking Resultaat van Analyse van Layout ophalen

De tweede stap is het aanroepen van de Get Analyze Layout Result bewerking. Deze bewerking neemt als invoer de resultaat-id op die door de Analyze Layout bewerking is gemaakt. Het retourneert een JSON-antwoord dat een statusveld bevat met de volgende mogelijke waarden.

Veld Type Mogelijke waarden
Status Tekenreeks notStarted: De analysebewerking is niet gestart.

running: De analysebewerking wordt uitgevoerd.

failed: de analysebewerking is mislukt.

succeeded: de analysebewerking is voltooid.

Roep deze bewerking iteratief aan totdat deze de succeeded waarde retourneert. Gebruik een interval van drie tot vijf seconden om te voorkomen dat de aanvraag per seconde wordt overschreden.

Wanneer het statusveld de succeeded waarde heeft, bevat het JSON-antwoord de geëxtraheerde indeling, tekst, tabellen en selectiemarkeringen. De geëxtraheerde gegevens omvatten geëxtraheerde tekstregels en woorden, beperkte vakken, tekstweergave met handgeschreven indicatie, tabellen en selectiemarkeringen met een aanduiding of ze geselecteerd of niet-geselecteerd zijn.

Handgeschreven classificatie voor tekstregels (alleen Latijns)

Het antwoord omvat het classificeren of elke tekstregel een handgeschreven stijl heeft of niet, samen met een betrouwbaarheidsscore. Deze functie wordt alleen ondersteund voor Latijnse talen. In het volgende voorbeeld ziet u de handgeschreven classificatie voor de tekst in de afbeelding.

Schermopname van het proces voor het classificeren van handschriften in het indelingsmodel.

Voorbeeld van JSON-uitvoer

Het antwoord op de Get Analyze Layout Result bewerking is een gestructureerde weergave van het document met alle informatie die is geëxtraheerd. Zie een sample-documentbestand en de gestructureerde uitvoer sample indelingsuitvoer.

De JSON-uitvoer bestaat uit twee delen:

  • Het readResults knooppunt bevat alle herkende tekst en selectiemarkeringen. De hiërarchie van de tekstpresentatie is pagina, vervolgens regel en vervolgens afzonderlijke woorden.
  • Het pageResults knooppunt bevat de tabellen en cellen die zijn geëxtraheerd met de begrenzingsvakken, betrouwbaarheid en een verwijzing naar de regels en woorden in het readResults veld.

Voorbeelduitvoer

Tekst

De indelings-API extraheert tekst uit documenten en afbeeldingen met meerdere teksthoeken en kleuren. Het accepteert foto's van documenten, faxen, afgedrukte en/of handgeschreven tekst (alleen in het Engels) en gemengde modi. Tekst wordt geëxtraheerd met informatie over regels, woorden, begrenzingsvakken, betrouwbaarheidsscores en stijl (handgeschreven of andere). Alle tekstinformatie wordt opgenomen in de readResults sectie van de JSON-uitvoer.

Tabellen met kopteksten

De Layout-API extraheert tabellen in de pageResults sectie van de JSON-uitvoer. U kunt documenten scannen, fotograferen of digitaliseren. Tabellen kunnen complex zijn met samengevoegde cellen of kolommen, met of zonder randen, en met oneven hoeken.

Geëxtraheerde tabelgegevens bevatten het aantal kolommen en rijen, rijspanne en kolomspanne. Elke cel met het begrenzingsvak wordt samen met de aanduiding of het gebied als een onderdeel van een koptekst wordt herkend of niet, uitgegeven. De model voorspelde koptekstcellen kunnen meerdere rijen omvatten en zijn niet noodzakelijkerwijs de eerste rijen in een tabel. Ze werken ook met gedraaide tabellen. Elke tabelcel bevat ook de volledige tekst met verwijzingen naar de afzonderlijke woorden in de readResults sectie.

Afbeelding van een tabelvoorbeeld.

Selectiemarkeringen voor documenten

Met de indelings-API worden ook selectiemarkeringen uit documenten geëxtraheerd. Uitgepakte selectiemarkeringen bevatten het begrenzingsvak, betrouwbaarheid en status (geselecteerd/uitgeschakeld). Informatie over selectiemarkeringen wordt geëxtraheerd in de readResults sectie van de JSON-uitvoer.

Migratiehandleiding