इस ट्यूटोरियल में, हम FuzzyWuzzy Python लाइब्रेरी के बारे में सीखेंगे। FuzzyBuzzy लाइब्रेरी दो स्ट्रिंग की तुलना करने के लिए विकसित की गई है। हमारे पास स्ट्रिंग की तुलना करने के लिए regex, difflib जैसे अन्य मॉड्यूल हैं। लेकिन, FuzzyBuzzy अपने तरीके से अद्वितीय है। इस लाइब्रेरी के मेथड true, false या string के बजाय 100 में से स्कोर लौटाते हैं कि स्ट्रिंग कितनी मेल खाती हैं।
FuzzyWuzzy लाइब्रेरी के साथ काम करने के लिए, हमें fuzzywuzzy और python-Levenshtein इंस्टॉल करना होगा। उन्हें इंस्टॉल करने के लिए निम्न कमांड चलाएं।
pip install fuzzywuzzy
यदि आप उपरोक्त कमांड चलाते हैं, तो आपको निम्न सफल संदेश मिलेगा।
Collecting fuzzywuzzy Downloading https://files.pythonhosted.org/packages/d8/f1/5a267addb30ab7eaa1beab2b9323073815da4551076554ecc890a3595ec9/fuzzywuzzy-0.17.0-py2.py3-none-any.whl Installing collected packages: fuzzywuzzy Successfully installed fuzzywuzzy-0.17.0
python-Levenshtein इंस्टॉल करने के लिए Linux में निम्न कमांड चलाएं।
pip install python-Levenshtein
Windows में निम्न कमांड चलाएं।
easy_install python-Levenshtein
fuzz
अब, हम fuzz मॉड्यूल के बारे में सीखेंगे। fuzz का उपयोग एक समय में दो स्ट्रिंग की तुलना करने के लिए किया जाता है। इसके अलग-अलग मेथड हैं जो 100 में से स्कोर लौटाते हैं। आइए fuzz मॉड्यूल के कुछ मेथड देखें।
fuzz.ratio()
आइए fuzz मॉड्यूल के पहले मेथड ratio को देखें। इसका उपयोग दो स्ट्रिंग की तुलना करने के लिए किया जाता है जो 100 में से स्कोर लौटाता है। स्पष्ट विचार प्राप्त करने के लिए नीचे दिए गए उदाहरण देखें।
उदाहरण
## fuzzywuzzy लाइब्रेरी से मॉड्यूल आयात करें
from fuzzywuzzy import fuzz
## समान स्ट्रिंग के लिए 100
print(f"Equal Strings:- {fuzz.ratio('tutorialspoint', 'tutorialspoint')}")
## स्ट्रिंग में मामूली बदलाव के लिए रैंडम स्कोर
print(f"Slight Changed Strings:- {fuzz.ratio('tutorialspoint', 'TutorialsPoint')}")
print(f"Slight Changed Strings:- {fuzz.ratio('tutorialspoint', 'Tutorials Point')}")
## पूरी तरह से अलग स्ट्रिंग
print(f"Different Strings:- {fuzz.ratio('abcd', 'efgh')}")आउटपुट
Max Score:- 100 Slight Changed Strings:- 86 Slight Changed Strings:- 86 Different Strings:- 0
partial_ratio के साथ जितना संभव हो उतना प्रयोग करें बेहतर समझ के लिए।
fuzz.WRatio()
fuzz.WRatio() अपर और लोअर केस और कुछ अन्य पैरामीटर को संभालता है। आइए कुछ उदाहरण देखें।
उदाहरण
## fuzzywuzzy लाइब्रेरी से मॉड्यूल आयात करें
from fuzzywuzzy import fuzz
## 100 स्कोर भले ही एक स्ट्रिंग में दूसरे से अधिक वर्ण हों
print(f"Max Score:- {fuzz.WRatio('tutorialspoint', 'tutorialspoint!!!')}")
## स्ट्रिंग में मामूली बदलाव के लिए रैंडम स्कोर
print(f"Slight Changed Strings:- {fuzz.WRatio('tutorialspoint', 'TutorialsPoint')}")
print(f"Slight Changed Strings:- {fuzz.WRatio('tutorialspoint', 'TutorialsPoint')}")
## पूरी तरह से अलग स्ट्रिंग
print(f"Different Strings:- {fuzz.ratio('abcd', 'efgh')}")आउटपुट
Max Score:- 100 Slight Changed Strings:- 100 Slight Changed Strings:- 100 Different Strings:- 0
WRatio केस और कुछ अतिरिक्त वर्णों को नज़रअंदाज़ करता है जैसा कि हम देखते हैं। साधारण ratio के बजाय WRatio का उपयोग करने से आपको अधिक निकट मिलान वाली स्ट्रिंग मिलती हैं।
निष्कर्ष
यदि ट्यूटोरियल के संबंध में आपके कोई संदेह हैं, तो उन्हें कमेंट सेक्शन में उल्लेख करें।