डेल्टास की गणना करने के लिए, हमें पायथन के डिफ़्लिब मॉड्यूल का उपयोग करना चाहिए। अनुक्रमों की तुलना करने के लिए इस मॉड्यूल में विभिन्न वर्ग और कार्य हैं। यह फाइलों, एचटीएमएल फाइलों आदि की तुलना कर सकता है।
इस मॉड्यूल का उपयोग करने के लिए, हमें डिफलिब मॉड्यूल को पायथन कोड में आयात करना होगा।
import difflib
डिफ़्लिब मॉड्यूल के कुछ वर्ग और कार्य।
कक्षा (difflib.SequenceMatcher) -
इस वर्ग का उपयोग किसी भी प्रकार के दो अनुक्रमों की तुलना करने के लिए किया जाता है। इसके अलग-अलग तरीके हैं। इनमें से कुछ तरीके इस प्रकार हैं -
-
set_seqs(a, b) - अनुक्रम फ़ाइलें सेट करें जिनकी तुलना की जाएगी। यह दूसरी फ़ाइल के बारे में विस्तृत जानकारी की गणना और संचय करता है। इसलिए कई फाइलों के मिलान के लिए, हमें पहले क्रम को बार-बार सेट करना चाहिए।
-
set_seq1(a) - पहला अनुक्रम सेट करें जिसकी तुलना की जाएगी।
-
set_seq2(2) - दूसरा क्रम सेट करें जिसकी तुलना की जाएगी।
-
find_longest_match(alo, ahi, blo, bhi) - पहले अनुक्रम के लिए एलो से एही तक और दूसरे क्रम के लिए ब्लो से भी की सीमा में कौन सा मिलान ब्लॉक सबसे लंबा है।
-
get_matching_blocks() - घटते क्रम में मेल खाने वाले अनुक्रमों की सूची खोजें।
-
अनुपात () - फ्लोट वैल्यू के रूप में अनुक्रम समानता के राशन का पता लगाएं।
उदाहरण कोड
import difflib myStr1 = 'Python Programming' myStr2 = 'Python Standard Library' seq_match = difflib.SequenceMatcher(lambda x: x==' ', myStr1, myStr2) print("The ratio of the sequence matching is: " + str(round(seq_match.ratio(), 3))) for match_block in seq_match.get_matching_blocks(): print(match_block)
आउटपुट
The ratio of the sequence matching is: 0.488 Match(a=0, b=0, size=7) Match(a=8, b=13, size=1) Match(a=11, b=19, size=2) Match(a=18, b=23, size=0)