Saltar al contenido

Encuentra la métrica de similitud entre dos cadenas

Solución:

Hay un incorporado.

from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()

Utilizándolo:

>>> similar("Apple","Appel")
0.8
>>> similar("Apple","Mango")
0.0

Creo que tal vez esté buscando un algoritmo que describa la distancia entre cadenas. Aquí hay algunos a los que puede hacer referencia:

  1. Distancia de Hamming
  2. Distancia de Levenshtein
  3. Distancia Damerau-Levenshtein
  4. Distancia Jaro-Winkler

Solución # 1: Python incorporado

utilizar SequenceMatcher de difflib

pros: biblioteca nativa de Python, no se necesita paquete adicional.
contras: demasiado limitado, existen muchos otros buenos algoritmos para la similitud de cadenas.

ejemplo :

>>> from difflib import SequenceMatcher
>>> s = SequenceMatcher(None, "abcd", "bcde")
>>> s.ratio()
0.75

Solución # 2: biblioteca de medusas

Es una biblioteca muy buena con buena cobertura y pocos números. admite:
– Distancia de Levenshtein
– Distancia Damerau-Levenshtein
– Distancia de Jaro
– Distancia Jaro-Winkler
– Comparación de enfoques de calificación de partidos
– Distancia de Hamming

pros: fácil de usar, gama de algoritmos compatibles, probado.
contras: no biblioteca nativa.

ejemplo:

>>> import jellyfish
>>> jellyfish.levenshtein_distance(u'jellyfish', u'smellyfish')
2
>>> jellyfish.jaro_distance(u'jellyfish', u'smellyfish')
0.89629629629629637
>>> jellyfish.damerau_levenshtein_distance(u'jellyfish', u'jellyfihs')
1
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *