डेल्टा कंप्यूट करने के लिए, हमें पायथन के difflib मॉड्यूल का उपयोग करना चाहिए। इस मॉड्यूल में सीक्वेंसेज की तुलना करने के लिए विभिन्न क्लासेस और फंक्शन्स हैं। यह फाइल्स, HTML फाइल्स आदि की तुलना कर सकता है।
इस मॉड्यूल का उपयोग करने के लिए, हमें पायथन कोड में difflib मॉड्यूल आयात करने की आवश्यकता है।
import difflib
difflib मॉड्यूल की कुछ क्लासेस और फंक्शन्स।
क्लास (difflib.SequenceMatcher)
यह क्लास किसी भी प्रकार के दो सीक्वेंस की तुलना करने के लिए उपयोग की जाती है। इसके अलग-अलग मेथड्स हैं। इनमें से कुछ मेथड्स इस प्रकार हैं:
set_seqs(a, b) - तुलना की जाने वाली सीक्वेंस फाइल्स सेट करें। यह दूसरी फाइल के बारे में विस्तृत जानकारी कंप्यूट और कैश करता है। इसलिए कई फाइल्स मिलान के लिए, हमें पहली सीक्वेंस को बार-बार सेट करना चाहिए।
set_seq1(a) - तुलना की जाने वाली पहली सीक्वेंस सेट करें।
set_seq2(2) - तुलना की जाने वाली दूसरी सीक्वेंस सेट करें।
find_longest_match(alo, ahi, blo, bhi) - पहली सीक्वेंस के लिए alo से ahi और दूसरी सीक्वेंस के लिए blo से bhi की रेंज में सबसे लंबा मिलान ब्लॉक खोजें।
get_matching_blocks() - अवरोही क्रम में मिलान सीक्वेंसेज की सूची खोजें।
ratio() - फ्लोट वैल्यू के रूप में सीक्वेंसेज की समानता का अनुपात खोजें।
उदाहरण कोड
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)