Bu maqolamda matnni boshqa matn bilan solishtiradigan python kutubxonasi haqida gaplashamiz, bu fuzzywuzzy kutubxonasi

fuzzywuzzy
fuzzywuzzy

Birinchi boʻlib bu kutubxonani oʻrnatib olishimiz kerak. 

pip install fuzzywuzzy

Birinchi boʻlib kutubxonani chaqirib olishimiz kerak.

>>> from fuzzywuzzy import fuzz, process

Bu kutubxonaning koʻp ishlatiladigan funksiyalarni sizlarga tanishtirib oʻtaman.

ratio()

>>> fuzz.ratio("this is a test", "this is a test!")
    97

Bu ikki matnni bir biriga qanchalik darajada o'xshashligini aniqlab beradi. Bu ikki matnning faqatgina bir belgi bilan farq qiladi. Shuning uchun 97 soni chiqdi, bu 97% degani. Ikki matnning o'xshashligi 97% degani.

partial_ratio()

>>> fuzz.partial_ratio("this is a test", "this is a test!")
   100

Bunda 1-matn, 2-matn ichida mavjudligini tekshiradi. Harflarning joylashishi hisobga olinadi. Ortiqcha belgilar hisobga olinmaydi.

token_sort_ratio()

>>> fuzz.ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear")
    91
>>> fuzz.token_sort_ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear")
    100

Bu 1-matndagi so'zlar, 2-matndagi so'zlarga o'xshashligi tekshiraladi. Soʻzlarning joylashishi farqi yoʻq.

token_set_ratio()

>>> fuzz.token_sort_ratio("fuzzy was a bear", "fuzzy fuzzy was a bear")
    84
>>> fuzz.token_set_ratio("fuzzy was a bear", "fuzzy fuzzy was a bear")
    100

Bu ham soʻzlarni tekshiradi va soʻzlarning joylashishi va ortiqcha soʻzlar ahamiyatga ega emas.

extract()

>>> choices = ["Atlanta Falcons", "New York Jets", "New York Giants", "Dallas Cowboys"]
>>> process.extract("new york jets", choices, limit=2)
    [('New York Jets', 100), ('New York Giants', 78)]

Bu birinchi kiritilgan elementga nisbatan listlarni tekshiradi va limit oʻzgaruvchisi orqali nechta matnni chiqishini. Limitga agar 2 berilsa eng koʻp oʻxshashlikka ega 2 ta matnlar chiqadi.

extractOne()

>>> choices = ["Atlanta Falcons", "New York Jets", "New York Giants", "Dallas Cowboys"]
>>> process.extractOne("cowboys", choices)
    ("Dallas Cowboys", 90)

Bunda eng koʻp oʻxshagan matn va oldida necha foiz oʻxshashligi borligi chiqadi.

Xulosa: Bu kutubxona orqali siz bir matnni boshqa matn(lar) ichidan izlay olasiz va necha foiz oʻxshashlikka ega ekanligini ham bilishingiz mumkin. Qanchalik oʻxshashligini harflarning klaveaturada joylashinishi, ogʻzaki nutqda billa kelishi yoki oʻrnini bosishi hisobga olinadi. Bunday kutubxonalardan asosan qidiruv tizimlarida foydalaniladi.