ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับ FuzzyWuzzy ห้องสมุดไพทอน FuzzyBuzzy ห้องสมุดได้รับการพัฒนาเพื่อเปรียบเทียบกับสตริง เรามีโมดูลอื่นๆ เช่น regex , difflib เพื่อเปรียบเทียบสตริง แต่ FuzzyBuzzy มีเอกลักษณ์เฉพาะตัวในแบบของมัน เมธอดจากไลบรารีนี้ส่งคืนคะแนนเต็ม 100 ของจำนวนสตริงที่ตรงกัน แทนที่จะเป็น จริง เท็จ หรือสตริง .
ในการทำงานกับ FuzzyWuzzy ห้องสมุดเราต้องติดตั้ง fuzzywuzzy และ python- Levenshtein . เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง
pip ติดตั้ง fuzzywuzzy
หากคุณเรียกใช้คำสั่งข้างต้น คุณจะมีข้อความแสดงความสำเร็จดังต่อไปนี้
กำลังรวบรวม fuzzywuzzy กำลังดาวน์โหลด https://files.pythonhosted.org/packages/d8/f1/5a267addb30ab7eaa1beab2b9323073815da4551076554ecc890a3595ec9/fuzzywuzzy-0.17.0-py2.py3-nzzyone-any.whlInstalling แพ็คเกจที่รวบรวมแล้ว:ติดตั้งแพ็คเกจที่รวบรวมไว้ทั้งหมดแล้ว:fuzzywuzzy-0.17.0 ก่อน>เรียกใช้คำสั่งต่อไปนี้ใน Linux เพื่อติดตั้ง python-Levenshtein .
pip ติดตั้ง python-Levenshteinเรียกใช้คำสั่งต่อไปนี้ใน windows
easy_install python-Levenshteinคลุมเครือ
ตอนนี้ เราจะเรียนรู้เกี่ยวกับ fuzz โมดูล. เลือนลาง ใช้เพื่อเปรียบเทียบสองสตริงพร้อมกัน มันมีวิธีการต่าง ๆ ที่ให้คะแนนเต็ม 100 เรามาดูวิธีการบางอย่างของโมดูล fuzz กัน
fuzz.ratio()
มาดูวิธีแรก Fuzz โมดูล อัตราส่วน . ใช้เพื่อเปรียบเทียบสองสตริงที่ให้คะแนนเต็ม 100 ดูตัวอย่างด้านล่างเพื่อให้ได้แนวคิดที่ชัดเจน
ตัวอย่าง
## การนำเข้าโมดูลจากไลบรารี fuzzywuzzy จาก fuzzywuzzy การนำเข้า fuzz## 100 สำหรับ stringsprint เดียวกัน (f"Equal Strings:- {fuzz.ratio('tutorialspoint', 'tutorialspoint')}") ## คะแนนสุ่มเล็กน้อย การเปลี่ยนแปลงใน stringsprint(f"Slight Changed Strings:- {fuzz.ratio('tutorialspoint', 'TutorialsPoint')}")print(f"Slight Changed Strings:- {fuzz.ratio('tutorialspoint', 'Tutorials Point' )}")## กรอก stringsprint(f"Different Strings:- {fuzz.ratio('abcd', 'efgh')}")ผลลัพธ์
คะแนนสูงสุด:- 100 สตริงที่เปลี่ยนแปลงเล็กน้อย:- 86 สตริงที่เปลี่ยนแปลงเล็กน้อย:- 86 สตริงที่ต่างกัน:- 0ทดลองกับ partial_ratio ให้มากที่สุดเท่าที่จะมากได้เพื่อความเข้าใจที่ดีขึ้น
fuzz.WRatio()
fuzz.WRatio() จัดการตัวพิมพ์ใหญ่และตัวพิมพ์เล็กและพารามิเตอร์อื่น ๆ มาดูตัวอย่างกัน
ตัวอย่าง
## การนำเข้าโมดูลจากไลบรารี fuzzywuzzy จาก fuzzywuzzy import fuzz## 100 คะแนน แม้ว่าสตริงหนึ่งจะมีอักขระมากกว่าชุดอื่น (f"คะแนนสูงสุด:- {fuzz.WRatio('tutorialspoint', 'tutorialspoint!!! ')}")## คะแนนสุ่มสำหรับการเปลี่ยนแปลงเล็กน้อยในสตริงsprint(f"Slight Changed Strings:- {fuzz.WRatio('tutorialspoint', 'TutorialsPoint')}")print(f"Slight Changed Strings:- {fuzz .WRatio('tutorialspoint', 'TutorialsPoint')}")## กรอก stringsprint ที่แตกต่างกัน (f"Different Strings:- {fuzz.ratio('abcd', 'efgh')}")ผลลัพธ์
คะแนนสูงสุด:- 100 สตริงที่เปลี่ยนแปลงเล็กน้อย:- 100 สตริงที่เปลี่ยนแปลงเล็กน้อย:- 100 สตริงที่แตกต่างกัน:- 0WRatio ละเว้นกรณีและอักขระพิเศษบางตัวที่เราเห็น การใช้ WRatio แทนที่จะใช้อัตราส่วนแบบธรรมดาจะทำให้คุณมีสตริงที่ตรงกันมากขึ้น
บทสรุป
หากคุณมีข้อสงสัยเกี่ยวกับบทแนะนำ โปรดระบุในส่วนความคิดเห็น