Udostępnij za pośrednictwem


Co to jest model układu analizy dokumentów?

Ta zawartość dotyczy:checkmarkwersja 4.0 (GA)Poprzednie wersje:niebieski znacznik wyboru v3.1 (GA) v3.0 (GA)niebieski znacznik wyboru v2.1 (GA)niebieski znacznik wyboru

Model układu analizy dokumentów to zaawansowany interfejs API analizy dokumentów oparty na uczeniu maszynowym dostępny w chmurze analizy dokumentów. Umożliwia ona przyjęcie dokumentów w różnych formatach i zwracanie ustrukturyzowanych reprezentacji danych tych dokumentów. Łączy ona ulepszoną wersję naszych zaawansowanych funkcji optycznego rozpoznawania znaków (OCR) z modelami uczenia głębokiego w celu wyodrębniania tekstu, tabel, znaczników zaznaczenia i struktury dokumentów.

Analiza układu struktury dokumentu

Analiza układu struktury dokumentów to proces analizowania dokumentu w celu wyodrębnienia interesujących regionów i relacji między nimi. Celem jest wyodrębnienie tekstu i elementów strukturalnych ze strony w celu utworzenia lepszych semantycznych modeli rozumienia. Istnieją dwa typy ról w układzie dokumentu:

  • Role geometryczne: Tekst, tabele, rysunki i znaczniki zaznaczenia to przykłady ról geometrycznych.
  • Role logiczne: Tytuły, nagłówki i stopki to przykłady ról logicznych tekstów.

Poniższa ilustracja przedstawia typowe składniki na obrazie przykładowej strony.

Ilustracja przykładu układu dokumentu.

Opcje programowania

Analiza dokumentów w wersji 4.0: 2024-11-30 (GA) obsługuje następujące narzędzia, aplikacje i biblioteki:

Funkcja Zasoby Identyfikator modelu
Model układu Document Intelligence Studio
REST API
C# SDK
Python SDKJava SDK
JavaScript SDK
wstępnie utworzony układ

Obsługiwane języki

Zobacz Obsługa języka — modele analizy dokumentów , aby uzyskać pełną listę obsługiwanych języków.

Typy obsługiwanych plików

Model układu analizy dokumentów w wersji 4.0: 2024-11-30 (GA) obsługuje następujące formaty plików:

Model PDF Obraz:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Microsoft Office:
Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
Układ

Wymagania dotyczące danych wejściowych

  • Aby uzyskać najlepsze wyniki, podaj jedno jasne zdjęcie lub wysokiej jakości skanowanie na dokument.

  • W przypadku plików PDF i TIFF można przetworzyć maksymalnie 2000 stron (w przypadku subskrypcji warstwy Bezpłatna przetwarzane są tylko pierwsze dwie strony).

  • Jeśli pliki PDF są zablokowane hasłem, należy usunąć blokadę przed przesłaniem.

  • Rozmiar pliku do analizowania dokumentów wynosi 500 MB dla warstwy płatnej (S0) i 4 MB za bezpłatną (F0).

  • Wymiary obrazu muszą mieć od 50 pikseli x 50 pikseli do 10 000 pikseli x 10 000 pikseli.

  • Minimalna wysokość tekstu do wyodrębnienia to 12 pikseli dla obrazu o rozmiarze 1024 x 768 pikseli. Ten wymiar odpowiada tekstowi 8 punktowemu na 150 kropek na cal (DPI).

  • W przypadku trenowania modelu niestandardowego maksymalna liczba stron dla danych szkoleniowych wynosi 500 dla niestandardowego modelu szablonu i 50 000 dla niestandardowego modelu neuronowego.

    • W przypadku trenowania niestandardowego modelu wyodrębniania łączny rozmiar danych treningowych wynosi 50 MB dla modelu szablonu i 1 GB dla modelu neuronowego.

    • W przypadku szkolenia niestandardowego modelu klasyfikacji, całkowity rozmiar danych treningowych wynosi 1 GB, a liczba stron może maksymalnie sięgać 10 000. W przypadku 2024-11-30 (GA) całkowity rozmiar danych treningowych wynosi 2 GB z maksymalnie 10 000 stron.

Aby uzyskać więcej informacji na temat użycia modelu, limitów przydziału i limitów usług, zobaczLimity usług.

Wprowadzenie do modelu układu

Zobacz, jak dane, w tym tekst, tabele, nagłówki tabeli, znaczniki wyboru i informacje o strukturze są wyodrębniane z dokumentów przy użyciu analizy dokumentów. Potrzebne są następujące zasoby:

Po pobraniu klucza i punktu końcowego użyj następujących opcji programowania, aby skompilować i wdrożyć aplikacje analizy dokumentów:

Wyodrębnianie danych

Model układu wyodrębnia elementy strukturalne z dokumentów. Poniżej przedstawiono opisy tych elementów strukturalnych ze wskazówkami dotyczącymi sposobu wyodrębniania ich z danych wejściowych dokumentu:

Uruchom przykładową analizę dokumentu układu w programie Document Intelligence Studio, a następnie przejdź do karty wyników i uzyskaj dostęp do pełnych danych wyjściowych JSON.

Zrzut ekranu przedstawiający kartę wyników JSON danych wyjściowych w środowisku Document Intelligence Studio.

Strony

Kolekcja stron jest listą stron w dokumencie. Każda strona jest reprezentowana sekwencyjnie w dokumencie i zawiera kąt orientacji wskazujący, czy strona jest obracana, oraz szerokość i wysokość (wymiary w pikselach). Jednostki strony w danych wyjściowych modelu są obliczane, jak pokazano poniżej:

Format pliku Obliczona jednostka strony Łączna liczba stron
Obrazy (JPEG/JPG, PNG, BMP, HEIF) Każdy obraz = 1 jednostka strony Łączna liczba obrazów
PDF Każda strona w pliku PDF = 1 jednostka strony Łączna liczba stron w pliku PDF
TIFF Każdy obraz w pliku TIFF odpowiada 1 jednostce strony. Łączna liczba grafiki w TIFF
Word (DOCX) Maksymalnie 3000 znaków = 1 jednostka strony, osadzone lub połączone obrazy nie są obsługiwane Łączna liczba stron, z których każda zawiera do 3000 znaków.
Excel (XLSX) Każdy arkusz = 1 jednostka strony, osadzone lub połączone obrazy nie są obsługiwane Łączna liczba arkuszy
PowerPoint (PPTX) Każdy slajd = 1 jednostka strony, osadzone lub połączone obrazy nie są obsługiwane Łączna liczba slajdów
HTML Maksymalnie 3000 znaków = 1 jednostka strony, osadzone lub połączone obrazy nie są obsługiwane Łączna liczba stron, każda z maksymalnie 3000 znaków
# 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}")

Wyodrębnianie wybranych stron

W przypadku dużych dokumentów wielostronicowych użyj parametru pages zapytania, aby wskazać określone numery stron lub zakresy stron na potrzeby wyodrębniania tekstu.

Ustępy

Model Layout wyodrębnia wszystkie zidentyfikowane bloki tekstu w kolekcji paragraphs jako obiekt najwyższego poziomu pod analyzeResults. Każdy wpis w tej kolekcji reprezentuje blok tekstowy i .. /zawiera wyodrębniony tekst jakocontenti współrzędne ograniczenia polygon . Informacje span wskazują fragment tekstu we właściwości najwyższego poziomu content zawierającej pełny tekst z dokumentu.


"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"
    }
]

Role w akapicie

Nowe wykrywanie obiektów stron opartych na uczeniu maszynowym wyodrębnia role logiczne, takie jak tytuły, nagłówki sekcji, nagłówki stron, stopki stron i inne. Model układu analizy dokumentów przypisuje niektóre bloki tekstowe w paragraphs kolekcji z ich wyspecjalizowaną rolą lub typem przewidywanym przez model. Najlepiej używać ról akapitów z dokumentami bez struktury, aby ułatwić zrozumienie układu wyodrębnionej zawartości na potrzeby bardziej rozbudowanej analizy semantycznej. Obsługiwane są następujące role akapitu:

Przewidywana rola Opis Obsługiwane typy plików
title Główne nagłówki na stronie pdf, image, docx, pptx, xlsx, html
sectionHeading Co najmniej jedna podpozycja na stronie pdf, image, docx, xlsx, html
footnote Tekst w dolnej części strony pdf, obraz
pageHeader Tekst w górnej krawędzi strony pdf, image, docx
pageFooter Tekst w dolnej krawędzi strony pdf, image, docx, pptx, html
pageNumber Numer strony pdf, obraz
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Tekst, wiersze i wyrazy

Model układu dokumentu w usłudze Document Intelligence wyodrębnia tekst drukowany i odręczny jako lines i words. Kolekcja styles zawiera dowolny styl odręczny dla linii, jeśli zostanie wykryty wraz z zakresami wskazującymi skojarzony tekst. Ta funkcja ma zastosowanie do obsługiwanych języków odręcznych.

W przypadku programów Microsoft Word, Excel, PowerPoint i HTML model układu Document Intelligence w wersji 4.0 2024-11-30 (GA) wyodrębnia cały osadzony tekst w jego oryginalnej formie. Teksty są wyodrębniane jako wyrazy i akapity. Obrazy osadzone nie są obsługiwane.

# 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}")

Styl odręczny dla wierszy tekstu

Odpowiedź .. /zawiera klasyfikację, czy każdy wiersz tekstu ma styl pisma ręcznego, czy nie, wraz z współczynnikiem ufności. Więcej informacji. Zobacz Obsługa języka odręcznego. Poniższy przykład przedstawia przykładowy fragment kodu JSON.

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

Jeśli włączysz funkcję dodatku czcionki/stylu, otrzymasz również wynik czcionki/stylu jako część styles obiektu.

Znaczniki wyboru

Model układu wyodrębnia również znaczniki wyboru z dokumentów. Wyodrębnione znaczniki wyboru pojawiają się w kolekcji pages na każdej stronie. Obejmują one ograniczenie polygon, confidencei zaznaczenie state (selected/unselected). Reprezentacja tekstu (czyli :selected::unselected) jest również dołączana jako indeks początkowy (offset) i length odwołujący się do właściwości najwyższego poziomu content zawierającej pełny tekst z dokumentu.

# 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}"
        )

Tabele

Wyodrębnianie tabel jest kluczowym wymaganiem do przetwarzania dokumentów zawierających duże ilości danych zwykle sformatowanych jako tabele. Model Układu wyodrębnia tabele w pageResults sekcji danych wyjściowych JSON. Wyodrębnione informacje o tabeli . /zawiera liczbę kolumn i wierszy, zakres wierszy i zakres kolumn. Każda komórka z powiązanym wielokątem jest zwracana wraz z informacjami o tym, czy obszar jest rozpoznawany jako columnHeader czy nie. Model obsługuje wyodrębnianie tabel, które są obracane. Każda komórka tabeli zawiera indeks wiersza i kolumny oraz współrzędne ograniczającego wielokąta. W przypadku tekstu komórki, model zwraca span informację zawierającą indeks początkowy (offset). Model również generuje zawartość najwyższego poziomu length, która zawiera pełny tekst z dokumentu.

Poniżej przedstawiono kilka czynników, które należy wziąć pod uwagę podczas korzystania z funkcji wyodrębniania danych w ramach analityki dokumentów:

  • Czy dane, które chcesz wyodrębnić, są przedstawione jako tabela, oraz czy struktura tabeli jest zrozumiała?

  • Czy dane mogą mieścić się w siatce dwuwymiarowej, jeśli dane nie są w formacie tabeli?

  • Czy tabele obejmują wiele stron? Jeśli tak, aby uniknąć konieczności etykietowania wszystkich stron, przed wysłaniem go do analizy dokumentów należy podzielić plik PDF na strony. Po przeprowadzeniu analizy, strony należy przetworzyć do pojedynczej tabeli.

  • Jeśli tworzysz modele niestandardowe, zapoznaj się z polami tabelarycznymi . Tabele dynamiczne mają zmienną liczbę wierszy dla każdej kolumny. Stałe tabele mają stałą liczbę wierszy dla każdej kolumny.

Uwaga / Notatka

  • Analiza tabeli nie jest obsługiwana, jeśli plik wejściowy to XLSX.
  • W przypadku 2024-11-30 (GA) obszary graniczne dla rysunków i tabel obejmują tylko podstawową zawartość i wykluczają powiązane podpisy i przypisy dolne.
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}'")

Przekształć odpowiedź do formatu markdown

API układu może zwracać wyodrębniony tekst w formacie markdown. Użyj elementu , outputContentFormat=markdown aby określić format danych wyjściowych w języku Markdown. Zawartość markdown jest generowana jako część sekcji content.

Uwaga / Notatka

W przypadku wersji 4.0 2024-11-30 (GA) reprezentacja tabel jest zmieniana na tabele HTML, aby umożliwić renderowanie scalonych komórek, nagłówków wielowierszowych, itp. Inną powiązaną zmianą jest użycie znaków Unicode pola wyboru ☒ i ☐ zamiast :selected: i :unselected:. Ta aktualizacja oznacza, że zawartość pól znacznika wyboru zawiera :selected: , mimo że ich zakresy odnoszą się do znaków Unicode w zakresie najwyższego poziomu. Zapoznaj się z formatem danych wyjściowych języka Markdown , aby uzyskać pełną definicję elementów języka Markdown.

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,
)

Rysunki

Ilustracje (wykresy, obrazy) w dokumentach odgrywają kluczową rolę w uzupełnianiu i ulepszaniu zawartości tekstowej, zapewniając wizualne reprezentacje, które pomagają w zrozumieniu złożonych informacji. Obiekt rysunków wykryty przez model Układu ma kluczowe właściwości, takie jak boundingRegions (lokalizacje przestrzenne rysunku na stronach dokumentu, w tym numer strony i współrzędne wielokątne, które przedstawiają granicę rysunku), spans (szczegóły zakresy tekstu związane z rysunkiem, określając ich przesunięcia i długości w tekście dokumentu. To połączenie pomaga skojarzyć rysunek z odpowiednim kontekstem tekstowym), elements (identyfikatory elementów tekstowych lub akapitów w dokumencie, które są powiązane z rysunkiem lub opisują je) i caption jeśli istnieją.

Gdy parametr output=figures jest określony podczas początkowej operacji analizowania, usługa generuje przycięte obrazy dla wszystkich wykrytych liczb, do których można uzyskać dostęp za pośrednictwem metody /analyeResults/{resultId}/figures/{figureId}. FigureId jest uwzględniony w każdym obiekcie figury, zgodnie z nieudokumentowaną konwencją {pageNumber}.{figureIndex}, gdzie figureIndex resetuje się do jednego na stronę.

Uwaga / Notatka

W przypadku wersji 4.0 2024-11-30 (GA) regiony ograniczenia dla rysunków i tabel obejmują tylko podstawową zawartość i wykluczają skojarzony podpis i przypisy dolne.

# 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}'")

Sekcje

Hierarchiczna analiza struktury dokumentów jest kluczowa w organizowaniu, zrozumieniu i przetwarzaniu obszernych dokumentów. Takie podejście ma kluczowe znaczenie dla semantycznie segmentacji długich dokumentów w celu zwiększenia zrozumienia, ułatwienia nawigacji i poprawy pobierania informacji. Pojawienie się generacji wspomaganej pobieraniem (RAG) w generatywnej sztucznej inteligencji do dokumentów podkreśla znaczenie hierarchicznej analizy struktury dokumentów. Model układu obsługuje sekcje i podsekcje w danych wyjściowych, które identyfikują relację sekcji i obiektu w każdej sekcji. Struktura hierarchiczna jest utrzymywana w elements każdej sekcji. Możesz użyć odpowiedzi wyjściowej do formatu markdown , aby łatwo uzyskać sekcje i podsekcje w języku Markdown.

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,
)

Ta zawartość dotyczy:znacznik wyboruwersja 3.1 (GA) | Najnowsza wersja:purpurowy znacznik wyboruwersja 4.0 (GA) | Poprzednie wersje:niebieski znacznik wyboruwersja 3.0niebieski znacznik wyboruwersja 2.1

Ta zawartość dotyczy:znacznik wyboruwersja 3.0 (GA) | Najnowsze wersje:znacznik wyboru purpurowywersja 4.0 (GA)znacznik wyboru purpurowywersja 3.1 | Poprzednia wersja:znacznik wyboru niebieskiwersja 2.1

Ta treść dotyczy:znacznik wyboruwersja 2.1 | blue-checkmarkwersja 4.0 (GA)

Model układu analizy dokumentów to zaawansowany interfejs API analizy dokumentów oparty na uczeniu maszynowym dostępny w chmurze analizy dokumentów. Umożliwia przetwarzanie dokumentów w różnych formatach i zwracanie ich ustrukturyzowanych reprezentacji danych. Łączy ona ulepszoną wersję naszych zaawansowanych funkcji optycznego rozpoznawania znaków (OCR) z modelami uczenia głębokiego w celu wyodrębniania tekstu, tabel, znaczników zaznaczenia i struktury dokumentów.

Analiza układu dokumentu

Analiza układu struktury dokumentów to proces analizowania dokumentu w celu wyodrębnienia interesujących regionów i relacji między nimi. Celem jest wyodrębnienie tekstu i elementów strukturalnych ze strony w celu utworzenia lepszych semantycznych modeli rozumienia. Istnieją dwa typy ról w układzie dokumentu:

  • Role geometryczne: Tekst, tabele, rysunki i znaczniki zaznaczenia to przykłady ról geometrycznych.
  • Role logiczne: Tytuły, nagłówki i stopki to przykłady ról logicznych tekstów.

Poniższa ilustracja przedstawia typowe składniki na obrazie przykładowej strony.

Ilustracja przykładu układu dokumentu.

Obsługiwane języki i ustawienia regionalne

Zobacz naszą stronę Obsługa języka — modele analizy dokumentów , aby uzyskać pełną listę obsługiwanych języków.

Narzędzie Document Intelligence w wersji 2.1 obsługuje następujące narzędzia, aplikacje i biblioteki:

Funkcja Zasoby
Model układu • Narzędzie
do etykietowania w Dokument IntelligenceInterfejs REST API
Biblioteka kliencka SDK
Kontener Docker Dokument Intelligence

Wskazówki dotyczące danych wejściowych

Obsługiwane formaty plików:

Model PDF Obraz:
JPEG/JPG, PNG, BMP, TIFF, HEIF
Microsoft Office:
Word (DOCX), Excel (XLSX), PowerPoint (PPTX), HTML
Przeczytaj
Układ
Dokument ogólny
Wstępnie utworzona
Wyodrębnianie niestandardowe
Klasyfikacja niestandardowa
  • Aby uzyskać najlepsze wyniki, podaj jedno jasne zdjęcie lub wysokiej jakości skanowanie na dokument.

  • W przypadku plików PDF i TIFF można przetworzyć maksymalnie 2000 stron (w przypadku subskrypcji warstwy Bezpłatna przetwarzane są tylko pierwsze dwie strony).

  • Rozmiar pliku do analizowania dokumentów wynosi 500 MB dla warstwy płatnej (S0) i 4 MB za bezpłatną (F0).

  • Wymiary obrazu muszą mieć od 50 pikseli x 50 pikseli do 10 000 pikseli x 10 000 pikseli.

  • Jeśli pliki PDF są zablokowane hasłem, należy usunąć blokadę przed przesłaniem.

  • Minimalna wysokość tekstu do wyodrębnienia to 12 pikseli dla obrazu o rozmiarze 1024 x 768 pikseli. Ten wymiar odpowiada tekstowi 8 punktowemu na 150 kropek na cal (DPI).

  • W przypadku trenowania modelu niestandardowego maksymalna liczba stron dla danych szkoleniowych wynosi 500 dla niestandardowego modelu szablonu i 50 000 dla niestandardowego modelu neuronowego.

    • W przypadku trenowania niestandardowego modelu wyodrębniania łączny rozmiar danych treningowych wynosi 50 MB dla modelu szablonu i 1 GB dla modelu neuronowego.

    • W przypadku szkolenia niestandardowego modelu klasyfikacji, całkowity rozmiar danych treningowych wynosi 1 GB, a liczba stron może maksymalnie sięgać 10 000. W przypadku 2024-11-30 (GA) całkowity rozmiar danych treningowych wynosi 2 GB z maksymalnie 10 000 stron.

Przewodnik wejściowy

  • Obsługiwane formaty plików: JPEG, PNG, PDF i TIFF.
  • Obsługiwana liczba stron: w przypadku plików PDF i TIFF przetwarzane są maksymalnie 2000 stron. W przypadku subskrybentów warstwy Bezpłatna przetwarzane są tylko dwie pierwsze strony.
  • Obsługiwany rozmiar pliku: rozmiar pliku musi być mniejszy niż 50 MB i wymiary co najmniej 50 x 50 pikseli i maksymalnie 10 000 x 10 000 pikseli.

Rozpocznij

Zobacz, jak dane, w tym tekst, tabele, nagłówki tabeli, znaczniki wyboru i informacje o strukturze są wyodrębniane z dokumentów przy użyciu analizy dokumentów. Potrzebne są następujące zasoby:

Zrzut ekranu przedstawiający klucze i lokalizację punktu końcowego w witrynie Azure Portal.

Po pobraniu klucza i punktu końcowego możesz użyć następujących opcji programowania do kompilowania i wdrażania aplikacji analizy dokumentów:

Uwaga / Notatka

Program Document Intelligence Studio jest dostępny z interfejsami API w wersji 3.0 i nowszymi wersjami.

Interfejs programistyczny REST

Narzędzie do etykietowania próbek dla analizy dokumentów za pomocą sztucznej inteligencji

  1. Przejdź do przykładowego narzędzia Inteligencji Dokumentów.

  2. Na stronie głównej przykładowego narzędzia wybierz pozycję Użyj układu, aby pobrać tekst, tabele i znaczniki wyboru.

    Zrzut ekranu przedstawiający ustawienia połączenia dla procesu układu analizy dokumentów.

  3. W polu Punkt końcowy usługi Analizy dokumentów wklej punkt końcowy uzyskany w ramach subskrypcji analizy dokumentów.

  4. W polu klucza wklej klucz uzyskany z zasobu analizy dokumentów.

  5. W polu Źródło wybierz pozycję Adres URL z menu rozwijanego Możesz użyć naszego przykładowego dokumentu:

  6. Wybierz Uruchom układ. Narzędzie do etykietowania próbek w ramach Document Intelligence wywołuje interfejs API Analyze Layout w celu przeanalizowania dokumentu.

    Zrzut ekranu okna rozwijanego

  7. Wyświetl wyniki — zobacz wyróżniony wyodrębniony tekst, wykryte znaczniki zaznaczenia i wykryte tabele.

    Zrzut ekranu przedstawiający ustawienia połączenia dla narzędzia do etykietowania Dokumentów Inteligentnych.

Narzędzie Document Intelligence w wersji 2.1 obsługuje następujące narzędzia, aplikacje i biblioteki:

Funkcja Zasoby
API układu • Narzędzie
do etykietowania w Dokument IntelligenceInterfejs REST API
Biblioteka kliencka SDK
Kontener Docker Dokument Intelligence

Wyodrębnianie danych

Model układu wyodrębnia elementy strukturalne z dokumentów. Poniżej przedstawiono opisy tych elementów strukturalnych ze wskazówkami dotyczącymi sposobu wyodrębniania ich z danych wejściowych dokumentu:

Wyodrębnianie danych

Model układu wyodrębnia elementy strukturalne z dokumentów. Poniżej przedstawiono opisy tych elementów strukturalnych ze wskazówkami dotyczącymi sposobu wyodrębniania ich z danych wejściowych dokumentu:

Strona

Kolekcja stron jest listą stron w dokumencie. Każda strona jest reprezentowana sekwencyjnie w dokumencie i .. /zawiera kąt orientacji wskazujący, czy strona jest obracana, oraz szerokość i wysokość (wymiary w pikselach). Jednostki strony w danych wyjściowych modelu są obliczane, jak pokazano poniżej:

Format pliku Obliczona jednostka strony Łączna liczba stron
Obrazy (JPEG/JPG, PNG, BMP, HEIF) Każdy obraz = 1 jednostka strony Łączna liczba obrazów
PDF Każda strona w pliku PDF = 1 jednostka strony Łączna liczba stron w pliku PDF
TIFF Każdy obraz w pliku TIFF odpowiada 1 jednostce strony. Łączna liczba grafiki w TIFF
Word (DOCX) Maksymalnie 3000 znaków = 1 jednostka strony, osadzone lub połączone obrazy nie są obsługiwane Łączna liczba stron, każda z maksymalnie 3000 znaków
Excel (XLSX) Każdy arkusz = 1 jednostka strony, osadzone lub połączone obrazy nie są obsługiwane Łączna liczba arkuszy
PowerPoint (PPTX) Każdy slajd = 1 jednostka strony, osadzone lub połączone obrazy nie są obsługiwane Łączna liczba slajdów
HTML Maksymalnie 3000 znaków = 1 jednostka strony, osadzone lub połączone obrazy nie są obsługiwane Łączna liczba stron, każda z maksymalnie 3000 znaków
"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}"
    )

Wyodrębnianie wybranych stron z dokumentów

W przypadku dużych dokumentów wielostronicowych użyj parametru pages zapytania, aby wskazać określone numery stron lub zakresy stron na potrzeby wyodrębniania tekstu.

Akapit

Model Layout wyodrębnia wszystkie zidentyfikowane bloki tekstu w kolekcji paragraphs jako obiekt najwyższego poziomu pod analyzeResults. Każdy wpis w tej kolekcji reprezentuje blok tekstowy i .. /zawiera wyodrębniony tekst jakocontenti współrzędne ograniczenia polygon . Informacje span wskazują fragment tekstu we właściwości najwyższego poziomu content zawierającej pełny tekst z dokumentu.


"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"
    }
]

Rola akapitu

Nowe wykrywanie obiektów stron opartych na uczeniu maszynowym wyodrębnia role logiczne, takie jak tytuły, nagłówki sekcji, nagłówki stron, stopki stron i inne. Model układu analizy dokumentów przypisuje niektóre bloki tekstowe w paragraphs kolekcji z ich wyspecjalizowaną rolą lub typem przewidywanym przez model. Najlepiej używać ról akapitów z dokumentami bez struktury, aby ułatwić zrozumienie układu wyodrębnionej zawartości na potrzeby bardziej rozbudowanej analizy semantycznej. Obsługiwane są następujące role akapitu:

Przewidywana rola Opis Obsługiwane typy plików
title Główne nagłówki na stronie pdf, image, docx, pptx, xlsx, html
sectionHeading Co najmniej jedna podpozycja na stronie pdf, image, docx, xlsx, html
footnote Tekst w dolnej części strony pdf, obraz
pageHeader Tekst w górnej krawędzi strony pdf, image, docx
pageFooter Tekst w dolnej krawędzi strony pdf, image, docx, pptx, html
pageNumber Numer strony pdf, obraz
{
    "paragraphs": [
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "title",
                    "content": "NEWS TODAY"
                },
                {
                    "spans": [],
                    "boundingRegions": [],
                    "role": "sectionHeading",
                    "content": "Mirjam Nilsson"
                }
    ]
}

Tekst, wiersz i wyraz

Model układu dokumentu w usłudze Document Intelligence wyodrębnia tekst drukowany i odręczny jako lines i words. Kolekcja styles .. /zawiera dowolny styl odręczny dla wierszy, jeśli wykryto wraz z zakresami wskazującymi skojarzony tekst. Ta funkcja ma zastosowanie do obsługiwanych języków odręcznych.

W przypadku programów Microsoft Word, Excel, PowerPoint i HTML model układu Document Intelligence w wersji 4.0 2024-11-30 (GA) wyodrębnia cały osadzony tekst w jego oryginalnej formie. Teksty są wyodrębniane jako wyrazy i akapity. Obrazy osadzone nie są obsługiwane.

"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}"
        )

Styl odręczny

Odpowiedź .. /zawiera klasyfikację, czy każdy wiersz tekstu ma styl pisma ręcznego, czy nie, wraz z współczynnikiem ufności. Więcej informacji. Zobacz Obsługa języka odręcznego. Poniższy przykład przedstawia przykładowy fragment kodu JSON.

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

Jeśli włączysz funkcję dodatku czcionki/stylu, otrzymasz również wynik czcionki/stylu jako część styles obiektu.

Znak wyboru

Model układu wyodrębnia również znaczniki wyboru z dokumentów. Wyodrębnione znaczniki wyboru pojawiają się w kolekcji pages na każdej stronie. Obejmują one ograniczenie polygon, confidencei zaznaczenie state (selected/unselected). Reprezentacja tekstu (czyli :selected::unselected) jest również dołączana jako indeks początkowy (offset) i length odwołujący się do właściwości najwyższego poziomu content zawierającej pełny tekst z dokumentu.

{
    "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}"
    )

Tabela

Wyodrębnianie tabel jest kluczowym wymaganiem do przetwarzania dokumentów zawierających duże ilości danych zwykle sformatowanych jako tabele. Model Układu wyodrębnia tabele w pageResults sekcji danych wyjściowych JSON. Wyodrębnione informacje o tabeli . /zawiera liczbę kolumn i wierszy, zakres wierszy i zakres kolumn. Każda komórka z powiązanym wielokątem jest zwracana wraz z informacjami o tym, czy obszar jest rozpoznawany jako columnHeader czy nie. Model obsługuje wyodrębnianie tabel, które są obracane. Każda komórka tabeli zawiera indeks wiersza i kolumny oraz współrzędne ograniczającego wielokąta. W przypadku tekstu komórki, model zwraca span informację zawierającą indeks początkowy (offset). Model również generuje zawartość najwyższego poziomu length, która zawiera pełny tekst z dokumentu.

Poniżej przedstawiono kilka czynników, które należy wziąć pod uwagę podczas korzystania z funkcji wyodrębniania danych w ramach analityki dokumentów:

  • Czy dane, które chcesz wyodrębnić, są przedstawione jako tabela, oraz czy struktura tabeli jest zrozumiała?

  • Czy dane mogą mieścić się w siatce dwuwymiarowej, jeśli dane nie są w formacie tabeli?

  • Czy tabele obejmują wiele stron? Jeśli tak, aby uniknąć konieczności etykietowania wszystkich stron, przed wysłaniem go do analizy dokumentów należy podzielić plik PDF na strony. Po przeprowadzeniu analizy, strony należy przetworzyć do pojedynczej tabeli.

  • Jeśli tworzysz modele niestandardowe, zapoznaj się z polami tabelarycznymi . Tabele dynamiczne mają zmienną liczbę wierszy dla każdej kolumny. Stałe tabele mają stałą liczbę wierszy dla każdej kolumny.

Uwaga / Notatka

  • Analiza tabeli nie jest obsługiwana, jeśli plik wejściowy to XLSX.
  • Inteligencja Dokumentów w wersji 4.0 2024-11-30 (GA) obsługuje obszary graniczne dla rysunków i tabel, które obejmują tylko podstawową zawartość i wykluczają skojarzony opis i przypisy.
{
    "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)}'"
            )

Adnotacje

Model Układu wyodrębnia adnotacje w dokumentach, takie jak haczyki i krzyże. Odpowiedź .. /zawiera rodzaj adnotacji oraz współczynnik ufności i wielokąt ograniczenia.

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

Wyjściowy porządek odczytu naturalnego (tylko dla łacińskich znaków)

Możesz określić kolejność, w jakiej wiersze tekstowe są danymi wyjściowymi z parametrem readingOrder zapytania. Użyj natural dla bardziej przyjaznej dla człowieka kolejności odczytu, jak pokazano w poniższym przykładzie. Ta funkcja jest obsługiwana tylko w językach łacińskich.

Zrzut ekranu przedstawiający przetwarzanie kolejności odczytywania modelu „layout”.

Wybieranie numeru strony lub zakresu na potrzeby wyodrębniania tekstu

W przypadku dużych dokumentów wielostronicowych użyj parametru pages zapytania, aby wskazać określone numery stron lub zakresy stron na potrzeby wyodrębniania tekstu. Poniższy przykład przedstawia dokument z 10 stronami z tekstem wyodrębnionym w obu przypadkach — wszystkie strony (1–10) i wybrane strony (3–6).

Zrzut ekranu przedstawiający dane wyjściowe wybranych stron modelu układu.

Operacja Uzyskaj wynik analizy układu

Drugim krokiem jest wywołanie operacji Pobierz wynik układu analizy . Ta operacja przyjmuje jako dane wejściowe identyfikator wyniku utworzonej Analyze Layout operacji. Zwraca odpowiedź JSON zawierającą pole stanu z następującymi możliwymi wartościami.

(No changes needed) Typ Możliwe wartości
stan sznurek notStarted: Operacja analizy nie została uruchomiona.
running
: Operacja analizy jest w toku.

failed: Operacja analizy nie powiodła się.

succeeded: Operacja analizy zakończyła się pomyślnie.

Wywołaj tę operację iteracyjnie, dopóki nie zwróci succeeded wartości. Aby uniknąć przekroczenia liczby żądań na sekundę (RPS), należy użyć interwału od 3 do 5 sekund.

Gdy pole stanu ma succeeded wartość, odpowiedź JSON zawiera wyodrębniony układ, tekst, tabele i znaczniki wyboru. Wyodrębnione dane ../zawiera wyodrębnione wiersze i wyrazy tekstowe, pola ograniczenia, wygląd tekstu z oznaczeniem odręcznym, tabele oraz znaczniki wyboru z zaznaczeniem wybranych/niewybranych.

Klasyfikacja odręczna dla wierszy tekstu (tylko łaciński)

Odpowiedź .. /zawiera klasyfikację, czy każdy wiersz tekstu ma styl pisma ręcznego, czy nie, wraz z współczynnikiem ufności. Ta funkcja jest obsługiwana tylko w językach łacińskich. Poniższy przykład przedstawia klasyfikację odręczną tekstu na obrazie.

Zrzut ekranu przedstawiający proces klasyfikacji pisma ręcznego modelu `layout`.

Przykładowe dane wyjściowe JSON

Odpowiedź na operację Uzyskiwanie wyniku układu analizy to ustrukturyzowana reprezentacja dokumentu ze wszystkimi wyodrębnianymi informacjami. Zobacz tutaj przykładowy plik dokumentu i jego ustandaryzowany wynikowy układ próbki.

Dane wyjściowe JSON mają dwie części:

  • readResults węzeł zawiera cały rozpoznany tekst i znak wyboru. Hierarchia prezentacji tekstu to strona, a następnie wiersz, a następnie poszczególne wyrazy.
  • pageResults węzeł zawiera tabele i komórki wyodrębnione z polami ograniczenia, ufnością oraz odwołaniem do wierszy i wyrazów w polu "readResults".

Przykładowe dane wyjściowe

Tekst

Layout API wyodrębnia tekst z dokumentów i obrazów, uwzględniając różne kąty i kolory tekstu. Akceptuje zdjęcia dokumentów, faksów, tekstu drukowanego i/lub odręcznego (tylko w języku angielskim) oraz w trybach mieszanych. Tekst jest wyodrębniany z informacjami podanymi w wierszach, wyrazach, polach ograniczenia, wskaźnikach ufności i stylu (odręcznego lub innego). Wszystkie informacje tekstowe znajdują się w readResults sekcji danych wyjściowych JSON.

Tabele z nagłówkami

Interfejs API układu wyodrębnia tabele w pageResults sekcji danych wyjściowych JSON. Dokumenty można skanować, fotografować lub zdygitalizować. Tabele mogą być złożone ze scalanymi komórkami lub kolumnami, z obramowaniem lub bez obramowania oraz z nieparzystnymi kątami. Wyodrębnione informacje o tabeli . /zawiera liczbę kolumn i wierszy, zakres wierszy i zakres kolumn. Każda komórka z ramką ograniczenia jest podawana jako wynik, wraz z informacją, czy obszar jest rozpoznawany jako część nagłówka, czy nie. Według modelu komórki nagłówkowe mogą obejmować wiele wierszy i nie muszą być pierwszymi wierszami w tabeli. Współpracują również z obróconymi tabelami. Każda komórka tabeli również .. /zawiera pełny tekst z odwołaniami do poszczególnych wyrazów w readResults sekcji.

Przykład tabel

Znaczniki zaznaczenia (dokumenty)

API Layout także wyodrębnia znaczniki selekcji z dokumentów. Wyodrębnione znaczniki zaznaczenia obejmują ramkę ograniczającą, pewność i stan (zaznaczony/niezaznaczony). Informacje o znaczniku wyboru są wyodrębniane w sekcji readResults danych wyjściowych JSON.

Przewodnik migracji

Dalsze kroki