Mengekstrak informasi dari dokumen
Tip
Lihat tab Teks dan gambar untuk detail selengkapnya!
Proses bisnis saat ini sangat bergantung pada data yang terkandung dalam dokumen seperti formulir, tanda terima, dan faktur. Pemrosesan manual dapat menyebabkan penundaan dan kesalahan, membuat otomatisasi ekstraksi data lebih penting dari sebelumnya.
Cara kerja Azure Content Understanding
Azure Content Understanding mengikuti alur kerja ekstraksi berbasis model di mana konten yang tidak terstruktur diserap, dianalisis, dan dikembalikan sebagai data terstruktur.
Memasukkan konten: Anda mengirimkan konten ke Azure Content Understanding.
Analisis yang didukung AI: Layanan ini menggunakan kombinasi: Pengenalan Karakter Optik (OCR), pengenalan ucapan, pemahaman bahasa alami, dan model AI multimodal untuk menganalisis konten.
Output terstruktur: Layanan mengembalikan hasil terstruktur (misalnya, di JSON) yang cocok dengan model Anda—membuat data mudah disimpan, dicari, atau diintegrasikan ke dalam sistem hilir.
Nota
JSON (JavaScript Object Notation) adalah format data berbasis teks yang digunakan untuk menyimpan dan bertukar data terstruktur antar sistem. Mudah bagi manusia untuk membaca dan menulis, dan mudah bagi mesin untuk mengurai dan menghasilkan.
Memahami skema
OCR (pengenalan karakter optik) memungkinkan komputer untuk 'membaca' teks dari gambar, seperti dokumen yang dipindai, foto tanda terima, atau gambar halaman cetak, dan mengubah teks tersebut menjadi teks digital yang dapat diedit dan dapat dicari. OCR dasar membantu mengenali teks cetak, berfokus pada ekstraksi teks, dan tidak memahami arti, konteks, atau hubungan antar kata.
Kemampuan analisis dokumen Azure Content Understanding melampaui ekstraksi teks berbasis OCR sederhana untuk menyertakan ekstraksi bidang berbasis skema dan nilainya. Pendekatan berbasis skema adalah apa yang membedakan Pemahaman Konten Azure dari layanan OCR atau transkripsi dasar.
Skema menjelaskan informasi apa yang ingin Anda ekstrak dan bagaimana informasi tersebut harus disusun. Saat Anda menentukan skema, Anda menentukan bidang yang akan diekstrak. Skema mencantumkan bidang atau entitas tertentu yang Anda pedulikan.
Misalnya, Anda menentukan skema yang menyertakan bidang umum yang biasanya ditemukan dalam faktur, seperti:
- Nama vendor
- Nomor faktur
- Tanggal faktur
- Nama pelanggan
- Alamat kustom
- Item - item yang diurutkan, masing-masing meliputi:
- Deskripsi item
- Harga unit
- Kuantitas yang dipesan
- Jumlah total item baris
- Subtotal faktur
- Pajak
- Biaya Pengiriman
- Total faktur
Sekarang misalkan Anda perlu mengekstrak informasi ini dari faktur berikut:
Azure Content Understanding dapat menerapkan skema faktur ke faktur Anda dan mengidentifikasi bidang yang sesuai, bahkan ketika diberi label dengan nama yang berbeda (atau tidak diberi label sama sekali). Analisis yang dihasilkan menghasilkan hasil seperti ini:
Skema juga mendefinisikan struktur bidang. Skema mendukung bidang terstruktur dan berlapis, bukan hanya teks datar. Contohnya:
-
Itemsadalah sebuah koleksi - Setiap item memiliki
description,unit price,quantity, danline total
Mengidentifikasi bidang terstruktur memungkinkan Azure Content Understanding memahami hubungan antar nilai, sesuatu yang tidak dapat dilakukan OCR saja.
Dalam contoh faktur, untuk setiap bidang yang terdeteksi, Anda dapat mengekstrak nilai berlapis:
- Nama vendor: Adventure Works Cycles
- Nomor faktur: 1234
- Tanggal faktur: 07/03/2025
- Nama pelanggan: John Smith
- Alamat kustom: 123 River Street, Marshtown, Inggris, GL1 234
-
Item:
- Item 1:
- Deskripsi item: Sepeda Balap 38" (Merah)
- Harga satuan: 1299.00
- Kuantitas yang diurutkan: 1
- Total baris barang: 1299.00
- Item 2:
- Deskripsi item: Bersepeda helm (Hitam)
- Harga satuan: 25.99
- Kuantitas yang diurutkan: 1
- Total baris: 25,99
- Item 3:
- Deskripsi item: Kemeja bersepeda (L)
- Harga satuan: 42.50
- Kuantitas yang diurutkan: 2
- Total item garis: 85.00
- Item 1:
- Subtotal faktur: 1409.99
- Pajak: 140.99
- Biaya Pengiriman: 35.00
- Total faktur: 1585.98
Azure Content Understanding mengekstrak arti yang diharapkan, bukan hanya label. Skema diterapkan secara semantik, yang berarti:
- Bidang dapat diekstrak meskipun labelnya berbeda
- Bidang dapat diekstraksi meskipun label tidak ada.
Misalnya, Faktur No., Faktur #, atau nomor yang tidak berlabel semuanya dapat dipetakan InvoiceNumber jika penganalisis menentukan bahwa mereka mewakili konsep yang sama.
Memahami penganalisis
Penganalisis adalah unit dalam Azure Content Understanding yang mengambil input, menerapkan analisis AI, dan menghasilkan hasil terstruktur. Penganalisis secara konsisten menerapkan logika ekstraksi yang sama ke semua konten masuk. Setelah dikonfigurasi, penganalisis memastikan skema digunakan kembali secara konsisten untuk setiap permintaan analisis. Penganalisis juga menghasilkan hasil JSON yang dapat diprediksi. Hasil terstruktur membuat pemrosesan hilir (penyimpanan, pencarian, otomatisasi) lebih mudah.
Azure Content Understanding menawarkan penganalisis bawaan untuk skenario umum dan mendukung penganalisis kustom yang disesuaikan dengan kebutuhan Anda. Secara garis besar:
- Anda memilih atau membuat penganalisis.
- Penganalisis mencakup skema yang menentukan bidang dan struktur.
- Anda mengirimkan konten untuk analisis
- Layanan menerapkan skema
- Anda menerima hasil JSON terstruktur yang cocok dengan skema
Menggunakan Pemahaman Konten Azure di portal Foundry
Nota
Portal Foundry memiliki antarmuka pengguna (UI) klasik dan antarmuka pengguna baru .
Setelah Anda membuat sumber daya Microsoft Foundry, Anda dapat menggunakan antarmuka portal baru Foundry untuk mencoba Azure Content Understanding. Portal Foundry menyediakan contoh konten dan memungkinkan Anda mengunggah materi Anda sendiri untuk analisis.
Anda dapat menggunakan antarmuka visual untuk memilih dokumen sumber dan mengekstrak bidang informasi default. Misalnya, saat Anda mencoba Azure Content Understanding pada gambar dokumen, layanan mengembalikan teks dokumen dan informasi tata letak teks.
Penganalisis Azure Content Understanding mengidentifikasi nilai teks dalam dokumen dan memetakannya ke bidang tertentu. Misalnya, dengan faktur, layanan mengembalikan bidang (seperti alamat Vendor) dan data di bidang (seperti 123 456th Street).
Di portal Foundry, Anda juga dapat melihat hasil JSON dari pemrosesan.
Membangun aplikasi klien dengan Azure Content Understanding
Anda dapat menggunakan CONTENT Understanding API untuk membangun aplikasi klien ringan yang mengekstrak data secara terprogram.
Nota
Aplikasi klien adalah program perangkat lunak yang berjalan pada perangkat pengguna dan meminta layanan atau data dari sistem lain, biasanya server, melalui jaringan. Klien adalah bagian dari aplikasi yang berinteraksi dengan pengguna, sementara server melakukan pekerjaan berat di belakang layar. Aplikasi dapat meminta data atau tindakan dari layanan dan menerima respons terstruktur menggunakan API.
Saat menggunakan CONTENT Understanding API, Anda dapat memilih penganalisis bawaan atau membuat penganalisis kustom. Penganalisis bawaan meliputi: prebuilt-invoice, , prebuilt-imageSearch, prebuilt-audioSearchdan prebuilt-videoSearch. Saat Anda mengirimkan konten untuk analisis ke penganalisis, analisisnya asinkron, yang berarti Anda mendapatkan hasilnya nanti ketika sudah siap. Karena analisisnya asinkron, Anda perlu melakukan polling URL Operation-Location (atau analyzerResults) hingga pekerjaan berhasil.
Menggunakan Azure Content Understanding Python SDK
Mari kita lihat proses penggunaan Python SDK untuk menganalisis faktur dari URL.
- Instal Azure Content Understanding Python SDK.
python -m pip install azure-ai-contentunderstanding
Identifikasi titik akhir sumber daya Foundry dan kunci API atau ID Microsoft Entra Anda. Titik akhir Anda biasanya terlihat seperti:
https://<your-resource-name>.services.ai.azure.com/Buat dan jalankan kode aplikasi klien.
analzyer_idadalah ID penganalisis bawaan. Anda dapat menemukan daftar nilai ID penganalisis bawaan di sini.
import os
from azure.ai.contentunderstanding import ContentUnderstandingClient
from azure.core.credentials import AzureKeyCredential
endpoint = os.environ["FOUNDRY_ENDPOINT"]
key = os.environ["FOUNDRY_KEY"]
client = ContentUnderstandingClient(endpoint=endpoint, credential=AzureKeyCredential(key))
# 1) start analysis with analyzer id + inputs
analyzer_id = "prebuilt-invoice"
inputs = [
{"url": "https://github.com/Azure-Samples/azure-ai-content-understanding-python/raw/refs/heads/main/data/invoice.pdf"}
]
# 2) wait for the Long Running Operation (LRO) to complete
poller = client.begin_analyze(analyzer_id=analyzer_id, inputs=inputs) # starts LRO
result = poller.result() # waits for completion (polling handled by SDK)
# 3) read structured fields + markdown
# The result typically includes extracted "fields" and "markdown" per input content item.
for content in result.contents:
print(content.markdown)
print(content.fields)
Output yang dihasilkan adalah JSON yang menunjukkan ekstraksi markdown, bidang, data pada bidang, dan skor keyakinan. Contohnya:
{
"status": "Succeeded",
"result": {
"analyzerId": "prebuilt-invoice",
"apiVersion": "2025-05-01-preview",
"contents": [
{
"markdown": "# INVOICE\n\nCONTOSO LTD.\n\nContoso Headquarters\n123 456th St\nNew York, NY, 10001\n\nINVOICE: INV-100\n\nINVOICE DATE: 11/15/2019\n\nDUE DATE: 12/15/2019\n\nCUSTOMER NAME: MICROSOFT CORPORATION\n",
"fields": {
"CustomerName": {
"type": "string",
"valueString": "MICROSOFT CORPORATION",
"confidence": 0.95,
},
"InvoiceDate": {
"type": "date",
"valueDate": "2019-11-15",
"confidence": 0.994,
}
}
}
]
}
}
Selanjutnya, pelajari cara menggunakan penganalisis Azure Content Understanding untuk mengekstrak data terstruktur dari audio dan video.