Generasi Lanjutan Orderan
Tautan Proyek Terkait:
• Memperbaiki Kekurangan dari Machine Learning (ML)
• Mendukung Pengisian Langsung oleh Tim Lapangan
• Spreadsheets Form Order
Sekali dayung, dua-tiga pulau terlampaui. Setidaknya inilah yang dapat dikatakan untuk sementara waktu dengan hadirnya proyek terbaru berupa Spreadsheets Form Order. Dengan model Machine Learning (ML), data yang masuk memiliki kerentanan yang pasti, meskipun kenyataannya mesin sudah memiliki lebih dari satu proses atau tahap penyaringan pada sesi pelatihan model:
1. Tahapan Pelatihan Model ML
-
Pembersihan Teks dan Normalisasi:
Fase ini memungkinkan pembersihan teks dari spasi berlebih dan normalisasi teks menjadi huruf kecil semua. -
Ekstraksi dan Pembentukan Memori:
Fase saat data akan difilter, mengecualikan baris kosong, dan memetakan nama input ke nama master untuk pembentukan kamus memori. -
Ekstraksi Fitur dan Pelatihan Model ML:
a) Ekstraksi fitur teks menggunakan TF-IDF Vectorizer berkarakter n-gram (2–4 n-gram).
b) Pelatihan model pencarian tetangga terdekat menggunakan Nearest Neighbors (k-NN) dengan jarak Cosine Similarity. -
Pencocokan dan Penyaringan Bertingkat:
- Tingkat 1 Validasi Input: Memfilter dan mendeteksi input kosong (GAGAL).
- Tingkat 2 Match Lokal: Pengecekan langsung kolom target lokal pada baris yang sama.
- Tingkat 3 Exact Memory Match: Mencocokkan teks secara persis dengan Kamus Memori Historis.
- Tingkat 4 Fuzzy Matching: Menggunakan algoritma RapidFuzz (
token_set_ratio) dengan batas minimal skor 75,0. - Tingkat 5 ML Cosine Similarity: Menggunakan prediksi model TF-IDF + k-NN dengan batas kemiripan minimal 0,65 (65%).
-
Pengayaan dan Ekspor Data:
a) Menambahkan kolomHasil_Nama_Rekomendasi,Skor_Kemiripan_%,Status_Pencocokan, danSumber_Pencocokanke dalam dataframe.
b) Menyimpan hasil pemrosesan ke dalam berkasHasil_Latihan_temp.xlsx.
Tidak hanya berhenti pada proses tersebut, ketika mesin melakukan eksekusi nyata menggunakan data hasil latihan, mesin juga menjalankan beberapa proses lanjutan berikut:
2. Tahapan Eksekusi Lanjutan oleh Mesin
-
Inisialisasi dan Memuat Konfigurasi:
Membaca parameter dari berkasconfig.conf(rulemaking grup, filter produk/brand, kata kunci NOO/outlet baru, penanda kecurangan/flag fraud, dan interval waktu eksekusi), serta melakukan pra-pemuatan (preloading) dan penyiapan data ke RAM. -
Filter Data ML & Feedback:
Memuat berkasHasil_Latihan_temp.xlsxdanFBackCust_temp.xlsxdengan memfilter entitas bernilaiTIDAK DITEMUKAN,FAILED, atau duplikat. -
Ekstraksi Dynamic Stopwords:
Mendeteksi kata-kata generik/wilayah berfrekuensi tinggi (threshold ≥ 1,5%) secara otomatis dari korpus data untuk menghindari false positive saat matching. - Filter Data AR (Accounts Receivable).
-
Resolusi Nama Pelanggan (
resolve_target_name_fast):
Mencari nama resmi pelanggan dengan urutan hierarki: Branch Rules Config → Feedback Dict → ML Dict → Fuzzy Matching (RapidFuzz + Validasi token terinti melaluivalidate_ml_match). -
Penyaringan & Pencarian Faktur AR Presisi (
get_ar_rows_fast):
a) Pencarian Kata Kunci Grup: Mengelompokkan dan memfilter faktur berdasarkan kata kunci grup bisnis.
b) Pencarian Kode Pelanggan: Menggunakan pemetaan berkasMinifs_temp.xlsxuntuk memfilter faktur berdasarkan kode pelanggan alternatif/gabungan.
c) Pencarian Token Teks: Penyaringan faktur berdasarkan kecocokan kata terinti (core tokens) dengan membuang kata-kata dynamic stopwords. - Kalkulasi Bisnis & Pembuatan Laporan Excel.
- Pengunggahan / Injeksi Data ke Google Sheets.
Tantangan Dataset & Risiko Bias:
Terlebih jika dataset latihannya memiliki celah—misalnya saat tim sales menggunakan nama baru, singkatan baru, dan berbagai kendala lainnya. Dataset baru ini harus dimasukkan dan dipetakan secara manual oleh manusia agar mesin dapat mengenali data-data baru tersebut sehingga tidak menimbulkan bias (atau dalam diskusi kekinian dikenal dengan istilah halusinasi). Bias ini disebabkan oleh dataset yang ada belum mampu memberikan hasil optimal akibat kurangnya data dalam proses pemodelan. Ketika data baru muncul, mesin hanya akan menebak-nebak hasilnya, bukan menghasilkan keputusan yang sesungguhnya.
Pada model orderan yang lebih presisi (menggunakan kode pelanggan sebagai kunci acuan), proyek baru ini memungkinkan tim lapangan untuk tidak lagi menebak-nebak kode atau nama pelanggan. Hal ini disebabkan data kode pelanggan, nama pelanggan, dan nama kontak sudah disediakan serta dapat dicari langsung dalam satu kolom yang sama. Dengan demikian, ketika tim lapangan memasukkan salah satu dari ketiganya, data yang dimaksud akan langsung muncul.
Selain memecahkan masalah pencarian kode pelanggan, cara ini juga mengurangi beban pekerjaan admin dalam memperbaiki kode pelanggan secara manual serta menghapus data AR yang telah terisi oleh mesin otomatisasi. Tidak hanya itu, pada generasi lanjutan ini, sistem secara cerdas memberikan opsi untuk memilih lebih dari satu pilihan. Solusi ini menjawab kebutuhan atas perubahan data pelanggan dari waktu ke waktu, terutama saat masa transisi di mana piutang pelanggan dapat membentuk dua data berbeda.
Gabung dalam percakapan