Membandingkan string

Membersihkan Data di Python

Adel Nehme

VP of AI Curriculum, DataCamp

Dalam bab ini

 

 

 

 

 

 

Bab 4 - Record linkage

Membersihkan Data di Python

Jarak edit minimum

Jumlah langkah minimum untuk mengubah satu string ke string lain

Membersihkan Data di Python

Jarak edit minimum

Jumlah langkah minimum untuk mengubah satu string ke string lain

Membersihkan Data di Python

Jarak edit minimum

Membersihkan Data di Python

Jarak edit minimum

Jarak edit minimum sejauh ini: 2

Membersihkan Data di Python

Jarak edit minimum

Jarak edit minimum: 5

Membersihkan Data di Python

Jarak edit minimum

 

Membersihkan Data di Python

Algoritme jarak edit minimum

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 ..

Membersihkan Data di Python

Algoritme jarak edit minimum

Algoritme Operasi
Damerau-Levenshtein sisip, substitusi, hapus, transposisi
Levenshtein sisip, substitusi, hapus
Hamming hanya substitusi
Jarak Jaro hanya transposisi
... ...

 

Paket yang bisa dipakai: thefuzz

Membersihkan Data di Python

Perbandingan string sederhana

# Memungkinkan kita membandingkan dua string
from thefuzz import fuzz

# Bandingkan reeding vs reading fuzz.WRatio('Reeding', 'Reading')
86
Membersihkan Data di Python

String parsial dan urutan berbeda

# 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
Membersihkan Data di Python

Perbandingan dengan array

# 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)]
Membersihkan Data di Python

Menggabungkan kategori dengan kemiripan string

Bab 2

Gunakan .replace() untuk mengubah "eur" menjadi "Europe"

 

Bagaimana jika variasinya terlalu banyak?

"EU", "eur", "Europ", "Europa", "Erope", "Evropa"...

 

                                                                                                Kemiripan string!

Membersihkan Data di Python

Menggabungkan kategori dengan pencocokan 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
Membersihkan Data di Python

Menggabungkan semua state

# 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

Record linkage

record linkage

Membersihkan Data di Python

Ayo berlatih!

Membersihkan Data di Python

Preparing Video For Download...