Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

FuzzyWuzzy Python ไลบรารี่


ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับ 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 สตริงที่แตกต่างกัน:- 0

WRatio ละเว้นกรณีและอักขระพิเศษบางตัวที่เราเห็น การใช้ WRatio แทนที่จะใช้อัตราส่วนแบบธรรมดาจะทำให้คุณมีสตริงที่ตรงกันมากขึ้น

บทสรุป

หากคุณมีข้อสงสัยเกี่ยวกับบทแนะนำ โปรดระบุในส่วนความคิดเห็น