Saya memiliki daftar produk, termasuk variabel seperti nama produk (seperti yang tertera pada tanda terima) dan pedagang tempat produk itu dibeli.
Saya memiliki banyak dari mereka secara manual diklasifikasikan ke dalam kelompok kategori tetap (misalnya minuman beralkohol, sayuran, daging, dll.).
Data, seperti biasa, berisik. Dalam hal ini, terutama berisik karena berasal dari tanda terima yang dipindai dan OCR pada pemindaian yang tidak begitu baik biasanya sangat bising.
Saya ingin bermain-main dengan algoritma untuk mengklasifikasikan data baru, menggunakan dua variabel di atas.
Ada beberapa sumber variasi utama di sini:
- OCR, yang berarti suatu produk (misalnya ayam) dapat ditemukan dengan banyak ejaan yang berbeda tetapi relatif serupa (misalnya chiken, hicken, chicen, ...).
- Produk yang sama dapat memiliki nama yang berbeda, menurut pedagang yang menjual produk tersebut. Dalam hal ini, nama-nama tersebut dapat mirip atau sama sekali berbeda di seluruh pedagang, tetapi agak mirip di setiap pedagang.
- Produk yang sama dapat memiliki nama yang sangat berbeda di dalam pedagang yang sama (misalnya produk bermerek yang namanya pada tanda terima adalah nama merek, vs nama generik; minuman ringan vs coca cola).
Saya sudah mencoba beberapa (semacam naif) classifier, menggunakan misalnya jarak antara string (yang menangani sebagian besar sumber variasi pertama yang disebutkan di atas), tetapi saya tidak terlalu senang dengan hasilnya.
Jadi saya ingin menjangkau di sini untuk meminta ide tentang cara mengatasi masalah ini. Saya kira banyak orang telah "memecahkan" atau setidaknya bekerja lebih lama dalam masalah seperti ini daripada yang saya lakukan (beberapa jam) jadi saya akan sangat menghargai bimbingan apa pun di sini.
By the way, saya menggunakan sebagian besar R, jadi solusi berbasis R akan sangat dihargai.