स्ट्रिंग्स की तुलना

Python में डेटा क्लीनिंग

Adel Nehme

VP of AI Curriculum, DataCamp

इस अध्याय में

 

 

 

 

 

 

अध्याय 4 - रिकॉर्ड लिंकेज

Python में डेटा क्लीनिंग

Minimum edit distance

एक स्ट्रिंग से दूसरी में जाने के लिए न्यूनतम कदमों की संख्या

Python में डेटा क्लीनिंग

Minimum edit distance

एक स्ट्रिंग से दूसरी में जाने के लिए न्यूनतम कदमों की संख्या

Python में डेटा क्लीनिंग

Minimum edit distance

Python में डेटा क्लीनिंग

Minimum edit distance

अब तक का minimum edit distance: 2

Python में डेटा क्लीनिंग

Minimum edit distance

Minimum edit distance: 5

Python में डेटा क्लीनिंग

Minimum edit distance

 

Python में डेटा क्लीनिंग

Minimum edit distance एल्गोरिदम

एल्गोरिदम ऑपरेशंस
Damerau-Levenshtein insertion, substitution, deletion, transposition
Levenshtein insertion, substitution, deletion
Hamming substitution only
Jaro distance transposition only
... ...

 

संभावित पैकेज: nltk, thefuzz, textdistance ..

Python में डेटा क्लीनिंग

Minimum edit distance एल्गोरिदम

एल्गोरिदम ऑपरेशंस
Damerau-Levenshtein insertion, substitution, deletion, transposition
Levenshtein insertion, substitution, deletion
Hamming substitution only
Jaro distance transposition only
... ...

 

संभावित पैकेज: thefuzz

Python में डेटा क्लीनिंग

साधारण string तुलना

# Lets us compare between two strings
from thefuzz import fuzz

# Compare reeding vs reading fuzz.WRatio('Reeding', 'Reading')
86
Python में डेटा क्लीनिंग

Partial strings और अलग क्रम

# Partial string comparison
fuzz.WRatio('Houston Rockets', 'Rockets')
90
# Partial string comparison with different order
fuzz.WRatio('Houston Rockets vs Los Angeles Lakers', 'Lakers vs Rockets')
86
Python में डेटा क्लीनिंग

Arrays के साथ तुलना

# Import process
from thefuzz import process

# Define string and array of possible matches
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 में डेटा क्लीनिंग

String similarity से categories समेटना

अध्याय 2

.replace() का उपयोग कर "eur" को "Europe" में समेटें

 

अगर वेरिएशंस बहुत हों तो?

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

 

                                                                                                String similarity!

Python में डेटा क्लीनिंग

String matching से categories समेटना

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 में डेटा क्लीनिंग

सभी states को समेटना

# For each correct category
for state in categories['state']:

# Find potential matches in states with typoes matches = process.extract(state, survey['state'], limit = survey.shape[0])
# For each potential match match for potential_match in matches: # If high similarity score if potential_match[1] >= 80:
# Replace typo with correct category survey.loc[survey['state'] == potential_match[0], 'state'] = state
Python में डेटा क्लीनिंग

रिकॉर्ड लिंकेज

record linkage

Python में डेटा क्लीनिंग

अभ्यास करते हैं!

Python में डेटा क्लीनिंग

Preparing Video For Download...