Conteo y orden con Python: diccionarios al rescate

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:

Primer ejemplo de conteo y orden con Python
Figura 1 – Primer ejemplo de conteo y orden con Python

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:

Segundo ejemplo de conteo y orden en Python
Figura 2 – Segundo ejemplo de conteo y orden en Python

Espero que este post les haya resultado útil. ¡Nos leemos en breve!