Contoh implementasi “FuzzyWuzzy” pada pandas python

Lintang Gilang Pratama
Lintang Gilang
Published in
2 min readDec 4, 2020
Photo by billow926 on Unsplash

There are applications in fields such as spell checking or bioinformatics to match DNA sequences, so then there is definitely more uses for fuzzy matching.~~datacamp.com~~

FuzzyWuzzy adalah suatu package di python, yang dapat digunakan untuk mencari kemiripan (matching) dari suatu string terhadapat suatu kumpulan string. Package ini secara teori menggunakan pendekatan “Levenshtein Distance”.

Contoh

Diketahui terdapat suatu data dengan kolom “Brand” dan “Price”

import pandas as pd

cars = {'Brand':
['Honda Civic','Toyota Corolla','Ford Focus','Audi A4'],
'Price': [22000,25000,27000,35000]
}

df = pd.DataFrame(cars, columns = ['Brand', 'Price'])
df

dan terdapat list “Merek” yang akan menjadi acuan kemiripan (matching).

Merek = ['Honda','Toyota','Ford','Audi','Suzuki','Yamaha']

Tugas nya adalah klasifikasi suatu “Merek” pada data kolom “Brand”.

Pembahasan

Jika kita lihat karakteristik pada data kolom “Brand” selalu memiliki “Merek” sehingga problem ini dapat diselesaikan dengan package FuzzyWuzzy.

from fuzzywuzzy import processlist_merek = []
similirity = []
df_Brand = df.Brand.tolist()
for x in df_Brand:
highest = process.extractOne(x,Merek)
list_merek.append(highest[0])
similirity.append(highest[1])
df['Merek'] = list_merek
df['similirity'] = similirity
df

Kesimpulan

Kolom “Merek” adalah hasil pencarian kemiripan dari kolom “Brand” dimana memiliki persentase kemiripan di kolom “similirity”. Dimana rata-rata kemiripan adalah 90.

Fuzzy string matching like a boss. It uses Levenshtein Distance to calculate the differences between sequences in a simple-to-use package.

Terimakasih

Lintang Gilang Pratama

--

--