Dizgeleri karşılaştırma

Python ile Veri Temizleme

Adel Nehme

VP of AI Curriculum, DataCamp

Bu bölümde

 

 

 

 

 

 

Bölüm 4 - Kayıt bağlama

Python ile Veri Temizleme

Asgari düzenleme uzaklığı

Bir dizgeden diğerine geçmek için gereken en az adım sayısı

Python ile Veri Temizleme

Asgari düzenleme uzaklığı

Bir dizgeden diğerine geçmek için gereken en az adım sayısı

Python ile Veri Temizleme

Asgari düzenleme uzaklığı

Python ile Veri Temizleme

Asgari düzenleme uzaklığı

Şu ana kadarki asgari düzenleme uzaklığı: 2

Python ile Veri Temizleme

Asgari düzenleme uzaklığı

Asgari düzenleme uzaklığı: 5

Python ile Veri Temizleme

Asgari düzenleme uzaklığı

 

Python ile Veri Temizleme

Asgari düzenleme uzaklığı algoritmaları

Algoritma İşlemler
Damerau-Levenshtein ekleme, yerine koyma, silme, yer değiştirme
Levenshtein ekleme, yerine koyma, silme
Hamming yalnızca yerine koyma
Jaro mesafesi yalnızca yer değiştirme
... ...

 

Olası paketler: nltk, thefuzz, textdistance ..

Python ile Veri Temizleme

Asgari düzenleme uzaklığı algoritmaları

Algoritma İşlemler
Damerau-Levenshtein ekleme, yerine koyma, silme, yer değiştirme
Levenshtein ekleme, yerine koyma, silme
Hamming yalnızca yerine koyma
Jaro mesafesi yalnızca yer değiştirme
... ...

 

Olası paketler: thefuzz

Python ile Veri Temizleme

Basit dizge karşılaştırması

# İki dizgeyi karşılaştırmamızı sağlar
from thefuzz import fuzz

# reeding ve reading'i karşılaştırın fuzz.WRatio('Reeding', 'Reading')
86
Python ile Veri Temizleme

Kısmi dizgeler ve farklı sıralamalar

# Kısmi dizge karşılaştırması
fuzz.WRatio('Houston Rockets', 'Rockets')
90
# Farklı sıralamayla kısmi karşılaştırma
fuzz.WRatio('Houston Rockets vs Los Angeles Lakers', 'Lakers vs Rockets')
86
Python ile Veri Temizleme

Dizilerle karşılaştırma

# process'i içe aktarın
from thefuzz import process

# Dize ve olası eşleşmeler dizisini tanımlayın
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)]
Python ile Veri Temizleme

Dizge benzerliği ile kategorileri birleştirme

Bölüm 2

"eur" değerini "Europe" ile birleştirmek için .replace() kullanın

 

Çok fazla varyasyon varsa ne olur?

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

 

                                                                                                Dizge benzerliği!

Python ile Veri Temizleme

Dizge eşleştirme ile kategorileri birleştirme

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
Python ile Veri Temizleme

Tüm eyaletleri birleştirme

# Her doğru kategori için
for state in categories['state']:

# Yazım hatası olan eyaletlerde olası eşleşmeleri bulun matches = process.extract(state, survey['state'], limit = survey.shape[0])
# Her olası eşleşme için for potential_match in matches: # Benzerlik skoru yüksekse if potential_match[1] >= 80:
# Yazım hatasını doğru kategoriyle değiştirin survey.loc[survey['state'] == potential_match[0], 'state'] = state
Python ile Veri Temizleme

Kayıt bağlama

kayıt bağlama

Python ile Veri Temizleme

Haydi pratik yapalım!

Python ile Veri Temizleme

Preparing Video For Download...