Petunjuk dan persyaratan penyiapan lab
Lindungi akun dan progres Anda. Selalu gunakan jendela browser pribadi dan kredensial lab untuk menjalankan lab ini.

Penguraian Formulir dengan Document AI (Python)

Lab 10 menit universal_currency_alt 5 Kredit show_chart Menengah
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Konten ini belum dioptimalkan untuk perangkat seluler.
Untuk pengalaman terbaik, kunjungi kami dengan komputer desktop menggunakan link yang dikirim melalui email.

GSP1139

Logo lab mandiri Google Cloud

Ringkasan

Document AI adalah solusi pemahaman dokumen yang memproses data tidak terstruktur (misalnya dokumen, email, invoice, formulir, dll.) dan membuat data tersebut lebih mudah dipahami, dianalisis, dan digunakan. API-nya memberikan struktur melalui klasifikasi konten, ekstraksi entity, penelusuran lanjutan, dan lainnya.

Di lab ini, Anda akan mempelajari cara menggunakan Parser Formulir Document AI untuk mengurai formulir tulisan tangan dengan Python. Anda akan menggunakan formulir rekam medis sederhana sebagai contoh, tetapi prosedur ini akan berfungsi dengan formulir umum apa pun yang didukung oleh DocAI.

Tujuan

Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:

  • Mengekstrak data dari formulir yang dipindai menggunakan Parser Formulir Document AI
  • Mengekstrak key-value pair dari formulir menggunakan Parser Formulir Document AI
  • Mengekstrak dan mengekspor data CSV dari formulir menggunakan Parser Formulir Document AI

Penyiapan dan persyaratan

Sebelum mengklik tombol Start Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran. Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:

    • Tombol Open Google Cloud console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).

    Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.

    {{{user_0.username | "Username"}}}

    Anda juga dapat menemukan Username di panel Lab Details.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab Details.

  6. Klik Next.

    Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  7. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan mendaftar uji coba gratis.

Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.

Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search. Ikon Navigation menu dan kolom Search

Mengaktifkan Cloud Shell

Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas Konsol Google Cloud.

  2. Klik jendela berikut:

    • Lanjutkan melalui jendela informasi Cloud Shell.
    • Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.

Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:

Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Untuk menetapkan akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Tugas 1. Mengaktifkan Document AI API

Sebelum dapat mulai menggunakan Document AI, Anda harus mengaktifkan API-nya.

  1. Buka Cloud Shell dengan mengklik tombol Activate Cloud Shell di bagian atas konsol.

  2. Di Cloud Shell, jalankan perintah berikut guna mengaktifkan API untuk Document AI.

gcloud services enable documentai.googleapis.com

Anda akan melihat yang seperti ini:

Operation "operations/..." finished successfully.

Anda juga perlu menginstal Pandas, library Analisis Data Open Source untuk Python.

  1. Jalankan perintah berikut untuk menginstal Pandas.
pip3 install --upgrade pandas
  1. Jalankan perintah berikut untuk menginstal library klien Python untuk Document AI.
pip3 install --upgrade google-cloud-documentai

Anda akan melihat yang seperti ini:

... Installing collected packages: google-cloud-documentai Successfully installed google-cloud-documentai-2.15.0

Sekarang, Anda siap untuk menggunakan Document AI API.

Klik Periksa progres saya untuk memverifikasi tujuan.

Mengaktifkan Document AI API.

Tugas 2. Membuat pemroses Parser Formulir

Pertama-tama, Anda harus membuat instance pemroses Parser Formulir untuk digunakan di Platform Document AI untuk tutorial ini.

  1. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu), klik View All Products > Artificial Intelligence > Document AI.

Konsol Overview Document AI

  1. Klik Explore Processors, lalu di bagian General, klik Form Parser untuk membuka halaman Create Processor.

Pemroses

  1. Beri nama lab-form-parser dan pilih region terdekat di daftar.

  2. Klik Create untuk membuat pemroses

  3. Salin ID Pemroses Anda. Anda harus menggunakannya dalam kode nanti.

ID Pemroses

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat pemroses

Menguji pemroses di Konsol Cloud

Anda dapat menguji pemroses di konsol dengan mengupload dokumen.

  1. Klik kanan gambar di bawah, lalu pilih Simpan Gambar Sebagai untuk mendownload contoh formulir.

Formulir Kesehatan

  1. Di halaman Processor Details, klik Upload Test Document. Pilih formulir yang baru saja Anda download.

Pemroses Parser Formulir akan memproses dokumen dan menampilkan data formulir yang diuraikan. Hasilnya akan terlihat seperti ini:

Formulir yang Diuraikan

Tugas 3. Mendownload formulir contoh

Di bagian ini, Anda akan mendownload dokumen contoh yang berisi formulir rekam medis sederhana.

  1. Jalankan perintah berikut untuk mendownload formulir contoh ke Cloud Shell Anda.
gcloud storage cp gs://cloud-samples-data/documentai/codelabs/form-parser/intake-form.pdf .
  1. Konfirmasi bahwa file telah didownload ke Cloud Shell menggunakan perintah berikut:
ls intake-form.pdf

Tugas 4. Mengekstrak key-value pair formulir

Di bagian ini, Anda akan menggunakan API pemrosesan online untuk memanggil pemroses Parser Formulir yang telah dibuat sebelumnya. Kemudian, Anda akan mengekstrak key-value pair yang ditemukan dalam dokumen.

Pemrosesan online digunakan untuk mengirim satu dokumen dan menunggu responsnya. Anda juga dapat menggunakan batch processing jika ingin mengirim beberapa file atau jika ukuran file melebihi halaman maksimum pemrosesan online.

Kode untuk membuat permintaan proses bersifat identik untuk setiap jenis pemroses selain ID Pemroses. Objek respons Document berisi daftar halaman dari dokumen input. Setiap objek page berisi daftar kolom formulir dan lokasinya di teks.

Kode berikut melakukan iterasi pada setiap halaman dan mengekstrak setiap kunci, nilai, dan skor keyakinan. Ketiganya adalah data terstruktur yang dapat lebih mudah disimpan di database atau digunakan di aplikasi lain.

  1. Di Cloud Shell, buat file bernama form_parser.py dan tempelkan kode berikut ke dalamnya:
import pandas as pd from google.cloud import documentai_v1 as documentai def online_process( project_id: str, location: str, processor_id: str, file_path: str, mime_type: str, ) -> documentai.Document: """ Processes a document using the Document AI Online Processing API. """ opts = {"api_endpoint": f"{location}-documentai.googleapis.com"} # Instantiates a client documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts) # The full resource name of the processor, e.g.: # projects/project-id/locations/location/processor/processor-id # You must create new processors in the Cloud Console first resource_name = documentai_client.processor_path(project_id, location, processor_id) # Read the file into memory with open(file_path, "rb") as image: image_content = image.read() # Load Binary Data into Document AI RawDocument Object raw_document = documentai.RawDocument( content=image_content, mime_type=mime_type ) # Configure the process request request = documentai.ProcessRequest( name=resource_name, raw_document=raw_document ) # Use the Document AI client to process the sample form result = documentai_client.process_document(request=request) return result.document def trim_text(text: str): """ Remove extra space characters from text (blank, newline, tab, etc.) """ return text.strip().replace("\n", " ") PROJECT_ID = "YOUR_PROJECT_ID" LOCATION = "YOUR_PROJECT_LOCATION" # Format is 'us' or 'eu' PROCESSOR_ID = "FORM_PARSER_ID" # Create processor in Cloud Console # The local file in your current working directory FILE_PATH = "form.pdf" # Refer to https://cloud.google.com/document-ai/docs/processors-list # for supported file types MIME_TYPE = "application/pdf" document = online_process( project_id=PROJECT_ID, location=LOCATION, processor_id=PROCESSOR_ID, file_path=FILE_PATH, mime_type=MIME_TYPE, ) names = [] name_confidence = [] values = [] value_confidence = [] for page in document.pages: for field in page.form_fields: # Get the extracted field names names.append(trim_text(field.field_name.text_anchor.content)) # Confidence - How "sure" the Model is that the text is correct name_confidence.append(field.field_name.confidence) values.append(trim_text(field.field_value.text_anchor.content)) value_confidence.append(field.field_value.confidence) # Create a Pandas Dataframe to print the values in tabular format. df = pd.DataFrame( { "Field Name": names, "Field Name Confidence": name_confidence, "Field Value": values, "Field Value Confidence": value_confidence, } ) print(df)
  1. Ganti YOUR_PROJECT_ID, YOUR_PROJECT_LOCATION, YOUR_PROCESSOR_ID, dan FILE_PATH dengan nilai yang sesuai untuk lingkungan Anda.
Perhatikan bahwa FILE_PATH adalah nama file yang Anda download ke Cloud Shell di langkah sebelumnya. Jika tidak diganti, nama file akan berupa intake-form.pdf, yang perlu Anda perbarui dalam kode.
  1. Jalankan perintah berikut untuk mengeksekusi skrip:
python3 form_parser.py

Anda akan melihat output berikut:

Field Name Field Name Confidence Field Value Field Value Confidence 0 Phone #: 0.999982 (906) 917-3486 0.999982 1 Emergency Contact: 0.999972 Eva Walker 0.999972 2 Marital Status: 0.999951 Single 0.999951 3 Gender: 0.999933 F 0.999933 4 Occupation: 0.999914 Software Engineer 0.999914 5 Referred By: 0.999862 None 0.999862 6 Date: 0.999858 9/14/19 0.999858 7 DOB: 0.999716 09/04/1986 0.999716 8 Address: 0.999147 24 Barney Lane 0.999147 9 City: 0.997718 Towaco 0.997718 10 Name: 0.997345 Sally Walker 0.997345 11 State: 0.996944 NJ 0.996944 ...

Tugas 5. Mengurai tabel

Parser Formulir juga dapat mengekstrak data dari tabel dalam dokumen. Di bagian ini, Anda akan mendownload dokumen contoh baru dan mengekstrak data dari tabelnya. Karena Anda memuat data ke Pandas, data ini dapat diekspor ke file CSV dan banyak format lainnya dengan satu panggilan metode.

Mendownload Formulir Contoh dengan Tabel

Kami memiliki dokumen contoh yang berisi contoh formulir dan tabel.

  1. Jalankan perintah berikut untuk mendownload formulir contoh ke Cloud Shell Anda.
gcloud storage cp gs://cloud-samples-data/documentai/codelabs/form-parser/form_with_tables.pdf .
  1. Konfirmasi bahwa file telah didownload ke Cloud Shell menggunakan perintah berikut:
ls form_with_tables.pdf

Mengekstrak Data Tabel

Permintaan pemrosesan untuk data tabel itu sama persis dengan permintaan untuk mengekstrak key-value pair. Perbedaannya adalah kolom mana yang Anda ekstrak datanya dalam respons. Data tabel disimpan di kolom pages[].tables[].

Contoh ini mengekstrak informasi dari baris header dan baris isi tabel untuk setiap tabel dan halaman, lalu mencetak tabel dan menyimpan tabel sebagai file CSV.

  1. Buat file bernama table_parsing.py dan tempelkan kode berikut ke dalamnya:
# type: ignore[1] """ Uses Document AI online processing to call a form parser processor Extracts the tables and data in the document. """ from os.path import splitext from typing import List, Sequence import pandas as pd from google.cloud import documentai def online_process( project_id: str, location: str, processor_id: str, file_path: str, mime_type: str, ) -> documentai.Document: """ Processes a document using the Document AI Online Processing API. """ opts = {"api_endpoint": f"{location}-documentai.googleapis.com"} # Instantiates a client documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts) # The full resource name of the processor, e.g.: # projects/project-id/locations/location/processor/processor-id # You must create new processors in the Cloud Console first resource_name = documentai_client.processor_path(project_id, location, processor_id) # Read the file into memory with open(file_path, "rb") as image: image_content = image.read() # Load Binary Data into Document AI RawDocument Object raw_document = documentai.RawDocument( content=image_content, mime_type=mime_type ) # Configure the process request request = documentai.ProcessRequest( name=resource_name, raw_document=raw_document ) # Use the Document AI client to process the sample form result = documentai_client.process_document(request=request) return result.document def get_table_data( rows: Sequence[documentai.Document.Page.Table.TableRow], text: str ) -> List[List[str]]: """ Get Text data from table rows """ all_values: List[List[str]] = [] for row in rows: current_row_values: List[str] = [] for cell in row.cells: current_row_values.append( text_anchor_to_text(cell.layout.text_anchor, text) ) all_values.append(current_row_values) return all_values def text_anchor_to_text(text_anchor: documentai.Document.TextAnchor, text: str) -> str: """ Document AI identifies table data by their offsets in the entirety of the document's text. This function converts offsets to a string. """ response = "" # If a text segment spans several lines, it will # be stored in different text segments. for segment in text_anchor.text_segments: start_index = int(segment.start_index) end_index = int(segment.end_index) response += text[start_index:end_index] return response.strip().replace("\n", " ") PROJECT_ID = "YOUR_PROJECT_ID" LOCATION = "YOUR_PROJECT_LOCATION" # Format is 'us' or 'eu' PROCESSOR_ID = "FORM_PARSER_ID" # Create processor before running sample # The local file in your current working directory FILE_PATH = "form_with_tables.pdf" # Refer to https://cloud.google.com/document-ai/docs/file-types # for supported file types MIME_TYPE = "application/pdf" document = online_process( project_id=PROJECT_ID, location=LOCATION, processor_id=PROCESSOR_ID, file_path=FILE_PATH, mime_type=MIME_TYPE, ) header_row_values: List[List[str]] = [] body_row_values: List[List[str]] = [] # Input Filename without extension output_file_prefix = splitext(FILE_PATH)[0] for page in document.pages: for index, table in enumerate(page.tables): header_row_values = get_table_data(table.header_rows, document.text) body_row_values = get_table_data(table.body_rows, document.text) # Create a Pandas Dataframe to print the values in tabular format. df = pd.DataFrame( data=body_row_values, columns=pd.MultiIndex.from_arrays(header_row_values), ) print(f"Page {page.page_number} - Table {index}") print(df) # Save each table as a CSV file output_filename = f"{output_file_prefix}_pg{page.page_number}_tb{index}.csv" df.to_csv(output_filename, index=False)
  1. Ganti YOUR_PROJECT_ID, YOUR_PROJECT_LOCATION, YOUR_PROCESSOR_ID, dan FILE_PATH dengan nilai yang sesuai untuk lingkungan Anda.
Perhatikan bahwa FILE_PATH adalah nama file yang Anda download ke Cloud Shell di langkah sebelumnya. Jika tidak diganti, nama file akan berupa form_with_tables.pdf, yang merupakan nilai default dan tidak perlu diubah.
  1. Jalankan perintah berikut untuk mengeksekusi skrip:
python3 table_parsing.py

Anda akan melihat output berikut:

Page 1 - Table 0 Item Description 0 Item 1 Description 1 1 Item 2 Description 2 2 Item 3 Description 3

Anda juga akan memiliki file CSV baru di direktori tempat Anda menjalankan kode.

  1. Jalankan perintah berikut untuk menampilkan daftar file di direktori kerja Anda saat ini:
ls

Anda akan melihat output berikut:

form_with_tables_pg1_tb0.csv

Selamat!

Selamat, di lab ini Anda telah berhasil menggunakan Document AI API untuk mengekstrak data dari formulir tulisan tangan. Anda juga mempelajari cara menggunakan library klien Python Document AI untuk mengekstrak key-value pair dari formulir serta cara mengekstrak data tabulasi dari formulir dengan tabel.

Langkah berikutnya/Pelajari lebih lanjut

Lihat referensi berikut untuk mempelajari lebih lanjut Document AI dan Library Klien Python:

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 21 Juli 2025

Lab Terakhir Diuji pada 21 Juli 2025

Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.