En este artículo muestro cómo obtener las palabras más utilizadas de un
texto de forma sencilla. En este caso, yo usaré como demostración el
texto del libro octavo de la novela Τῶν περὶ Χαιρέαν καὶ Καλλιρρόην,
extraído de
https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A2008.01.0668%3Abook%3D8.
Le he quitado las anotaciones que tenía entre corchetes con sed
...
sed -i 's/\[[^]]*\]//g' libro_octavo.txt
El programa que nos muestra todas las palabras
es el siguiente, lo he llamado lista-de-palabras.py
(explico cómo
funciona más abajo):
archivo_texto = open('libro_octavo.txt', 'r')
texto = archivo_texto.read()
archivo_texto.close()
palabras = texto.split()
for palabra in palabras:
print(palabra.strip('‘’:;,.').lower())
En el archivo con el texto, que he llamado libro_octavo.txt
(descargar),
asumo que una palabra está separada por un espacio en blanco, así que
uso la función split
para obtener la lista de palabras. Sin embargo, a
veces hay comas, puntos, comillas, dos puntos y puntos y comas antes o
después de las palabras, y a veces empiezan por mayúscula. Para estos
casos basta usar la función strip()
, con los caracteres que queremos
desechar entre comillas, y lower()
para poner la palabra en minúscula.
Ahora quiero se muestren por pantalla las palabras que más veces
aparecen en el texto, con el número de veces que aparecen a su
izquierda; pero no voy a programarlo yo, sino que voy a utilizar
herramientas que permiten hacer eso en GNU/Linux: uniq
y sort
.