Delen via


Document-API-antwoord analyseren

Deze inhoud is van toepassing op:checkmarkv4.0 (preview)checkmarkv3.1 (GA)checkmarkv3.0 (GA)

In dit artikel gaan we kijken naar de verschillende objecten die worden geretourneerd als onderdeel van het AnalyzeDocument antwoord en hoe u het ANTWOORD van de documentanalyse-API in uw toepassingen gebruikt.

Documentaanvraag analyseren

De Document Intelligence-API's analyseren afbeeldingen, PDF-bestanden en andere documentbestanden om verschillende inhoud, indeling, stijl en semantische elementen te extraheren en te detecteren. De analysebewerking is een asynchrone API. Als u een document indient, wordt een header van de bewerkingslocatie geretourneerd die de URL bevat voor voltooiing. Wanneer een analyseaanvraag is voltooid, bevat het antwoord de elementen die worden beschreven in de gegevensextractie van het model.

Antwoordelementen

  • Inhoudselementen zijn de basistekstelementen die uit het document zijn geëxtraheerd.

  • Indelingselementen groeperen inhoudselementen in structurele eenheden.

  • Stijlelementen beschrijven het lettertype en de taal van inhoudselementen.

  • Semantische elementen wijzen betekenis toe aan de opgegeven inhoudselementen.

Alle inhoudselementen worden gegroepeerd op basis van pagina's, opgegeven door paginanummer (1geïndexeerd). Ze worden ook gesorteerd op leesvolgorde die semantisch aaneengesloten elementen rangschikt, zelfs als ze lijn- of kolomgrenzen overschrijden. Wanneer de leesvolgorde tussen alinea's en andere indelingselementen dubbelzinnig is, retourneert de service doorgaans de inhoud in een volgorde van links naar rechts, van boven naar beneden.

Notitie

Document Intelligence biedt momenteel geen ondersteuning voor leesvolgorde voor paginagrenzen. Selectiemarkeringen worden niet in de omringende woorden geplaatst.

De inhoudseigenschap op het hoogste niveau bevat een samenvoeging van alle inhoudselementen in leesrichting. Alle elementen geven hun positie op in de volgorde van de lezer via spans binnen deze inhoudsreeks. De inhoud van sommige elementen is niet altijd aaneengesloten.

Antwoord analyseren

Het analyseantwoord voor elke API retourneert verschillende objecten. API-antwoorden bevatten elementen van onderdeelmodellen, indien van toepassing.

Antwoordinhoud Beschrijving API
Blz Woorden, lijnen en spanen die worden herkend vanaf elke pagina van het invoerdocument. Lees-, indelings-, algemeen document-, vooraf samengestelde en aangepaste modellen
Leden Inhoud die wordt herkend als alinea's. Lees-, indelings-, algemeen document-, vooraf samengestelde en aangepaste modellen
Stijlen Geïdentificeerde eigenschappen van tekstelement. Lees-, indelings-, algemeen document-, vooraf samengestelde en aangepaste modellen
Talen Geïdentificeerde taal die is gekoppeld aan elk bereik van de geëxtraheerde tekst Read
Tabellen Inhoud in tabelvorm geïdentificeerd en geëxtraheerd uit het document. Tabellen hebben betrekking op tabellen die zijn geïdentificeerd door het vooraf getrainde indelingsmodel. Inhoud die is gelabeld als tabellen, wordt geëxtraheerd als gestructureerde velden in het documentobject. Indeling, algemeen document, factuur en aangepaste modellen
Cijfers Afbeeldingen (grafieken, afbeeldingen) geïdentificeerd en geëxtraheerd uit het document, met visuele weergaven die helpen bij het begrijpen van complexe informatie. Indelingsmodel
Secties Hiërarchische documentstructuur geïdentificeerd en geëxtraheerd uit het document. Sectie of subsectie waaraan de bijbehorende elementen (alinea, tabel, afbeelding) zijn gekoppeld. Indelingsmodel
keyValuePairs Sleutel-waardeparen die worden herkend door een vooraf getraind model. De sleutel is een reeks tekst uit het document met de bijbehorende waarde. Algemene document- en factuurmodellen
Documenten Herkende velden worden geretourneerd in de fields woordenlijst in de lijst met documenten Vooraf samengestelde modellen, aangepaste modellen.

Zie modelgegevensextractie voor meer informatie over de objecten die door elke API worden geretourneerd.

Elementeigenschappen

Spans

Spans specificeren de logische positie van elk element in de algehele leesvolgorde, waarbij elke span een tekenverschil en lengte opgeeft in de tekenreekseigenschap op het hoogste niveau. Standaard worden tekenverschuivingen en lengten geretourneerd in eenheden van door de gebruiker waargenomen tekens (ook wel bekend als grapheme clusters tekstelementen). Voor verschillende ontwikkelomgevingen die gebruikmaken van verschillende tekeneenheden, kan de gebruiker ook de stringIndexIndex queryparameter opgeven om span-offsets en lengtes in Unicode-codepunten (Python 3) of UTF16-code-eenheden (Java, JavaScript, .NET) te retourneren. Zie ondersteuning voor meertalige/emoji's voor meer informatie.

Screenshot of detected span example.

Begrenzingsregio

Begrenzingsregio's beschrijven de visuele positie van elk element in het bestand. Wanneer elementen niet visueel aaneengesloten of kruislingse pagina's (tabellen) zijn, worden de posities van de meeste elementen beschreven via een matrix van begrenzingsregio's. Elke regio geeft het paginanummer (1geïndexeerd) en de begrenzingsveelhoek op. De begrenzingsveelhoek wordt beschreven als een reeks punten, rechtsom ten opzichte van de natuurlijke richting van het element. Voor quadrilaterals zijn tekenpunten linksboven, rechtsboven, rechtsonder en hoeken linksonder. Elk punt vertegenwoordigt de x, y-coördinaat in de pagina-eenheid die is opgegeven door de eenheidseigenschap. In het algemeen is de maateenheid voor afbeeldingen pixels terwijl PDF-bestanden inch gebruiken.

Screenshot of detected bounding regions example.

Notitie

Op dit moment retourneert Document Intelligence alleen vier hoekpunt quadrilateralen als begrenzings polygonen. Toekomstige versies kunnen verschillende punten retourneren om complexere vormen te beschrijven, zoals gebogen lijnen of niet-rechthoekige afbeeldingen. Afhankelijke regio's die alleen worden toegepast op gerenderde bestanden, als het bestand niet wordt weergegeven, worden er geen begrenzingsregio's geretourneerd. Momenteel worden bestanden van docx/xlsx/pptx/html-indeling niet weergegeven.

Inhoudselementen

Word

Een woord is een inhoudselement dat bestaat uit een reeks tekens. Met Document Intelligence wordt een woord gedefinieerd als een reeks aangrenzende tekens, waarbij witruimte woorden van elkaar scheidt. Voor talen die geen spatiescheidingstekens tussen woorden gebruiken, wordt elk teken geretourneerd als een afzonderlijk woord, zelfs als dit geen semantische woordeenheid vertegenwoordigt.

Screenshot of detected words example.

Selectiemarkeringen

Een selectiemarkering is een inhoudselement dat een visueel symbool aangeeft dat de status van een selectie aangeeft. Selectievakje is een veelgebruikte vorm van selectiemarkeringen. Ze worden echter ook weergegeven via keuzerondjes of een cel in een vak in een visueel formulier. De status van een selectiemarkering kan worden geselecteerd of uitgeschakeld, met een andere visuele weergave om de status aan te geven.

Screenshot of detected selection marks example.

Indelingselementen

Lijn

Een regel is een geordende reeks opeenvolgende inhoudselementen, gescheiden door een visuele ruimte, of de elementen die direct grenzen aan talen zonder spatiescheidingstekens tussen woorden. Inhoudselementen in hetzelfde horizontale vlak (rij), maar gescheiden door meer dan één visuele ruimte worden meestal gesplitst in meerdere lijnen. Hoewel deze functie soms semantisch aaneengesloten inhoud in afzonderlijke regels splitst, kan de weergave van tekstuele inhoud worden gesplitst in meerdere kolommen of cellen. Lijnen in verticaal schrijven worden gedetecteerd in de verticale richting.

Screenshot of detected lines example.

Alinea

Een alinea is een geordende reeks regels die een logische eenheid vormen. Normaal gesproken delen de lijnen gemeenschappelijke uitlijning en afstand tussen lijnen. Alinea's worden vaak gescheiden door inspringing, extra afstand of opsommingstekens/nummering. Inhoud kan slechts aan één alinea worden toegewezen. Selectie van alinea's kan ook worden gekoppeld aan een functionele rol in het document. Momenteel ondersteunde rollen zijn paginakoptekst, paginavoettekst, paginanummer, titel, sectiekop en voetnoot.

Screenshot of detected paragraphs example.

Pagina

Een pagina is een groepering van inhoud die doorgaans overeenkomt met één zijde van een vel papier. Een gerenderde pagina wordt gekenmerkt door breedte en hoogte in de opgegeven eenheid. In het algemeen gebruiken afbeeldingen pixel terwijl PDF-bestanden inch gebruiken. De hoekeigenschap beschrijft de totale teksthoek in graden voor pagina's die kunnen worden gedraaid.

Notitie

Voor spreadsheets zoals Excel wordt elk blad toegewezen aan een pagina. Voor presentaties, zoals PowerPoint, wordt elke dia toegewezen aan een pagina. Voor bestandsindelingen zonder een systeemeigen concept van pagina's zonder te worden weergegeven als HTML- of Word-documenten, wordt de hoofdinhoud van het bestand beschouwd als één pagina.

Tabel

Een tabel ordent inhoud in een groep cellen in een rasterindeling. De rijen en kolommen kunnen visueel worden gescheiden door rasterlijnen, kleurstreepjes of grotere afstand. De positie van een tabelcel wordt opgegeven via de rij- en kolomindexen. Een cel kan meerdere rijen en kolommen omvatten.

Op basis van de positie en stijl kan een cel worden geclassificeerd als algemene inhoud, rijkop, kolomkop, stubkop of beschrijving:

  • Een rijkopcel is doorgaans de eerste cel in een rij waarin de andere cellen in de rij worden beschreven.

  • Een kolomkopcel is doorgaans de eerste cel in een kolom waarin de andere cellen in een kolom worden beschreven.

  • Een rij of kolom kan meerdere koptekstcellen bevatten om hiërarchische inhoud te beschrijven.

  • Een stubkopcel is doorgaans de cel in de eerste rij en de positie van de eerste kolom. Het kan leeg zijn of de waarden in de veldnamencellen in dezelfde rij/kolom beschrijven.

  • Een beschrijvingscel wordt over het algemeen weergegeven in het bovenste of onderste gebied van een tabel, waarin de algemene inhoud van de tabel wordt beschreven. Het kan echter soms midden in een tabel worden weergegeven om de tabel op te splitsen in secties. Beschrijvingscellen omvatten doorgaans meerdere cellen in één rij.

  • Een tabel onderschrift bevat inhoud waarin de tabel wordt uitgelegd. Een tabel kan verder een gekoppelde onderschrift en een set voetnoten hebben. In tegenstelling tot een beschrijvingscel ligt een onderschrift doorgaans buiten de rasterindeling. Een tabel voetnoot annotaeert inhoud in de tabel, vaak gemarkeerd met een voetnootsymbool dat vaak onder het tabelraster wordt gevonden.

Indelingstabellen verschillen van documentvelden die zijn geëxtraheerd uit tabelgegevens. Indelingstabellen worden geëxtraheerd uit inhoud in tabelvorm in het document zonder rekening te houden met de semantiek van de inhoud. In feite zijn sommige indelingstabellen uitsluitend ontworpen voor visuele indeling en bevatten ze niet altijd gestructureerde gegevens. De methode voor het extraheren van gestructureerde gegevens uit documenten met diverse visuele indelingen, zoals geitemiseerde details van een ontvangstbewijs, vereist doorgaans aanzienlijke naverwerking. Het is essentieel om de rij- of kolomkoppen toe te wijzen aan gestructureerde velden met genormaliseerde veldnamen. Afhankelijk van het documenttype gebruikt u vooraf gemaakte modellen of traint u een aangepast model om dergelijke gestructureerde inhoud te extraheren. De resulterende informatie wordt weergegeven als documentvelden. Dergelijke getrainde modellen kunnen ook tabellaire gegevens verwerken zonder kopteksten en gestructureerde gegevens in niet-tabelvorm, bijvoorbeeld de werkervaringsectie van een cv.

Layout table

Cijfers

Afbeeldingen (grafieken, afbeeldingen) in documenten spelen een cruciale rol bij het aanvullen en verbeteren van de tekstuele inhoud, waardoor visuele weergaven worden geboden die helpen bij het begrijpen van complexe informatie. Het afbeeldingsobject 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 (details van de tekst die betrekking heeft op de afbeelding, waarbij de offsets en lengten binnen de tekst van het document worden opgegeven. 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 gerelateerd zijn aan of beschrijven de afbeelding) en caption of er een is.

{
    "figures": [
      {
        "boundingRegions": [],
        "spans": [],
        "elements": [
          "/paragraphs/15",
          ...
        ],
        "caption": {
          "content": "Here is a figure with some text",
          "boundingRegions": [],
          "spans": [],
          "elements": [
            "/paragraphs/15"
          ]
        }
      }
    ]
}

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 Het ophalen van Augmented Generation (RAG) in documentgeneratieve AI onderstreept de betekenis 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 elke sectie onderhouden.

{
    "sections": [
      {
        "spans": [],
        "elements": [
          "/paragraphs/0",
          "/sections/1",
          "/sections/2",
          "/sections/5"
        ]
      },
...
}

Formulierveld (sleutelwaardepaar)

Een formulierveld bestaat uit een veldlabel (sleutel) en waarde. Het veldlabel is over het algemeen een beschrijvende tekenreeks die de betekenis van het veld beschrijft. Deze wordt vaak links van de waarde weergegeven, maar kan ook boven of onder de waarde worden weergegeven. De veldwaarde bevat de inhoudswaarde van een specifiek veldexemplaren. De waarde kan bestaan uit woorden, selectiemarkeringen en andere inhoudselementen. Het kan ook leeg zijn voor niet-ingevulde formuliervelden. Een speciaal type formulierveld heeft een selectiemarkeringswaarde met het veldlabel rechts. Documentveld is een vergelijkbaar maar verschillend concept van algemene formuliervelden. Het veldlabel (sleutel) in een algemeen formulierveld moet worden weergegeven in het document. Het kan dus in het algemeen geen informatie vastleggen zoals de naam van de verkoper in een ontvangstbewijs. Documentvelden worden gelabeld en er wordt geen sleutel geëxtraheerd. Documentvelden wijzen alleen een geëxtraheerde waarde toe aan een gelabelde sleutel. Ziedocumentvelden voor meer informatie.

Screenshot of detected key-value pairs example.

Stijlelementen

Stijl

Een stijlelement beschrijft de lettertypestijl die moet worden toegepast op tekstinhoud. De inhoud wordt opgegeven via spans in de globale inhoudseigenschap. Momenteel is de enige gedetecteerde tekenstijl of de tekst handgeschreven is. Terwijl er andere stijlen worden toegevoegd, kan tekst worden beschreven via meerdere niet-conflicterende stijlobjecten. Voor compactheid worden alle tekst die de specifieke tekenstijl (met dezelfde betrouwbaarheid) deelt, beschreven via één stijlobject.

Screenshot of detected style handwritten text example.


{
    "confidence": 1,
    "spans": [
        {
            "offset": 2402,
            "length": 7
        }
    ],
    "isHandwritten": true
}

Taal

Een taalelement beschrijft de gedetecteerde taal voor inhoud die via spans is opgegeven in de globale inhoudseigenschap. De gedetecteerde taal wordt opgegeven via een BCP-47-taaltag om de primaire taal en optionele script- en regiogegevens aan te geven. Engels en traditioneel Chinees worden bijvoorbeeld herkend als respectievelijk "en" en zh-Hant. Regionale spellingverschillen voor Engels in het Verenigd Koninkrijk kunnen ertoe leiden dat tekst wordt gedetecteerd als en-GB. Taalelementen hebben geen betrekking op tekst zonder dominante taal (bijvoorbeeld getallen).

Semantische elementen

Notitie

De semantische elementen die hier worden besproken, zijn van toepassing op vooraf gedefinieerde Document Intelligence-modellen. Uw aangepaste modellen kunnen verschillende gegevensweergaven retourneren. Datum en tijd die worden geretourneerd door een aangepast model, kunnen bijvoorbeeld worden weergegeven in een patroon dat verschilt van de standaard ISO 8601-opmaak.

Document

Een document is een semantisch volledige eenheid. Een bestand kan meerdere documenten bevatten, zoals meerdere belastingformulieren in een PDF-bestand of meerdere ontvangstbewijzen op één pagina. De volgorde van documenten in het bestand heeft echter geen fundamentele invloed op de informatie die wordt overgebracht.

Notitie

Document Intelligence biedt momenteel geen ondersteuning voor meerdere documenten op één pagina.

Het documenttype beschrijft documenten die een gemeenschappelijke set semantische velden delen, vertegenwoordigd door een gestructureerd schema, onafhankelijk van de visuele sjabloon of indeling. Alle documenten van het type 'ontvangstbewijs' kunnen bijvoorbeeld de naam, transactiedatum en transactietotaal bevatten, hoewel restaurant- en hotelbevestigingen vaak verschillen in uiterlijk.

Een documentelement bevat de lijst met herkende velden uit de velden die zijn opgegeven door het semantische schema van het gedetecteerde documenttype:

  • Een documentveld kan worden geëxtraheerd of afgeleid. Geëxtraheerde velden worden weergegeven via de geëxtraheerde inhoud en eventueel de genormaliseerde waarde, indien geïnterpreteerd.

  • Een afgeleid veld heeft geen inhoudseigenschap en wordt alleen weergegeven via de waarde ervan.

  • Een matrixveld bevat geen inhoudseigenschap. De inhoud kan worden samengevoegd vanuit de inhoud van de matrixelementen.

  • Een objectveld bevat wel een inhoudseigenschap die de volledige inhoud aangeeft die het object vertegenwoordigt dat een superset van de geëxtraheerde subvelden kan zijn.

Het semantische schema van een documenttype wordt beschreven via de velden die het bevat. Elk veldschema wordt opgegeven via de canonieke naam en het waardetype. Veldwaardetypen zijn basistypen (bijvoorbeeld tekenreeks), samengestelde (bijvoorbeeld adres) en gestructureerde (bijvoorbeeld matrix- en objecttypen). Het veldwaardetype geeft ook de semantische normalisatie die wordt uitgevoerd om gedetecteerde inhoud te converteren naar een normalisatieweergave. Normalisatie kan afhankelijk zijn van landinstellingen.

Basistypen

Veldwaardetype Beschrijving Genormaliseerde weergave Voorbeeld (veldinhoud -> waarde)
tekenreeks Tekst zonder opmaak Hetzelfde als inhoud MerchantName: 'Contoso' → 'Contoso'
datum Datum ISO 8601 - JJJJ-MM-DD InvoiceDate: "7-5-2022" → "2022-05-07"
tijd Tijd ISO 8601 - uu:mm:ss TransactionTime: "19:45" → "21:45:00"
phoneNumber Telefoonnummer E.164 - +{CountryCode}{SubscriberNumber} Werk Telefoon: "(800) 555-7676" → "+18005557676"
countryRegion Land/regio ISO 3166-1 alfa-3 Landregio: "Verenigde Staten" → "VS"
selectionMark Is geselecteerd "ondertekend" of "niet ondertekend" AcceptEula: ☑ → "geselecteerd"
Handtekening Is ondertekend Hetzelfde als inhoud LendeeSignature: {signature} → 'ondertekend'
Nummer Drijvende-kommagetal Drijvende-kommagetal Hoeveelheid: "1,20" → 1,2
geheel getal Geheel getal 64-bits ondertekend nummer Aantal: "123" → 123
boolean Booleaanse waarde waar/onwaar IsStatutoryEmployee: ☑ → true

Samengestelde typen

  • Valuta: Valutabedrag met optionele valuta-eenheid. Een waarde, bijvoorbeeld: InvoiceTotal: $123.45

    {
        "amount": 123.45,
        "currencySymbol": "$"
    }
    
  • Adres: Geparseerd adres. Bijvoorbeeld: ShipToAddress: 123 Main St., Redmond, WA 98052

    {
    "poBox": "PO Box 12",
    "houseNumber": "123",
    "streetName": "Main St.",
    "city": "Redmond",
    "state": "WA",
    "postalCode": "98052",
    "countryRegion": "USA",
    "streetAddress": "123 Main St."
    }
    

Gestructureerde typen

  • Matrix: Lijst met velden van hetzelfde type

    "Items": {
        "type": "array",
        "valueArray": [
    
        ]
    }
    
  • Object: Benoemde lijst met subvelden van mogelijk verschillende typen

    "InvoiceTotal": {
      "type": "currency",
      "valueCurrency": {
          "currencySymbol": "$",
          "amount": 110
      },
      "content": "$110.00",
      "boundingRegions": [
          {
              "pageNumber": 1,
              "polygon": [
                  7.3842,
                  7.465,
                  7.9181,
                  7.465,
                  7.9181,
                  7.6089,
                  7.3842,
                  7.6089
              ]
          }
      ],
      "confidence": 0.945,
      "spans": [
          {
              "offset": 806,
              "length": 7
          }
      ]
    }
    

Volgende stappen

  • Probeer uw eigen formulieren en documenten te verwerken met Document Intelligence Studio.

  • Voltooi een quickstart voor Document Intelligence en ga aan de slag met het maken van een app voor documentverwerking in de ontwikkeltaal van uw keuze.