New submission from Daniel Pezoa <danieladpor...@gmail.com>:

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 <rep...@bugs.python.org>
<https://bugs.python.org/issue39249>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to