Udostępnij za pośrednictwem


Zrozumienie formatu wyjściowego markdown API układu inteligencji dokumentów

Interfejs API układu analizy dokumentów usługi Azure AI może przekształcić dokumenty w rozbudowany język Markdown, zachowując oryginalną strukturę i formatowanie. Wystarczy określić outputContentFormat=markdown w żądaniu, aby otrzymywać semantycznie ustrukturyzowaną zawartość, która przechowuje akapity, nagłówki, tabele i inne elementy dokumentu w odpowiedniej hierarchii.

Dane wyjściowe języka Markdown elegancko przechwytują oryginalną organizację dokumentu, zapewniając ustandaryzowaną, łatwo eksploatowaną zawartość dla aplikacji podrzędnych. Zachowana struktura semantyczna umożliwia bardziej zaawansowane przepływy pracy przetwarzania dokumentów bez utraty kontekstu i relacji między elementami dokumentu.

Elementy języka Markdown obsługiwane w analizie układu

Następujące elementy Markdown są uwzględniane w odpowiedziach interfejsu API Layout:

  • Akapit
  • Nagłówek
  • Tabela
  • Rysunek
  • Znacznik wyboru
  • Formuła
  • Kod kreskowy
  • Numer strony/Nagłówek strony/Stopka strony
  • PageBreak
  • ParyKluczWartość/Język/Stylistyka
  • Zakresy i zawartość

Akapit

Akapity reprezentują spójnie bloki tekstu, które należą do siebie semantycznie. API układu utrzymuje integralność akapitów poprzez:

  • Zachowywanie granic akapitu przy użyciu pustych wierszy między oddzielnymi akapitami
  • Używanie podziałów wierszy w akapitach w celu zachowania struktury wizualnej oryginalnego dokumentu
  • Utrzymywanie prawidłowego przepływu tekstu zgodnego z kolejnością odczytu oryginalnego dokumentu

Oto przykład:

This is paragraph 1.
This is still paragraph 1, even if in another Markdown line.

This is paragraph 2. There is a blank line between paragraph 1 and paragraph 2.

Nagłówek

Nagłówki porządkują zawartość dokumentu w strukturę hierarchiczną, aby ułatwić nawigację i zrozumienie. Interfejs API układu ma następujące możliwości:

  • Używa standardowej składni nagłówka języka Markdown z symbolami skrótu 1–6 (#) odpowiadającymi poziomom nagłówka.
  • Zachowuje odpowiednie odstępy między dwoma pustymi wierszami przed każdym nagłówkiem w celu zwiększenia czytelności.

Oto przykład:

# This is a title

## This is heading 1

### This is heading 2

#### This is heading 3

Tabela

Tabele zachowują złożone dane ustrukturyzowane w formacie zorganizowanym wizualnie. Interfejs API układu używa składni tabeli HTML w celu zapewnienia maksymalnej wierności i zgodności:

  • Implementuje pełne znaczniki tabeli HTML (<table>, <tr>, <th>, <td>), a nie standardowe tabele języka Markdown
  • Zachowuje scaloną komórkę z atrybutami HTML rowspan i colspan.
  • Zachowuje podpisy tabeli za pomocą tagu <caption> w celu utrzymania kontekstu dokumentu.
  • Obsługuje złożone struktury tabel, w tym nagłówki, komórki i stopki
  • Zachowuje odpowiednie odstępy między dwoma pustymi wierszami przed każdą tabelą w celu zwiększenia czytelności
  • Zachowuje przypisy dolne tabeli jako oddzielny akapit poniżej tabeli

Oto przykład:

<table>
<caption>Table 1. This is a demo table</caption>
<tr><th>Header</th><th>Header</th></tr>
<tr><td>Cell</td><td>Cell</td></tr>
<tr><td>Cell</td><td>Cell</td></tr>
<tr><td>Cell</td><td>Cell</td></tr>
<tr><td>Footer</td><td>Footer</td></tr>
</table>
This is the footnote of the table.

Rysunek

Interfejs API układu zachowuje elementy rysunku:

  • Hermetyzuje zawartość rysunku w tagach, <figure> aby zachować semantyczne rozróżnienie od otaczającego tekstu
  • Zachowuje podpisy rysunku z tagiem <figcaption> w celu zapewnienia ważnego kontekstu
  • Zachowuje przypisy dolne dotyczące rysunku jako oddzielne akapity następujące po kontenerze rysunku

Ważne

W przypadkach, gdy wykrywamy niektóre składniki dokumentu, takie jak nagłówek sekcji w ramach rysunków, dane wyjściowe języka Markdown nie będą przedstawiać liczb w danych wyjściowych i używać informacji do analizy struktury dokumentów. W takich przypadkach należy wyliczyć pole liczb w formacie JSON, aby pobrać wszystkie liczby.

Oto przykład:

<figure>
<figcaption>Figure 2 This is a figure</figcaption>

Values
300
200
100
0

Jan Feb Mar Apr May Jun Months

</figure>

This is footnote if the figure have.

Znacznik wyboru

Znaczniki zaznaczenia reprezentują elementy przypominające pola wyboru w formularzach i dokumentach. Interfejs API układu:

  • Używa znaków Unicode w celu zachowania przejrzystości wizualnej: ☒ (zaznaczone) i ☐ (niezaznaczone)
  • Filtruje wykrywanie pól wyboru o niskiej pewności (poniżej 0,1 ufności), aby zwiększyć niezawodność
  • Utrzymuje semantyczną relację między znacznikami zaznaczenia i skojarzonym z nim tekstem

Formuła

Formuły matematyczne są zachowywane przy użyciu składni zgodnej z biblioteką LaTeX, która umożliwia renderowanie złożonych wyrażeń matematycznych:

  • Formuły wbudowane są ujęte w pojedyncze symbole dolara ($...$) w celu utrzymywania przepływu tekstu
  • Formuły blokowe używają podwójnych znaków dolara ($$...$$) dla autonomicznego wyświetlania
  • Formuły wielowierszowe są reprezentowane jako konsekwentne formuły blokowe, zachowując relacje matematyczne
  • Oryginalne odstępy i formatowanie są zachowywane w celu zapewnienia dokładnej reprezentacji

Oto przykład formuły w linii, blok formuły jednowierszowej i blok formuły wielowierszowej.

The mass-energy equivalence formula $E = m c ^ { 2 }$ is an example of an inline formula

$$\frac { n ! } { k ! \left( n - k \right) ! } = \binom { n } { k }$$

$$\frac { p _ { j } } { p _ { 1 } } = \prod _ { k = 1 } ^ { j - 1 } e ^ { - \beta _ { k , k + 1 } \Delta E _ { k , k + 1 } }$$
$$= \exp \left[ - \sum _ { k = 1 } ^ { j - 1 } \beta _ { k , k + 1 } \Delta E _ { k , k + 1 } \right] .$$

Kod kreskowy

Kody kreskowe i kody QR są reprezentowane przy użyciu składni obrazu języka Markdown z dodanymi informacjami semantycznymi:

  • Używa standardowej składni języka Markdown dla obrazów z atrybutami opisowymi
  • Przechwytuje zarówno typ kodu kreskowego (kod QR, kod kreskowy itp.) jak i jego zakodowaną wartość
  • Zachowuje semantyczną relację między kodami kreskowymi i otaczającą zawartością

Oto przykład:

![QRCode](barcodes/1.1 "https://www.microsoft.com")

![UPCA](barcodes/1.2 "012345678905")
 
![barcode type](barcodes/pagenumber.barcodenumber "barcode value/content")

Numer strony/Nagłówek strony/Stopka strony

Elementy metadanych strony zapewniają kontekst stronicowania dokumentu, ale nie mają być wyświetlane w tekście z zawartością główną:

  • Zawarte w komentarzach HTML w celu zachowania informacji przy jednoczesnym ukryciu ich przed standardowym renderowaniem Markdown.
  • Utrzymuje oryginalne informacje o strukturze stron, które mogą być przydatne podczas odbudowy dokumentu
  • Umożliwia aplikacjom zrozumienie stronicowania dokumentów bez zakłócania przepływu zawartości

Oto przykład:

<!-- PageHeader="This is page header" -->

<!-- PageFooter="This is page footer" -->
<!-- PageNumber="1" -->


PageBreak

Aby łatwo ustalić, które części należą do której strony na podstawie czystej zawartości języka Markdown, wprowadziliśmy PageBreak jako ogranicznik stron.

Oto przykład:

<!-- PageBreak -->

ParyKluczWartość/Język/Stylistyka

W przypadku KeyValuePairs/Language/Style, mapujemy je do ciała JSON używanego w analityce, a nie do treści Markdown.

Uwaga / Notatka

Aby uzyskać więcej informacji na temat języka Markdown, który jest obecnie obsługiwany w przypadku zawartości użytkownika w serwisie GitHub.com, zobaczGitHub Flavored Markdown Spec (Specyfikacja języka Markdown o smaku GitHub).

Podsumowanie

Elementy języka Markdown analizy dokumentów zapewniają zaawansowany sposób reprezentowania struktury i zawartości analizowanych dokumentów. Zrozumienie i prawidłowe wykorzystanie tych elementów języka Markdown pozwala ulepszyć przepływy pracy przetwarzania dokumentów i tworzyć bardziej zaawansowane aplikacje wyodrębniania zawartości.

Dalsze kroki

  • Spróbuj przetwarzać dokumenty za pomocą programu Document Intelligence Studio.

  • Ukończ przewodnik Szybki Start dotyczący analizy dokumentów i rozpocznij tworzenie aplikacji do przetwarzania dokumentów w wybranym przez siebie języku programowania.