Membersihkan Data di Python
Adel Nehme
VP of AI Curriculum, DataCamp

Jumlah langkah minimum untuk mengubah satu string ke string lain

Jumlah langkah minimum untuk mengubah satu string ke string lain


Jarak edit minimum sejauh ini: 2

Jarak edit minimum: 5

| Algoritme | Operasi |
|---|---|
| Damerau-Levenshtein | sisip, substitusi, hapus, transposisi |
| Levenshtein | sisip, substitusi, hapus |
| Hamming | hanya substitusi |
| Jarak Jaro | hanya transposisi |
| ... | ... |
Paket yang bisa dipakai: nltk, thefuzz, textdistance ..
| Algoritme | Operasi |
|---|---|
| Damerau-Levenshtein | sisip, substitusi, hapus, transposisi |
| Levenshtein | sisip, substitusi, hapus |
| Hamming | hanya substitusi |
| Jarak Jaro | hanya transposisi |
| ... | ... |
Paket yang bisa dipakai: thefuzz
# Memungkinkan kita membandingkan dua string from thefuzz import fuzz# Bandingkan reeding vs reading fuzz.WRatio('Reeding', 'Reading')
86
# Perbandingan string parsial
fuzz.WRatio('Houston Rockets', 'Rockets')
90
# Perbandingan sebagian dengan urutan berbeda
fuzz.WRatio('Houston Rockets vs Los Angeles Lakers', 'Lakers vs Rockets')
86
# Impor process
from thefuzz import process
# Definisikan string dan daftar kandidat kecocokan
string = "Houston Rockets vs Los Angeles Lakers"
choices = pd.Series(['Rockets vs Lakers', 'Lakers vs Rockets',
'Houson vs Los Angeles', 'Heat vs Bulls'])
process.extract(string, choices, limit = 2)
[('Rockets vs Lakers', 86, 0), ('Lakers vs Rockets', 86, 1)]
Bab 2
Gunakan .replace() untuk mengubah "eur" menjadi "Europe"
Bagaimana jika variasinya terlalu banyak?
"EU", "eur", "Europ", "Europa", "Erope", "Evropa"...
Kemiripan string!
print(survey['state'].unique())
id state
0 California
1 Cali
2 Calefornia
3 Calefornie
4 Californie
5 Calfornia
6 Calefernia
7 New York
8 New York City
...
categories
state
0 California
1 New York
# Untuk setiap kategori yang benar for state in categories['state']:# Cari kandidat kecocokan pada state yang salah eja matches = process.extract(state, survey['state'], limit = survey.shape[0])# Untuk tiap kandidat kecocokan for potential_match in matches: # Jika skor kemiripan tinggi if potential_match[1] >= 80:# Ganti salah eja dengan kategori benar survey.loc[survey['state'] == potential_match[0], 'state'] = state

Membersihkan Data di Python