Ekstrak tabel detail, jangan biarkan pengurutan mengganggu korespondensi antara baris dan teks asli
Jumlah detail yang sama pada kedua baris tidak berarti bahwa keduanya merupakan data duplikat; tabel yang diurutkan lebih rapi, namun bukan berarti bisa disejajarkan dengan teks aslinya baris demi baris. Hal yang paling mudah hilang saat mengekstraksi detail sering kali adalah korespondensi antara setiap baris dan sumbernya. Artikel ini akan menjelaskan cara mempertahankannya.
Hanya karena jumlah di kedua baris sama bukan berarti keduanya merupakan data duplikat. Hanya karena tabel diurutkan bukan berarti tabel tersebut masih sesuai dengan teks aslinya baris demi baris. Saat mengekstraksi detail, yang mudah hilang sering kali bukanlah bidang itu sendiri, melainkan korespondensi antara setiap baris dan sumbernya.
Artikel ini cocok untuk orang yang perlu mengekstrak detail dari dokumen seperti kontrak, kutipan, tabel keuangan, dll. Artikel ini juga cocok untuk pengembang yang sedang membangun proses pemrosesan hilir. Setelah membaca, Anda akan mengetahui cara menyimpan informasi sumber untuk setiap detail, cara mengatasi masalah yang disebabkan oleh jumlah yang sama, header dan penyortiran lintas halaman, dan penyelarasan apa yang harus digunakan selama verifikasi pasca-terjemahan.
Bagaimana cara menjaga korespondensi antara baris dan sumber saat mengekstraksi detail? Kesimpulan satu kalimat
Simpan pengidentifikasi sumber yang stabil untuk setiap detail. Penyortiran hanya untuk tampilan dan tidak menimpa nomor baris aslinya.
| situasi Anda | Praktik yang direkomendasikan | alasan |
|---|---|---|
| Kedua baris tersebut mempunyai jumlah yang sama | Periksa halaman sumber dan nomor baris sumber terlebih dahulu, dan jangan terburu-buru menghapus duplikat. | Jumlah yang sama tidak mewakili data duplikat |
| Perlu ditampilkan diurutkan berdasarkan jumlah | Buat tampilan tampilan dan pertahankan nomor baris asli tidak berubah | Nomor seri yang diurutkan tidak boleh ditulis kembali ke sumbernya |
| Header atau subtotal duplikat muncul di tabel | Kecualikan menurut aturan yang dapat ditafsirkan dan pertahankan baris dan alasan yang dikecualikan | Permudah peninjau untuk mendeteksi penghapusan yang tidak disengaja |
| Detail multibahasa perlu diselaraskan | Sejajarkan berdasarkan ID sumber, bukan hanya berdasarkan nama produk yang diterjemahkan | Nama dan jumlah produk dapat diulang |
Simpan identitas baris stabil terlebih dahulu
Simpan halaman sumber, nomor tabel, dan nomor baris sumber untuk setiap detail, atau pengidentifikasi stabil yang terdiri dari informasi ini. Nama produk dan jumlah dapat diulang dan tidak cocok sebagai identitas terpisah.
Ketika hilir perlu mengurutkan berdasarkan jumlah, Anda dapat membuat tampilan tampilan, tetapi jangan salah menulis nomor seri yang diurutkan kembali ke sumber aslinya.
Beberapa cara dapat digunakan sebagai identitas baris
| Jalan | Apakah cocok sebagai identitas? | alasan |
|---|---|---|
| Halaman sumber + nomor tabel + nomor baris sumber | Sesuai | Dapat menemukan lokasi baris dalam teks asli secara stabil |
| Nama Produk | Tidak cocok untuk digunakan sendiri | kemungkinan duplikat |
| Jumlah | Tidak cocok digunakan sendiri | Kemungkinan pengulangan |
| Nomor tampilan yang telah diurutkan | Tidak cocok sebagai sumber | Pengurutan akan berubah setelah pengurutan |
Perhatikan keunikan Skema JSON
Array JSON mempertahankan urutan, tetapi uniqueItems dalam skema bukanlah jalan pintas untuk "sebuah bidang itu unik." Jika bidang lain dari dua objek berbeda, mereka masih dapat dianggap sebagai item yang berbeda. Keunikan tingkat bidang perlu diperiksa secara terpisah.
Sekumpulan detail dengan jumlah yang sama tapi sumber berbeda
from collections import Counter
rows = [{"source_id": "p1-t1-r1", "item": "Bolt", "amount": "10.00"},
{"source_id": "p1-t1-r2", "item": "Nut", "amount": "10.00"}]
def check_ids(items):
counts = Counter(row["source_id"] for row in items)
return [key for key, count in counts.items() if count > 1]
assert check_ids(rows) == []
assert len(rows) == 2
assert check_ids(rows + [dict(rows[0])]) == ["p1-t1-r1"]
display = sorted(rows, key=lambda row: row["item"], reverse=True)
assert [r["source_id"] for r in rows] == ["p1-t1-r1", "p1-t1-r2"]
assert {r["source_id"] for r in display} == {r["source_id"] for r in rows}
Ini adalah pemeriksaan identitas untuk data sintetis, bukan pembaca tabel. Kode sengaja tidak menduplikasi jumlah yang sama, juga tidak memperlakukan urutan tampilan sebagai sumber.
Aturan untuk menghasilkan True Source ID perlu mempertimbangkan versi file. Jika tidak, halaman atau baris yang sama di kedua versi dapat disalahartikan sebagai bukti yang sama.
Jika jumlah baris salah, identifikasi pertama tautan yang hilang
| Fenomena | Harus diperiksa | Itu tidak boleh diambil segera |
|---|---|---|
| Jumlah diduplikasi | Apakah itu proyek berbeda atau bank sumber yang berbeda | Duplikat dihapus berdasarkan jumlah |
| ID Sumber diulang | Apakah ada impor berulang atau pemetaan yang salah | Menambahkan ID baru secara acak |
| Lebih sedikit garis | Gabungkan sel, baris kosong, dan aturan filter | Gunakan baris sebelumnya untuk mengisi celah |
| Perubahan urutan | Apakah hanya untuk pengurutan tampilan? | Tutup nomor baris asli |
Header lintas halaman bukanlah baris data biasa
Header duplikat, deskripsi tabel lanjutan, dan baris subtotal dapat dimasukkan ke dalam array tambahan. Menghapusnya membutuhkan aturan yang dapat diinterpretasikan; Anda tidak bisa hanya melihat teks depan atau teks pendek.
Mempertahankan baris yang dikecualikan dan alasannya dapat membantu meninjau kesalahan dan mendeteksi penghapusan. Jika tidak, masalah baru akan diselidiki ketika total akhir tidak sesuai.
Membawa Hubungan Sumber ke Verifikasi Pasca-Terjemahan
Daftar detail multibahasa harus diselaraskan berdasarkan ID sumber dan tidak dapat dicari hanya berdasarkan nama produk yang diterjemahkan. Saat mengevaluasi hasil terjemahan dokumen tabel OmniDoc (Entri Produk), hubungan baris-kolom, kuantitas, dan satuan layak diperiksa secara terpisah.
Identifikasi sumber dalam artikel ini adalah perjanjian rekayasa eksternal dan tidak memberikan penjelasan tentang implementasi internal platform.
Referensi: Rangkaian Skema JSON
🎯 Metode mana yang cocok untukmu?
Jika Anda perlu mengurutkan berdasarkan jumlah agar orang bisa melihat
Buat tampilan tampilan; pengurutan hanya memengaruhi tampilan, dan halaman sumber asli serta nomor baris sumber tetap tidak berubah.
Jika tabel Anda memiliki header lintas halaman atau subtotal
Gunakan aturan yang dapat dijelaskan untuk mengecualikan baris-baris ini, dan simpan baris yang dikecualikan beserta alasannya untuk ditinjau nanti.
Jika Anda menangani beberapa versi file
Aturan untuk menghasilkan ID sumber harus dimasukkan ke dalam versi file untuk menghindari kebingungan antara versi halaman dan baris yang sama.
Jika Anda ingin melakukan penyelarasan detail multibahasa
Sesuaikan berdasarkan ID sumber; jangan hanya mengandalkan nama produk yang diterjemahkan.
❓ Pertanyaan yang Sering Diajukan (FAQ)
1. Jika jumlah di kedua baris sama, apakah duplikat bisa langsung dihapus?
Tidak. Jumlah yang sama tidak berarti data duplikat; halaman sumber dan nomor baris mereka harus terlebih dahulu diperiksa untuk memastikan apakah mereka berasal dari item yang berbeda atau baris sumber yang berbeda.
2. Mengapa nama produk tidak cocok untuk identitas lini tersebut?
Nama produk dan jumlah dapat diduplikasi, dan hanya menggunakan mereka saja tidak dapat menemukan lini asli secara andal.
3. Setelah mengurut, apakah nomor seri baru bisa ditulis kembali ke data asli?
Tidak disarankan. Nomor seri yang diurutkan hanya cocok untuk ditampilkan; menimpa nomor baris asli akan kehilangan korespondensi dengan sumber.
4. Apa yang perlu Anda perhatikan saat menghapus header duplikat?
Harus ada aturan yang dapat dijelaskan, dan baris serta alasan yang dikecualikan harus dipertahankan untuk mengidentifikasi penghapusan yang salah.
📝 Ringkasan
Saat mengekstrak detail, pertama-tama pertahankan korespondensi antara setiap baris dan sumbernya, lalu diskusikan tentang pengurutan dan deduplikasi. Kode dalam artikel ini hanya untuk demonstrasi sampel sintetis dan tidak menjamin semua file asli atau kinerja produk. Sebelum menangani dokumen penting, harap simpan dokumen asli dan tinjau sesuai dengan batasan dan item penerimaan dalam dokumen.
Rasakan sekarang: Unggah dokumen Anda untuk mulai menerjemahkan, mempertahankan format asli


