Ejercicios de entrevistas: una manera rápida de encontrar palabras y contarlas con regex y python.

04/22/2018 | Author: Eduardo Enriquez

En esas entrevistas en plataformas onlines y por tiempo había que encontrar palabras y contarlas. No se podia utilizar ninguna libreria de analisis de lenguaje natural o NLTK. Así que rápidamente pense en regex

import re
 
 
def findwords(string):
    wordlist = re.sub("[^\w]", " ", string.lower()).split()
    result = {}
    for word in wordlist:
        if word.isnumeric():
            continue
        if word not in result:
            result[word] = 1
        else:
            result[word] += 1
 
    return result

La primera linea busca las palabras, words \w y el texto en el que se busca se pasa a minusculas porque así se pedía, pero se puede cambiar. La función sub necesita 3 parametros, el primero es la regex, la segunda que caracter va a separar las ocurrencias encontradas y el tercero el string en el que hay que buscar las palabras. Asi que como pongo espacio, después spliteo por el e itero la lista.

Recomendaciones bienvenidas!