No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Distribuci贸nes de frecuencia de palabras

8/24
Recursos

Aportes 7

Preguntas 2

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

En realidad, analizando este tipo de datos se encuentran aspectos relacionados con los sistemas complejos. Un ejemplo es que tanto en el libro de Moby Dick como en cualquier obra ( un peri贸dico, la biblia, etc.) la distribuci贸n de palabras sigue una ley de potencias (o power law). Una explicaci贸n a este fen贸meno se da con la criticalidad auto-organizada. Para verificar si se cumple esta ley de potencias se debe verifica una tendencia linear graficando en escala logar铆tmica ambos ejes (un gr谩fico log-log). En el caso del libro de Moby Dick tenemos:

Esto se conoce como la ley de Zipf. En el libro 鈥淗ow nature works鈥 de Per Bak muestra este ejemplo:

Una forma de tener el gr谩fico log-log de la distribuci贸n de palabras en el libro 鈥淢oby Dick鈥 es (cuando ya tenemos el fdist) usando:

a=list(fdist.values())
a=np.array(a)
a=np.sort(a)
a=a[::-1]
plt.yscale('log')
plt.xscale('log')
plt.plot(a)

Les dejo una versi贸n alternativa para que no creen el objeto 鈥渇dist鈥, ya que es un atributo del texto en si

text1.vocab().most_common(20)
text1.vocab().plot(20)

y se obtiene el mismo resultado (ya que text1.vocab() es un objeto fdist)

Estaba haciendo usando la clase Counter de la libreria collections (Integrada en python) es mucho mas rapida (3-5 veces mas rapida) que la funcion de nltk, la diferencia es que no va ha tener la funciones integradas de FreqDist como la de plot.
Pero eso ya seria un factor a conciderar para volumenes mucho mayores si vale la pena ese rendimiento extra requerido

Como nota, si previamente ordenamos las listas de tokens se obtiene un mejor rendimiento, en caso de usar Counter es mucho mayor


_

Es interesante ver la diferencia en velocidad entre los m茅todos. Adjunto la gr谩fica correspondiente al texto 鈥淧ersonals Corpus鈥

Se observa la tendencia del autor a usar ciertas palabras m谩s que otras.

Minuto 5:08 cuando dice que es un diagrama de barras o histograma, es claramente incorrecto, es un lineplot.

text1.count('monster') # cuenta las vecesque aparece la palabra en el texto
fdist = FreqDist(text1) # agrega a un diccionario las veces que aparece cada palabra del texto
fdist.mot_common(20) # muestra las palabras que m谩s se repiten
fdist.plot(20) # muestra un gr谩fico 谩ra las palabras que m谩s se repiten
fdist['moster'] # consultar diccionario 

Dir铆a que es muy pesado para la computadora correr ese ciclo for ya que estar铆amos hablando de un Big On**2, osea tiene crecimiento polinominial, estos son algoritmos que deben usarse cuando el input o la entrada de datos es peque帽a