New submission from Daniel Pezoa <[email protected]>:
I am using the SequenceMatcher object of the difflib library and I have noticed
that a drastic failure occurs when the text strings exceed 200 characters
Source code:
=====================================================================
from difflib import SequenceMatcher
def main():
# Throw a value of 7% when they are almost equal for having more than 200
characters
text1 = "aceite y pez hirviendo que vena de la plataforma y de la cual
salan tambin muchsimas flechas rodeadas de estopas alquitranadas y encendidas
que no podan desprenderse ni arrancarse sin quemarse las manos"
text2 = "aceite y pedir viendo que vena de la plataforma y de la cual salan
tambin muchsimas flechas rodeadas de estopas alquitranadas y encendidas que no
podan desprenderse ni arrancarse sin quemarse las manos"
m = SequenceMatcher(None, text1, text2)
x = m.ratio()
porcentaje = (int)(x * 100)
print("{}\n\n{}\n\n{}\n\nBad: {}%\n\n".format(text1, text2, x, porcentaje))
# Throw the expected value of 99% for having less than 200 characters
text1 = "aceite y pez hirviendo que vena de la plataforma y de la cual
salan tambin muchsimas flechas rodeadas de estopas alquitranadas y encendidas
que no podan desprenderse ni arrancarse sin quemarse las"
text2 = "aceite y pedir viendo que vena de la plataforma y de la cual salan
tambin muchsimas flechas rodeadas de estopas alquitranadas y encendidas que no
podan desprenderse ni arrancarse sin quemarse las"
text1 = "aceite y pez hirviendo que vena de la plataforma y de la cual
salan tambin muchsimas flechas rodeadas de estopas alquitranadas"
text2 = "aceite y pedir viendo que vena de la plataforma y de la cual salan
tambin muchsimas flechas rodeadas de estopas alquitranadas"
m = SequenceMatcher(None, text1, text2)
x = m.ratio()
porcentaje = (int)(x * 100)
print("{}\n\n{}\n\n{}\n\nGood: {}%".format(text1, text2, x, porcentaje))
if __name__== "__main__":
main()
Output:
======================================================================
aceite y pez hirviendo que vena de la plataforma y de la cual salan tambin
muchsimas flechas rodeadas de estopas alquitranadas y encendidas que no podan
desprenderse ni arrancarse sin quemarse las manos
aceite y pedir viendo que vena de la plataforma y de la cual salan tambin
muchsimas flechas rodeadas de estopas alquitranadas y encendidas que no podan
desprenderse ni arrancarse sin quemarse las manos
0.0794044665012407
Bad: 7%
aceite y pez hirviendo que vena de la plataforma y de la cual salan tambin
muchsimas flechas rodeadas de estopas alquitranadas
aceite y pedir viendo que vena de la plataforma y de la cual salan tambin
muchsimas flechas rodeadas de estopas alquitranadas
0.9800796812749004
Good: 98%
----------
components: Library (Lib)
messages: 359534
nosy: Daniel Pezoa
priority: normal
severity: normal
status: open
title: difflib SequenceMatcher 200 char length limitation for ratio calculation
type: behavior
versions: Python 3.6
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue39249>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com