Wednesday, June 28, 2017

Figure Out How to Apply Machine Learning


Sebenarnya kemarin aku udah selesai buat program Java sesuai spesifikasi. Tapi singkatnya tugas project ini nambah spek: bikin sistem yang bisa belajar dari correct input yang dimasukin user misalkan tebakan sistem salah. Artinya, program nggak hanya harus bisa memprediksi mana nama company, tax rate, tanggal, dalam sebuah invoice, tapi juga harus bisa beradaptasi dengan masukan user kalau tebakan program salah. Nah, di sini kita harus apply machine learning.

Hari ini aku nyari tau bagaimana supaya bisa apply machine learning di masalah ini. Dan akhirnya ketemu sebuah solusi. Apabila user memasukkan teks, kita bisa tahu lokasi teks tersebut di mana. Lokasi ini berupa x-y koordinat dari invoice. Lokasi ini akan dimasukkan sebagai parameter/fitur/atribut dalam machine learning. Dan class/prediksi-nya adalah berupa binary class, yes atau no, artinya apakah teks yang bersangkutan merupakan field yang kita cari.

Simpelnya, misal kita ingin menebak apa nama company yang menerbitkan suatu invoice. Berdasarkan track record masukan user, dapat diketahui bahwa biasanya nama company terletak di ujung kiri atas. Nah, apabila nanti ada invoice baru yang masuk, model machine learning kita akan menebak field nama company dengan teks yang ada di ujung kiri atas invoice. Gampangannya seperti itu. Di implementasi programnya, tidak begitu mudah karena komputer nggak punya visual mata seperti kita jadi kita harus apply algoritma machine learning.

Kenapa harus pake machine learning? Karena format invoice akan ada banyak sekali, sekitar ratusan. Kalo format invoice cuma satu, kita bisa gunakan regex atau rule-based program aja berdasarkan properti field yang bersangkutan (contoh field: nama company, tanggal, dst.). Sayangnya bisa saja format invoice bisa berbeda-beda, company A suka naruh nama di ujung kiri atas, company B di ujung kanan atas, company C di bawah setelah alamat perusahaan, dst. Selain kita apply machine learning untuk memprediksi di mana lokasi sebuah field biasanya, kita juga perlu apply machine learning untuk mengidentifikasi apakah format template dari invoice sudah pernah ada sebelumnya atau tidak. Ini bisa diselesaikan dengan image similarity.

Untuk besok, rencanaku adalah implementasi module converter PDF ke sentence per block menggunakan tool ini. Trus aku bakal mempersiapkan training data buat eksperimen machine learning nanti, sambil menunggu data mentahnya dikasih dari Tomita-san. Setelah itu, kita bakal sering mencebur ke algoritma-algoritma yang disediakan Weka, buat nyari mana algoritma yang paling bagus untuk memprediksi apa yang kita butuhkan.

Oiya, pulang dari kantor aku sempet ngefoto beberapa hal.

Supir shuttle bus kantor (Gotenyama Trust Tower) - Shinagawa station.
Bus ini gratis!

Bahkan dalam bus pun ada gambar beruang lucu.
Betapa Jepang sangat terobsesi dengan hal-hal imut.

Orang menyeberang di jam kerja pas rush hour.
Kalo di Jakarta mungkin yang rame jalanannya, macet.

Jalan raya depan Shinagawa station. Sepi walaupun rush hour

View lain, masih di Shinagawa. Serasa kayak di Jepang.

Kereta Yamanote Line PENUH PARAH buset sampe desak-desakan.
Ini sekitar jam 6-7. Wajar karena orang-orang pulang kerja.

Sampe mau masuk pun sesusah itu tapi masih dipaksain.

Majalah dewasa sangat mudah ditemukan di convinience store terdekat.
Jangan khawatir!

Oke, cukup sekian. Sampe jumpa besok!

Related Articles

0 comment:

Post a Comment