Cari artikelAI MEDIA & DISTRIBUTION / INDONESIA

DEEP DIVE · Applied AI

Membaca PDF dengan AI: teks, tabel, dan gambar perlu jalur berbeda

Pipeline ekstraksi dokumen dengan koordinat bukti, normalisasi angka, pemeriksaan total, dan evaluasi OCR.

Sumber diperiksa

Diagram editorial original Nalarku; ilustrasi konseptual, bukan tangkapan produk.

Di dalam artikel ini
  1. Inventaris halaman sebelum ekstraksi
  2. Keluaran harus membawa lokasi bukti
  3. Normalisasi angka membutuhkan asumsi yang eksplisit
  4. Tabel perlu header dan hubungan baris
  5. Grafik tidak sama dengan tabel angka
  6. Evaluasi per bidang dan per halaman

Laporan PDF sering terlihat seperti satu dokumen, padahal di dalamnya ada lapisan teks, gambar hasil pindai, tabel, grafik, dan catatan kaki. Mengirim seluruh berkas ke model lalu meminta “ambil semua angka” dapat menghasilkan tabel rapi yang salah membaca satuan atau memasangkan angka dengan kolom yang keliru.

Dokumentasi PDF Claude menjelaskan pengolahan teks dan unsur visual; kemampuan aktual juga bergantung pada jalur API serta model. Panduan vision menunjukkan bahwa gambar merupakan masukan tersendiri. Rancangan berikut memakai contoh laporan fiktif untuk membangun pipeline ekstraksi yang dapat diperiksa, bukan mengklaim akurasi OCR suatu produk.

Inventaris halaman sebelum ekstraksi

Buat klasifikasi sederhana per halaman: teks digital, pindai, tabel padat, grafik, atau campuran. Catat rotasi, jumlah kolom, bahasa, dan kebutuhan resolusi. Halaman yang dapat diekstrak sebagai teks tetap perlu diperiksa urutan bacanya; PDF dua kolom bisa menghasilkan paragraf yang tercampur.

Jangan menghapus nomor halaman sumber ketika memecah dokumen. Nomor halaman berkas dan nomor tercetak dapat berbeda akibat sampul serta daftar isi. Simpan keduanya bila tersedia. Editor harus dapat menemukan sel yang dimaksud tanpa menebak halaman mana yang dipakai sistem.

Untuk data sensitif, seleksi halaman dan bidang yang benar-benar diperlukan sebelum mengirim ke layanan. Thumbnail, nama berkas, dan metadata dokumen juga dapat membawa informasi. Menghapus nama dari teks hasil ekstraksi tidak otomatis membersihkan berkas aslinya.

Keluaran harus membawa lokasi bukti

Rancang setiap nilai sebagai gabungan data dan provenance. Contoh berikut bukan skema resmi provider:

{
  "document_id": "report-demo",
  "revision": "r1",
  "page_index": 3,
  "printed_page": "2",
  "table_id": "T01",
  "field": "revenue",
  "raw_text": "1.234,50",
  "normalized": "1234.50",
  "unit": "juta rupiah",
  "period": "2026-Q3",
  "bbox_normalized": [0.12, 0.31, 0.44, 0.38]
}

Koordinat di contoh menggunakan rentang 0–1 terhadap halaman setelah orientasi diperbaiki. Ini konvensi aplikasi sendiri, bukan jaminan format koordinat provider. Simpan transformasi bila halaman di-crop atau dirotasi, sehingga kotak bukti bisa dipetakan kembali ke gambar sumber.

Nilai 1234.50 tanpa unit akan kehilangan arti. Menganggap “juta rupiah” sebagai “rupiah” menciptakan kesalahan besar walaupun semua digit terbaca benar. Periode dan tanda negatif harus diperlakukan sebagai bagian dari fakta.

Normalisasi angka membutuhkan asumsi yang eksplisit

Pemisah ribuan dan desimal berbeda menurut format dokumen. Kode lokal berikut sengaja hanya menerima format Indonesia tertentu. Ia menolak pola yang tidak dikenali daripada menebaknya:

import re
from decimal import Decimal


def parse_id_number(raw):
    pattern = r"-?(?:\d{1,3}(?:\.\d{3})+|\d+)(?:,\d+)?"
    value = raw.strip()
    if not re.fullmatch(pattern, value):
        raise ValueError("Format angka Indonesia tidak dikenali")
    return Decimal(value.replace(".", "").replace(",", "."))


print(parse_id_number("1.234,50"))
print(parse_id_number("-25,75"))

Fungsi tersebut tidak menangani kurung sebagai tanda negatif, persen, mata uang, atau notasi ilmiah. Tambahkan aturan terpisah setelah format sumber diketahui. Simpan raw_text agar perubahan parser dapat dievaluasi ulang tanpa mengekstrak dokumen dari awal.

Gunakan tipe desimal ketika aritmetika dokumen menuntut ketepatan desimal. Jangan menormalisasi angka lewat substitusi karakter yang sama untuk semua dokumen; sumber berbahasa Inggris dapat memakai titik sebagai desimal.

Tabel perlu header dan hubungan baris

Satu sel dapat mewarisi tahun dari header atas, kategori dari kolom kiri, dan satuan dari judul tabel. Jika potongan gambar hanya menampilkan angka, model kehilangan informasi yang diperlukan untuk memberi label.

Pisahkan ekstraksi struktur dari interpretasi. Tahap pertama mengenali baris, kolom, header bertingkat, dan sel gabungan. Tahap berikutnya memetakan nilai ke konsep yang dipakai aplikasi. Simpan sel kosong sebagai kosong; jangan mengisi dengan nilai baris sebelumnya kecuali dokumen memang memakai konvensi itu.

Lakukan pemeriksaan rekonsiliasi. Jika tiga komponen seharusnya menjumlah ke total, hitung selisihnya. Tentukan toleransi berdasarkan pembulatan pada sumber, bukan angka universal. Ketidaksesuaian tidak selalu berarti OCR salah: sumber dapat membulatkan komponen atau memberi catatan penyesuaian.

Grafik tidak sama dengan tabel angka

Sebuah batang yang tampak dua kali lebih tinggi belum tentu merepresentasikan nilai dua kali lipat bila sumbu dipotong atau skalanya logaritmik. Periksa label, legenda, rentang sumbu, dan catatan sebelum menyimpulkan tren.

Untuk angka yang hanya diperkirakan dari visual, beri label estimasi dan batas ketelitian. Jangan menggabungkannya dengan nilai tabel yang presisi seolah keduanya setara. Bila tersedia tabel data pendamping, prioritaskan data itu untuk penghitungan dan gunakan grafik sebagai pemeriksaan konteks.

Kegagalan Pemeriksaan yang membantu Jalur penanganan
Digit keliru Cocokkan crop sumber Review nilai
Kolom tahun tertukar Periksa header lengkap Ekstrak ulang struktur
Satuan hilang Cocokkan judul dan catatan Tahan penghitungan
Grafik ditafsirkan terlalu presisi Periksa skala dan data pendamping Label estimasi
Teks catatan terlewat Audit bagian bawah halaman Lengkapi konteks

Evaluasi per bidang dan per halaman

Siapkan sampel yang mencakup PDF digital, pindai berkualitas rendah, tabel dengan header bertingkat, dan angka negatif. Label rujukan perlu memuat nilai, unit, periode, serta lokasi. Menilai kesamaan teks saja dapat melewatkan kesalahan hubungan kolom.

Ukur field accuracy, kesalahan unit, sel yang hilang, dan proporsi halaman yang membutuhkan review. Catat biaya serta waktu review per halaman yang diterima. Ukuran itu membantu memilih kapan ekstraksi otomatis bermanfaat dan kapan pembacaan manual lebih efisien.

Sebelum menyebarkan hasil sebagai slide atau video, hubungkan angka ke manifest klaim. Pipeline review Gemini Notebook memberi contoh pemeriksaan antarformat. Koreksi satu sel harus dapat dilacak ke semua artikel, grafik, dan ringkasan yang menggunakannya.

DASAR BACAAN

Sumber & catatan editorial

  1. PDF supportClaude Platform Docs
  2. Images and visionClaude Platform Docs

Panduan ini menghubungkan dokumentasi resmi dengan rancangan teknis Nalarku. Contoh dan simulasi diberi label. Status produk mengikuti sumber saat diperiksa, dan dapat berubah. Baca transparansi penggunaan AI serta standar editorial kami.

Bawa konteksnya ke percakapan.Ikuti Nalar Pekan →