Python | Métricas de similitud de strings

Esta utilidad en particular tiene mucha demanda hoy en día debido a los requisitos de cálculo de similitud en muchos campos de la informática, como el aprendizaje automático, la IA y los dominios de desarrollo web, por lo que las técnicas para calcular la similitud entre cualquier contenedor pueden ser muy útiles. Vamos a discutir ciertas formas en que esto se puede hacer.

Método n.° 1: Uso del enfoque ingenuo( sum() + zip())
Podemos realizar esta tarea en particular utilizando el enfoque ingenuo, utilizando las funciones de suma y compresión podemos formular una función de utilidad que puede calcular la similitud de ambas strings.

# Python3 code to demonstrate 
# similarity between strings
# using naive method (sum() + zip())
  
# Utility function to compute similarity
def similar(str1, str2):
    str1 = str1 + ' ' * (len(str2) - len(str1))
    str2 = str2 + ' ' * (len(str1) - len(str2))
    return sum(1 if i == j else 0 
               for i, j in zip(str1, str2)) / float(len(str1))
  
# Initializing strings
test_string1 = 'Geeksforgeeks'
test_string2 = 'Geeks4geeks'
  
# using naive method (sum() + zip())
# similarity between strings
res = similar(test_string1, test_string2)
  
# printing the result
print ("The similarity between 2 strings is : " + str(res))
Producción :

The similarity between 2 strings is : 0.38461538461538464

Método n.º 2: usarSequenceMatcher.ratio()
Hay un método incorporado que ayuda a realizar esta tarea en particular y se recomienda para lograr esta tarea en particular, ya que no requiere un enfoque personalizado, sino que utiliza construcciones integradas para realizar la tarea de manera más eficiente.

# Python3 code to demonstrate 
# similarity between strings
# using SequenceMatcher.ratio()
from difflib import SequenceMatcher
  
# Utility function to compute similarity
def similar(str1, str2):
    return SequenceMatcher(None, str1, str2).ratio()
  
# Initializing strings
test_string1 = 'Geeksforgeeks'
test_string2 = 'Geeks'
  
# using SequenceMatcher.ratio()
# similarity between strings
res = similar(test_string1, test_string2)
  
# printing the result
print ("The similarity between 2 strings is : " + str(res))
Producción :

The similarity between 2 strings is :  0.5555555555555556

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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