Menghilangkan duplikasi data di spoon 4 dengan fuzzy match

442 views
Skip to first unread message

mifta

unread,
Feb 18, 2011, 6:21:03 AM2/18/11
to Pentaho User Group Indonesia
Salam

Pak Feris dan rekan-rekan di pentaho group
Sebelumnya salam kenal. Saat ini saya baru belajar menggunakan pentaho
data integration untuk mengembangkan data warehouse untuk analisis
data pelanggan PDAM.
Yang ingin saya tanyakan bagaimana cara menghilangkan duplikasi data
pada tabel, kemudian memindah datanya ke tabel dan database yang
berbeda

tabel input : database foxpro
tabel output : database mysql

permasalahan duplikasi datanya, misal sebagai berikut
kode jalan : 001 , nama jalan : harjosari
kode jalan : 003 , nama jalan : harjosari, sukodono

2 nama jalan diatas sebenarnya ada 1 nama jalan yang sama. Di sini
saya ingin mengambil satu nama jalan saja
misal saya hanya mengambil jalan harjosari kemudian mengeksportnya ke
tabel di database baru..

sebelumnya saya pernah membaca topik diskusi di group ini tentang
bagaimana menghilangkan duplikasi data:
http://groups.google.com/group/pentaho-id/browse_thread/thread/7ad6ebb5cd6bb92/ef182bca01654739?hl=id&lnk=gst&q=menghilangkan+duplikasi+data#ef182bca01654739

tapi saya masih belum bisa memahaminya dengan jelas pak. Kenapa harus
memakai algoritma damerau levenshtein. Sedangkan saya pernah baca
artikel di forum.pentaho.com yg dipakai algoritma jaro winkler
http://forums.pentaho.com/showthread.php?78910-How-to-use-Fuzzy-match-step

Oleh karena itu saya sangat mengharapkan petunjuk dari Pak feris dan
tmn2 semua..
thank's & best regards..

Philips

unread,
Feb 19, 2011, 8:01:48 AM2/19/11
to Pentaho User Group Indonesia
Pak Mifta,

duplicate detection merupakan salah satu problem yang sulit dan sering
kali sangat tricky solusinya.
Beberapa similarity measures bisa dipakai untuk mendeteksi duplicate
ini, tetapi seberapa besar batas digabung atau tidaknya data
tergantung pada masing-masing domain.

Sebaiknya dipelajari dulu karakteristik algoritma untuk string
similariy.
Levenshtein / Edit distance cocok untuk mendeteksi spelling error.
Jaro Winkler cocok untuk mendeteksi nama (yang umumnya sering
bervariasi karena singkatan dan word order)
dan ada banyak similarity measure yang lain.

Kalo patternnya jelas, mungkin bisa menggunakan regular expression.
Tapi biasanya kalo nama hampir tidak ada patternnya. Kalo telpon,
biasanya masih bisa menggunakan regular expression.

---
Best regards,
Philips Kokoh Prasetyo
Blog: http://philips.wordpress.com


On Feb 18, 7:21 pm, mifta <alkhans...@gmail.com> wrote:
> Salam
>
> Pak Feris dan rekan-rekan di pentaho group
> Sebelumnya salam kenal. Saat ini saya baru belajar menggunakan pentaho
> data integration untuk mengembangkan data warehouse untuk analisis
> data pelanggan PDAM.
> Yang ingin saya tanyakan bagaimana cara menghilangkan duplikasi data
> pada tabel, kemudian memindah datanya ke tabel dan database yang
> berbeda
>
> tabel input : database foxpro
> tabel output : database mysql
>
> permasalahan duplikasi datanya, misal sebagai berikut
> kode jalan : 001 , nama jalan : harjosari
> kode jalan : 003 , nama jalan : harjosari, sukodono
>
> 2 nama jalan diatas sebenarnya ada 1 nama jalan yang sama. Di sini
> saya ingin mengambil satu nama jalan saja
> misal saya hanya mengambil jalan harjosari kemudian mengeksportnya ke
> tabel di database baru..
>
> sebelumnya saya pernah membaca topik diskusi di group ini tentang
> bagaimana menghilangkan duplikasi data:http://groups.google.com/group/pentaho-id/browse_thread/thread/7ad6eb...
>
> tapi saya masih belum bisa memahaminya dengan jelas pak. Kenapa harus
> memakai algoritma damerau levenshtein. Sedangkan saya pernah baca
> artikel di forum.pentaho.com yg dipakai algoritma jaro winklerhttp://forums.pentaho.com/showthread.php?78910-How-to-use-Fuzzy-match...

Feris Thia

unread,
Feb 21, 2011, 3:10:59 AM2/21/11
to penta...@googlegroups.com
Sore Pak Mifta,

Data cleansing seperti kasus redundansi data ini memang banyak
tantangannya Pak. Jarang sekali yang melibatkan satu proses.

Kedua algoritma yang Bapak sebutkan tadi lebih cocok ke arah data
entri yang salah ketik beberapa karakter.

Tetapi untuk kasus "singkatan", itu sudah jauh lebih sulit. Ini
seperti kasus Pak Mifta... Tidak ada yang salah ketik. Tapi satu entri
lebih lengkap dibanding entri lainnya.

Kalau untuk kasus Bapak, saya sarankan seperti ini :
- Pecah row menjadi beberapa berdasarkan delimiter , atau spasi ( tokenize ).
- Lookup ke table yang telah di-tokenize tadi, jika ada token yang
mirip tapi I'd tidak sama maka "suspect".
- Suspect table diperiksa untuk finalisasi.

Untuk subset sisanya lakukan diagonal join dan scan dengan kedua
algoritma tadi untuk membantu mencari salah entri karakter.

Mudah2an cukup bisa "menjebak" banyak data kotor Pak.

Dan saya sangat setuju dengan Pak Philips, database "typo" lebih
berguna dibandingkan algoritma similarity dalam praktek cleansing
data.

Semoga bermanfaat...

Regards,

Feris

> --
> Anda menerima pesan ini karena Anda telah terdaftar di Google
> Groups "Pentaho User Group - Indonesia".
> Untuk mengirim pesan ke grup ini, kirimkan email ke
> penta...@googlegroups.com
> Untuk berhenti mendapatkan email dari grup ini,silahkan kirim email ke
> pentaho-id+...@googlegroups.com
> Untuk opsi lainnya, silahkan kunjungi
> http://groups.google.com/group/pentaho-id?hl=id.
> Untuk artikel teknis Pentaho dari PHI-Integration.com, silahkan kunjungi
> http://pentaho.phi-integration.com.
> Milis terkait : http://groups.google.com/group/indo-bi
>

--
Sent from my mobile device

Thanks & Best Regards,

Feris Thia
Business Intelligence Consultant
PT. Putera Handal Indotama
Phone : +6221-30119353
Fax : +6221-5513483
Mobile : +628176-474-525
http://www.phi-integration.com
http://pentaho.phi-integration.com
http://sqlserver-tips.phi-integration.com

Reply all
Reply to author
Forward
0 new messages