หมายเหตุพบdifflib.SequenceMatcher
เพียงลำดับการจับคู่ที่ต่อเนื่องกันยาวนานที่สุดซึ่งมักจะไม่ใช่สิ่งที่ต้องการตัวอย่างเช่น:
>>> a1 = "Apple"
>>> a2 = "Appel"
>>> a1 *= 50
>>> a2 *= 50
>>> SequenceMatcher(None, a1, a2).ratio()
0.012 # very low
>>> SequenceMatcher(None, a1, a2).get_matching_blocks()
[Match(a=0, b=0, size=3), Match(a=250, b=250, size=0)] # only the first block is recorded
การค้นหาความคล้ายคลึงกันระหว่างสองสตริงนั้นสัมพันธ์กับแนวคิดของการจัดตำแหน่งลำดับคู่ในชีวสารสนเทศศาสตร์ มีห้องสมุดที่ทุ่มเทมากสำหรับการรวมนี้biopython ตัวอย่างนี้ใช้อัลกอริทึมของNeedleman Wunsch :
>>> from Bio.Align import PairwiseAligner
>>> aligner = PairwiseAligner()
>>> aligner.score(a1, a2)
200.0
>>> aligner.algorithm
'Needleman-Wunsch'
การใช้ biopython หรือชุดชีวสารสนเทศศาสตร์อื่นมีความยืดหยุ่นมากกว่าส่วนใดส่วนหนึ่งของห้องสมุดมาตรฐานของไพ ธ อนเนื่องจากมีโครงร่างการให้คะแนนและอัลกอริธึมต่าง ๆ มากมาย นอกจากนี้คุณยังสามารถรับลำดับการจับคู่เพื่อให้เห็นภาพว่าเกิดอะไรขึ้น:
>>> alignment = next(aligner.align(a1, a2))
>>> alignment.score
200.0
>>> print(alignment)
Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-Apple-
|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-|||-|-
App-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-elApp-el