Codigo para parsear textos (Zipf’s Law)

Código para Zipf’s Law:

def analisis_palabras(archivotxt):

import re

from collections import Counter

 

# leemos archivo de texto

file = open(archivotxt, ‘r’, encoding=”utf8″)

# convertimos a minusculas

text = file.read().lower()

file.close()

 

# removemos cosas que no sean letras

text = re.sub(r”\r\n”, ” “, text)

text = re.sub(‘[^a-z\ \']+’, “”, text)

listado_de_palabras = list(text.split())

 

counts = Counter(listado_de_palabras)

 

labels, values = zip(*counts.items())

 

# ordenamos en orden descendente

indSort = np.argsort(values)[::-1]

 

# reordenamos

labels = np.array(labels)[indSort]

values = np.array(values)[indSort]

indexes = np.arange(len(labels))

 

N = len(values)

idx = np.linspace(1,N,N)

 

plt.figure(figsize = (10.5, 7.5))

# plt.plot(idx, values)

plt.plot(np.log(idx), np.log(values),’k.’)

# plt.loglog(idx, values,’k.’)

plt.grid(‘on’)

 

return idx, values, text

Print Friendly, PDF & Email