Se nos proporciona una lista de strings de patrones y una única string de entrada. Necesitamos encontrar todas las coincidencias lo suficientemente buenas posibles de la string de entrada en la lista de strings de patrones.
Ejemplos:
Input : patterns = ['ape', 'apple', 'peach', 'puppy'], input = 'appel' Output : ['apple', 'ape']
Podemos resolver este problema en python rápidamente usando la función integrada difflib.get_close_matches() .
¿Cómo funciona la función difflib.get_close_matches() en Python?
difflib.get_close_matches(palabra, posibilidades, n, corte) acepta cuatro parámetros en los que n, corte son opcionales. palabra es una secuencia para la que se desean coincidencias cercanas, posibilidades es una lista de secuencias con las que comparar palabra. El argumento opcional n (predeterminado 3) es el número máximo de coincidencias cercanas para devolver, n debe ser mayor que 0. El argumento opcional de corte (predeterminado 0.6) es un valor flotante en el rango [0, 1]. Las posibilidades que no puntúan al menos de manera similar a la palabra se ignoran.
Las mejores coincidencias (no más de n) entre las posibilidades se devuelven en una lista, ordenadas por puntuación de similitud, las más similares primero.
# Function to find all close matches of # input string in given list of possible strings from difflib import get_close_matches def closeMatches(patterns, word): print(get_close_matches(word, patterns)) # Driver program if __name__ == "__main__": word = 'appel' patterns = ['ape', 'apple', 'peach', 'puppy'] closeMatches(patterns, word)
Referencias: https://docs.python.org/2/library/difflib.html
Producción:
['apple', 'ape']
Publicación traducida automáticamente
Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA