Bagikan melalui


Menganalisis respons API dokumen

Konten ini berlaku untuk:checkmarkv4.0 (pratinjau)checkmarkv3.1 (GA)checkmarkv3.0 (GA)

Dalam artikel ini, mari kita periksa berbagai objek yang dikembalikan sebagai bagian AnalyzeDocument dari respons dan cara menggunakan respons API analisis dokumen di aplikasi Anda.

Menganalisis permintaan dokumen

API Kecerdasan Dokumen menganalisis gambar, PDF, dan file dokumen lainnya untuk mengekstrak dan mendeteksi berbagai konten, tata letak, gaya, dan elemen semantik. Operasi analisis adalah API asinkron. Mengirimkan dokumen mengembalikan header Operation-Location yang berisi URL untuk polling untuk penyelesaian. Ketika permintaan analisis berhasil diselesaikan, respons berisi elemen yang dijelaskan dalam ekstraksi data model.

Elemen respons

  • Elemen konten adalah elemen teks dasar yang diekstrak dari dokumen.

  • Elemen tata letak mengelompokkan elemen konten ke dalam unit struktural.

  • Elemen gaya menjelaskan font dan bahasa elemen konten.

  • Elemen semantik menetapkan arti untuk elemen konten yang ditentukan.

Semua elemen konten dikelompokkan sesuai dengan halaman, ditentukan oleh nomor halaman (1diindeks). Mereka juga diurutkan berdasarkan urutan baca yang mengatur elemen yang berdekatan secara semantik bersama-sama, bahkan jika batas garis silang atau kolom. Ketika urutan baca di antara paragraf dan elemen tata letak lainnya ambigu, layanan umumnya mengembalikan konten dalam urutan kiri-ke-kanan, atas-ke-bawah.

Catatan

Saat ini, Kecerdasan Dokumen tidak mendukung urutan membaca di seluruh batas halaman. Tanda pilihan tidak diposisikan dalam kata-kata di sekitarnya.

Properti konten tingkat atas berisi perangkaian semua elemen konten dalam urutan membaca. Semua elemen menentukan posisinya dalam urutan pembaca melalui rentang dalam string konten ini. Konten beberapa elemen tidak selalu bersebelahan.

Menganalisis respons

Respons analisis untuk setiap API mengembalikan objek yang berbeda. Respons API berisi elemen dari model komponen jika berlaku.

Konten tanggapan Deskripsi API
Halaman Kata, baris, dan rentang yang dikenali dari setiap halaman dokumen input. Model Baca, Tata Letak, Dokumen Umum, Bawaan, dan Kustom
Paragraf Konten yang dikenali sebagai paragraf. Model Baca, Tata Letak, Dokumen Umum, Bawaan, dan Kustom
Gaya Properti elemen teks yang diidentifikasi. Model Baca, Tata Letak, Dokumen Umum, Bawaan, dan Kustom
bahasa Bahasa yang diidentifikasi yang terkait dengan setiap rentang teks yang diekstrak Read
Tabel Konten tabular diidentifikasi dan diekstrak dari dokumen. Tabel berkaitan dengan tabel yang diidentifikasi oleh model tata letak yang telah dilatih sebelumnya. Konten berlabel sebagai tabel diekstrak sebagai bidang terstruktur dalam objek dokumen. Tata Letak, Dokumen Umum, Faktur, dan Model kustom
Angka Gambar (bagan, gambar) yang diidentifikasi dan diekstrak dari dokumen, memberikan representasi visual yang membantu pemahaman informasi kompleks. Model tata letak
Bagian Struktur dokumen hierarkis diidentifikasi dan diekstrak dari dokumen. Bagian atau subbagian dengan elemen yang sesuai (paragraf, tabel, gambar) yang dilampirkan ke dalamnya. Model tata letak
keyValuePairs Pasangan kunci-nilai yang dikenali oleh model yang telah dilatih sebelumnya. Kunci adalah rentang teks dari dokumen dengan nilai terkait. Dokumen umum dan model Faktur
Dokumen Bidang yang dikenali dikembalikan dalam kamus dalam fields daftar dokumen Model bawaan, Model kustom.

Untuk informasi selengkapnya tentang objek yang dikembalikan oleh setiap API, lihat ekstraksi data model.

Properti elemen

Rentang

Rentang menentukan posisi logis setiap elemen dalam urutan pembacaan keseluruhan, dengan setiap rentang menentukan offset karakter dan panjang ke dalam properti string konten tingkat atas. Secara default, offset karakter dan panjang dikembalikan dalam satuan karakter yang dirasakan pengguna (juga dikenal sebagai grapheme clusters atau elemen teks). Untuk mengakomodasi lingkungan pengembangan yang berbeda yang menggunakan unit karakter yang berbeda, pengguna dapat menentukan stringIndexIndex parameter kueri untuk mengembalikan offset rentang dan panjang dalam titik kode Unicode (Python 3) atau unit kode UTF16 (Java, JavaScript, .NET) juga. Untuk informasi selengkapnya, lihatdukungan multibahasa/emoji.

Screenshot of detected span example.

Wilayah Pembatas

Wilayah pembatas menjelaskan posisi visual setiap elemen dalam file. Ketika elemen tidak berdekatan secara visual atau lintas halaman (tabel), posisi sebagian besar elemen dijelaskan melalui array wilayah pembatas. Setiap wilayah menentukan nomor halaman (1diindeks) dan poligon pembatas. Poligon pembatas digambarkan sebagai urutan titik, searah jarang dari kiri relatif terhadap orientasi alami elemen. Untuk kuadrilateral, titik plot adalah sudut kiri atas, kanan atas, kanan bawah, dan kiri bawah. Setiap titik mewakili koordinat x, y di unit halaman yang ditentukan oleh properti unit. Secara umum, satuan ukuran untuk gambar adalah piksel sementara PDF menggunakan inci.

Screenshot of detected bounding regions example.

Catatan

Saat ini, Kecerdasan Dokumen hanya mengembalikan quadrilateral 4 vertex sebagai poligon pembatas. Versi mendatang dapat mengembalikan jumlah titik yang berbeda untuk menggambarkan bentuk yang lebih kompleks, seperti garis melengkung atau gambar non-persegi panjang. Wilayah pembatas hanya diterapkan ke file yang dirender, jika file tidak dirender, wilayah pembatas tidak dikembalikan. Saat ini file format docx/xlsx/pptx/html tidak dirender.

Elemen konten

Word

Kata adalah elemen konten yang terdiri dari urutan karakter. Dengan Kecerdasan Dokumen, kata didefinisikan sebagai urutan karakter yang berdekatan, dengan spasi putih yang memisahkan kata satu sama lain. Untuk bahasa yang tidak menggunakan pemisah spasi antara kata setiap karakter dikembalikan sebagai kata terpisah, meskipun tidak mewakili unit kata semantik.

Screenshot of detected words example.

Tanda pilihan

Tanda pilihan adalah elemen konten yang mewakili glyph visual yang menunjukkan status pilihan. Kotak centang adalah bentuk umum tanda pilihan. Namun, mereka juga diwakili melalui tombol radio atau sel kotak dalam bentuk visual. Status tanda pilihan dapat dipilih atau tidak dipilih, dengan representasi visual yang berbeda untuk menunjukkan status.

Screenshot of detected selection marks example.

Elemen tata letak

Garis

Baris adalah urutan yang diurutkan dari elemen konten berturut-turut yang dipisahkan oleh ruang visual, atau yang segera berdekatan dengan bahasa tanpa pemisah spasi antar kata. Elemen konten dalam bidang horizontal (baris) yang sama tetapi dipisahkan oleh lebih dari satu ruang visual paling sering dibagi menjadi beberapa baris. Meskipun fitur ini terkadang membagi konten yang berdekatan secara semantik menjadi baris terpisah, fitur ini memungkinkan representasi konten tekstual dibagi menjadi beberapa kolom atau sel. Garis dalam penulisan vertikal terdeteksi ke arah vertikal.

Screenshot of detected lines example.

Paragraph

Paragraf adalah urutan baris yang diurutkan yang membentuk unit logis. Biasanya, baris berbagi perataan dan penspasian umum di antara baris. Paragraf sering dibatasi melalui indentasi, penspasian tambahan, atau poin/penomoran. Konten hanya dapat ditetapkan ke satu paragraf. Pilih paragraf juga dapat dikaitkan dengan peran fungsi dalam dokumen. Peran yang saat ini didukung termasuk header halaman, footer halaman, nomor halaman, judul, judul bagian, dan catatan kaki.

Screenshot of detected paragraphs example.

Halaman

Halaman adalah pengelompokan konten yang biasanya sesuai dengan satu sisi lembar kertas. Halaman yang dirender ditandai melalui lebar dan tinggi di unit yang ditentukan. Secara umum, gambar menggunakan piksel sementara PDF menggunakan inci. Properti sudut menjelaskan sudut teks keseluruhan dalam derajat untuk halaman yang dapat diputar.

Catatan

Untuk lembar bentang seperti Excel, setiap lembar dipetakan ke halaman. Untuk presentasi, seperti PowerPoint, setiap slide dipetakan ke halaman. Untuk format file tanpa konsep asli halaman tanpa penyajian seperti dokumen HTML atau Word, konten utama file dianggap sebagai satu halaman.

Tabel

Tabel menata konten ke dalam sekelompok sel dalam tata letak kisi. Baris dan kolom dapat dipisahkan secara visual oleh garis kisi, pita warna, atau penspasian yang lebih besar. Posisi sel tabel ditentukan melalui indeks baris dan kolomnya. Sel dapat mencakup beberapa baris dan kolom.

Berdasarkan posisi dan gayanya, sel dapat diklasifikasikan sebagai konten umum, header baris, header kolom, kepala stub, atau deskripsi:

  • Sel header baris biasanya merupakan sel pertama dalam baris yang menjelaskan sel lain dalam baris.

  • Sel header kolom biasanya merupakan sel pertama dalam kolom yang menjelaskan sel lain dalam kolom.

  • Baris atau kolom dapat berisi beberapa sel header untuk menjelaskan konten hierarkis.

  • Sel kepala stub biasanya sel di baris pertama dan posisi kolom pertama. Ini bisa kosong atau menjelaskan nilai dalam sel header di baris/kolom yang sama.

  • Sel deskripsi umumnya muncul di area paling atas atau bawah tabel, yang menjelaskan konten tabel keseluruhan. Namun, terkadang dapat muncul di tengah tabel untuk memecah tabel menjadi beberapa bagian. Biasanya, sel deskripsi mencakup beberapa sel dalam satu baris.

  • Keterangan tabel menentukan konten yang menjelaskan tabel. Tabel selanjutnya dapat memiliki keterangan terkait dan sekumpulan catatan kaki. Tidak seperti sel deskripsi, keterangan biasanya terletak di luar tata letak kisi. Catatan kaki tabel membuat anotasi konten di dalam tabel, sering ditandai dengan simbol catatan kaki sering ditemukan di bawah kisi tabel.

Tabel tata letak berbeda dari bidang dokumen yang diekstrak dari data tabular. Tabel tata letak diekstrak dari konten visual tabular dalam dokumen tanpa mempertimbangkan semantik konten. Bahkan, beberapa tabel tata letak dirancang murni untuk tata letak visual dan tidak selalu berisi data terstruktur. Metode untuk mengekstrak data terstruktur dari dokumen dengan tata letak visual yang beragam, seperti detail tanda terima terperinci, umumnya memerlukan pemrosesan pasca yang signifikan. Penting untuk memetakan header baris atau kolom ke bidang terstruktur dengan nama bidang yang dinormalisasi. Bergantung pada jenis dokumen, gunakan model bawaan atau latih model kustom untuk mengekstrak konten terstruktur tersebut. Informasi yang dihasilkan diekspos sebagai bidang dokumen. Model terlatih tersebut juga dapat menangani data tabular tanpa header dan data terstruktur dalam bentuk nontabular, misalnya bagian pengalaman kerja resume.

Layout table

Angka

Gambar (bagan, gambar) dalam dokumen memainkan peran penting dalam melengkapi dan meningkatkan konten tekstual, memberikan representasi visual yang membantu pemahaman informasi yang kompleks. Objek gambar yang terdeteksi oleh model Tata Letak memiliki properti utama seperti boundingRegions (lokasi spasial gambar pada halaman dokumen, termasuk nomor halaman dan koordinat poligon yang menguraikan batas gambar), spans (merinci rentang teks yang terkait dengan gambar, menentukan offset dan panjangnya dalam teks dokumen. Koneksi ini membantu mengaitkan gambar dengan konteks tekstual yang relevan), elements (pengidentifikasi untuk elemen teks atau paragraf dalam dokumen yang terkait dengan atau menggambarkan gambar) dan caption jika ada.

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

Bagian

Analisis struktur dokumen hierarkis sangat penting dalam mengatur, memahami, dan memproses dokumen yang luas. Pendekatan ini sangat penting untuk mensegmentasi dokumen panjang secara semantik untuk meningkatkan pemahaman, memfasilitasi navigasi, dan meningkatkan pengambilan informasi. Munculnya Retrieval Augmented Generation (RAG) dalam AI generatif dokumen menggarisbawahi pentingnya analisis struktur dokumen hierarkis. Model Tata Letak mendukung bagian dan subbagian dalam output, yang mengidentifikasi hubungan bagian dan objek dalam setiap bagian. Struktur hierarki dipertahankan di elements setiap bagian.

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

Bidang formulir (pasangan nilai kunci)

Bidang formulir terdiri dari label bidang (kunci) dan nilai. Label bidang umumnya adalah string teks deskriptif yang menjelaskan arti bidang. Ini sering muncul di sebelah kiri nilai, meskipun juga dapat muncul di atas atau di bawah nilai . Nilai bidang berisi nilai konten instans bidang tertentu. Nilai dapat terdiri dari kata, tanda pilihan, dan elemen konten lainnya. Ini juga bisa kosong untuk bidang formulir yang tidak terisi. Jenis bidang formulir khusus memiliki nilai tanda pilihan dengan label bidang di sebelah kanannya. Bidang dokumen adalah konsep yang serupa tetapi berbeda dari bidang formulir umum. Label bidang (kunci) di bidang formulir umum harus muncul di dokumen. Dengan demikian, umumnya tidak dapat mengambil informasi seperti nama pedagang dalam tanda terima. Bidang dokumen diberi label dan tidak mengekstrak kunci. Bidang dokumen hanya memetakan nilai yang diekstrak ke kunci berlabel. Untuk informasi selengkapnya, lihatbidang dokumen.

Screenshot of detected key-value pairs example.

Elemen gaya

Gaya

Elemen gaya menjelaskan gaya font untuk diterapkan ke konten teks. Konten ditentukan melalui rentang ke dalam properti konten global. Saat ini, satu-satunya gaya font yang terdeteksi adalah apakah teks ditulis tangan. Saat gaya lain ditambahkan, teks dapat dijelaskan melalui beberapa objek gaya yang tidak berkonflik. Untuk kekompakan, semua teks yang berbagi gaya font tertentu (dengan keyakinan yang sama) dijelaskan melalui objek gaya tunggal.

Screenshot of detected style handwritten text example.


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

Bahasa

Elemen bahasa menjelaskan bahasa yang terdeteksi untuk konten yang ditentukan melalui rentang ke properti konten global. Bahasa yang terdeteksi ditentukan melalui tag bahasa BCP-47 untuk menunjukkan bahasa utama dan skrip opsional dan informasi wilayah. Misalnya, Bahasa Inggris dan Tionghoa tradisional masing-masing diakui sebagai "en" dan zh-Hant. Perbedaan ejaan regional untuk bahasa Inggris Inggris dapat menyebabkan teks terdeteksi sebagai en-GB. Elemen bahasa tidak mencakup teks tanpa bahasa dominan (misalnya angka).

Elemen semantik

Catatan

Elemen semantik yang dibahas di sini berlaku untuk model bawaan Kecerdasan Dokumen. Model kustom Anda dapat mengembalikan representasi data yang berbeda. Misalnya, tanggal dan waktu yang dikembalikan oleh model kustom dapat diwakili dalam pola yang berbeda dari pemformatan ISO 8601 standar.

Dokumen

Dokumen adalah unit lengkap secara semantik. File dapat berisi beberapa dokumen, seperti beberapa formulir pajak dalam file PDF, atau beberapa tanda terima dalam satu halaman. Namun, pengurutan dokumen dalam file pada dasarnya tidak memengaruhi informasi yang disampaikannya.

Catatan

Saat ini, Kecerdasan Dokumen tidak mendukung beberapa dokumen pada satu halaman.

Jenis dokumen menjelaskan dokumen yang berbagi sekumpulan bidang semantik umum, yang diwakili oleh skema terstruktur, terlepas dari templat visual atau tata letaknya. Misalnya, semua dokumen jenis "tanda terima" dapat berisi nama pedagang, tanggal transaksi, dan total transaksi, meskipun tanda terima restoran dan hotel sering berbeda dalam penampilan.

Elemen dokumen menyertakan daftar bidang yang dikenali dari antara bidang yang ditentukan oleh skema semantik dari jenis dokumen yang terdeteksi:

  • Bidang dokumen dapat diekstrak atau disimpulkan. Bidang yang diekstrak diwakili melalui konten yang diekstrak dan secara opsional nilai yang dinormalisasi, jika dapat ditafsirkan.

  • Bidang yang disimpulkan tidak memiliki properti konten dan hanya diwakili melalui nilainya.

  • Bidang array tidak menyertakan properti konten. Konten dapat digabungkan dari konten elemen array.

  • Bidang objek memang berisi properti konten yang menentukan konten lengkap yang mewakili objek yang dapat menjadi superset dari subbidang yang diekstrak.

Skema semantik jenis dokumen dijelaskan melalui bidang yang dikandungnya. Setiap skema bidang ditentukan melalui nama kanonis dan jenis nilainya. Jenis nilai bidang mencakup jenis dasar (mis. string), senyawa (misalnya alamat), dan terstruktur (misalnya array, objek). Jenis nilai bidang juga menentukan normalisasi semantik yang dilakukan untuk mengonversi konten yang terdeteksi menjadi representasi normalisasi. Normalisasi dapat bergantung pada lokal.

Jenis dasar

Jenis nilai bidang Deskripsi Representasi yang dinormalisasi Contoh (Konten bidang -> Nilai)
string Teks biasa Sama seperti konten MerchantName: "Contoso" → "Contoso"
date Date ISO 8601 - YYYY-MM-DD InvoiceDate: "7/5/2022" → "2022-05-07"
waktu Waktu ISO 8601 - hh:mm:ss TransactionTime: "21:45" → "21:45:00"
Nomor telepon Nomor telepon E.164 - +{CountryCode}{SubscriberNumber} Work Telepon: "(800) 555-7676" → "+18005557676"
countryRegion Negara/wilayah ISO 3166-1 alpha-3 CountryRegion: "Amerika Serikat" → "USA"
selectionMark Dipilih "ditandatangani" atau "tidak ditandatangani" AcceptEula: ☑ → "dipilih"
tanda tangan Ditandatangani Sama seperti konten LendeeSignature: {signature} → "ditandatangani"
number Bilangan titik mengambang Bilangan titik mengambang Kuantitas: "1,20" → 1,2
Integer Nomor bilangan bulat Nomor bertanda tangan 64-bit Hitungan: "123" → 123
Boolean Nilai Boolean benar/salah IsStatutoryEmployee: ☑ → benar

Jenis campuran

  • Mata Uang: Jumlah mata uang dengan unit mata uang opsional. Nilai, misalnya: InvoiceTotal: $123.45

    {
        "amount": 123.45,
        "currencySymbol": "$"
    }
    
  • Alamat: Alamat yang diurai. Misalnya: 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."
    }
    

Jenis terstruktur

  • Array: Daftar bidang dengan jenis yang sama

    "Items": {
        "type": "array",
        "valueArray": [
    
        ]
    }
    
  • Objek: Daftar subbidang bernama dari jenis yang berpotensi berbeda

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

Langkah berikutnya

  • Coba pemrosesan formulir dan dokumen Anda sendiri dengan Document Intelligence Studio.

  • Selesaikan mulai cepat Kecerdasan Dokumen dan mulai membuat aplikasi pemrosesan dokumen dalam bahasa pengembangan pilihan Anda.