En un post anterior presentamos los diccionarios en Python. Luego mostramos cómo utilizarlos para contar la cantidad de ocurrencias de cada palabra en un texto. A fin de reforzar el tema, en esta oportunidad veremos dos ejemplos más sobre el conteo y orden con Python. Los mismos consistirán en 1) ordenar la lista de palabras según el número de ocurrencias, y 2) contar la cantidad de palabras por oración.
Conteo y orden con Python
Para empezar, modificaremos el ejemplo del post anterior de la siguiente manera:
import pprint import collections primerCapitulo = ''' COLOCAR EL TEXTO AQUÍ ''' conteo = {} for palabra in primerCapitulo.upper().split(): conteo.setdefault(palabra, 0) conteo[palabra] = conteo[palabra] + 1 conteoEnOrden = collections.Counter(conteo) pprint.pprint(conteoEnOrden.most_common())
Como podemos ver, importamos el módulo collections para luego modificar el diccionario conteo mediante el contenedor Counter. Este último es una especie de diccionario que posee una función llamada most_common(). Esta función devuelve una lista de tuplas ordenadas en la que cada una está formada por un par clave / valor del diccionario.
Los contenedores son en sí un tipo de datos en Python, por lo que merecen un post especial para ser cubiertos en mayor detalle.
En la Fig. 1 podemos ver el resultado:
Conteo de palabras por oración en un texto
Finalmente, procedamos a contar la cantidad de palabras por oración en el texto que guardamos dentro de la variable loremIpsum:
loremIpsum = 'Lorem ipsum dolor sit amet, eos vidisse invenire intellegebat ex, in has dolorem facilisi recusabo. Ad eum melius labores rationibus. Ea corpora maiestatis pri, ius simul exerci eu. Per virtute intellegam ex, sea id salutatus mediocritatem, duo at possit aliquip adipisci. An nec quod falli contentiones, falli partem adipiscing quo an. Unum salutandi cum no, affert delenit qualisque vis cu, cu velit scripta deterruisset pri.' # Crear lista con las oraciones presentes en el texto # Para eso, usamos la función split() indicando el '. ' # como separador. El espacio a continuación del punto # impide que los espacios al comienzo de una oración # se consideren como una palabra. listaOraciones = loremIpsum.split('. ') # Mostrar cada oración y la cantidad de palabras presentes # en la misma. Utilizamos split(' ') para separar por espacios. for oracion in listaOraciones: print(oracion, str(len(oracion.split(' '))))
Los comentarios dentro del código explican cada paso del mismo. En la Fig. 2 podemos ver el resultado de ejecutarlo:
Espero que este post les haya resultado útil. ¡Nos leemos en breve!