Este curso esta increible! 😮
Introducción al Procesamiento de Lenguaje Natural
Introducción al Procesamiento de Lenguaje Natural
Evolución del NLP
Conceptos básicos de NLP
Fundamentos con NLTK
Configurar ambiente de trabajo
Palabras, textos y vocabularios
Tokenizacion con Expresiones Regulares
Estadísticas básicas del lenguaje
Distribuciónes de frecuencia de palabras
Refinamiento y visualización de cuerpos de texto
N-gramas y Colocaciones del lenguaje
¿Cómo extraer n-gramas de un texto en Python?
Colocaciones en Python
Colocaciones en gráficos de dispersión
Filtros y colocaciones en NLTK
Introducción a los recursos léxicos
Recursos léxicos en NLTK
NLTK para traducción de palabras
Introducción a WordNet
Explorando WordNet
Similitud Semantica con WordNet
Procesamiento de texto plano desde Web
Usando código estructurado: conexión de Drive a Google Colab
Usando código estructurado: Funciones externas
Perspectivas de lo que viene
Continúa con el Curso de Algoritmos de Clasificación de Texto
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 18
Preguntas 2
Este curso esta increible! 😮
aqui no ha llegado nadie o que??? no veo ninguna pregunta…jajajja… A mi no me sale el grafico, y no me da error… parece como que deberia salir pero esta en blanco…
Por si alguien lo necesita:
fig = px.scatter(x = df['PMI'].values, y = df['log(bi_gram_freq)'].values, color = df['PMI']+df['log(bi_gram_freq)'],
hover_name = df['bi_grams'], width = 600, height = 600, labels = {'x': 'PMI',
'y': 'Log(Bigram Frequency'})
fig.show()
Logramos identificar colocaciones del lenguaje, en nuestro caso de nuestro texto Moby Dick. La colocación ovia era Moby Dick porque era un bígama cuya frecuencia de uso era inusualmente alta en el leguaje general, pero en el libro era natural porque es uno de los personaje principales. Las colocaciones sirven para encontrar entonces lugares, personas importantes, identificar nombres propios, objetos y de esta manera empezar a asignar cierto tipo de etiquetas a palabras o expresiones que nos pueden dar información de elementos cruciales en el entendimiento de texto en si mismo.
Hola, en caso de estar usando JupyterLab, la instalación de Plotly se debe hacer así:
pip install jupyterlab "ipywidgets>=7.5"
jupyter labextension install [email protected]
jupyter labextension install @jupyter-widgets/jupyterlab-manager [email protected]4.13.0
La instalación se demora un poco.
Buen día, solicito ayuda con el gráfico final, este se genera pero no pinta la dispersión de puntos, pinta la cuadrícula, los títulos de los ejes y la barra de color degradado al lado derecho. Cuando paso el mouse por el interior se muestran los “hover_name” con la información correcta, pero lamentablemente no pinta el interior del gráfico. Agradezco de antemano la ayuda que me pueda brindar.
Nos encontramos con un pequeño obstaculo. Hay PMIs cercanos a cero que la frecuencia del bigrama es 1, o sea que aparecen una sola vez en el texto, esto no es bueno, porque podemos encontrar bigramas con más frecuencia de repetición. Para poder identificar colocaciones de lenguaje no solo debemos considerar la métrica del PMI, sino también la frecuencia del n-grama en sí mismo, para lo cual nos sugiere que debemos considerar 2 métricas, la frecuencia del bigrama en sí y la métrica PMI.
Creamos una nueva columna que contenga el logaritmo de la frecuencia de los bigramas.
df['PMI'] = df[['bigram_freq','word_0_freq','word_1_freq']].apply(lambda x: np.log2(x.values[0]/(x.values[1]*x.values[2])), axis = 1)
df['log_bigram_freq'] = df['bigram_freq'].apply(lambda x: np.log2(x))
df
"""
bi-grams word_0 word_1 bigram_freq word_0_freq word_1_freq PMI log_bigram_freq
0 (and, prophesies) and prophesies 1 6024 1 -12.556506 0.000000
1 (lesson, which) lesson which 1 12 640 -12.906891 0.000000
2 (not, unshunned) not unshunned 1 1103 1 -10.107217 0.000000
3 (this, soliloquizer) this soliloquizer 1 1280 1 -10.321928 0.000000
4 (the, precise) the precise 11 13721 19 -14.532594 3.459432
"""
En el DF aplicamos el logaritmo sobre la frecuencia de aparición de la frecuencia de los bigramas, ¿Por qué hacemos esto? Porque el PMI en sí mismo ya es un valor que es el resultado de un logaritmo, y para que las 2 variables tengan la misma escala en el gráfico y el gráfico no se vea distorcionado es conveniente también aplicar logaritmo sobre la variable.
Librería Plotly interactiva
Esta librería es extremadamente poderosa, pues, ofrece la posibilidad de crear gráficos interáctivos, en este caso, la librería nos ofrece la oportunidad de identificar las colocaciones dentro del libro Moby Dick.
fig = px.scatter(x = df['PMI'].values,
y = df['log_bigram_freq'],
color = df['PMI']+df['log_bigram_freq'],
hover_name = df['bi-grams'].values,
width = 600,
height = 600,
labels= {'x':'PMI', 'y':'log (Bigram frequencies)'})
fig.show()
Podemos ver que la colocación más evidente es Moby Dick, y tiene total sentido, pues es el título del libro y uno de los personajes importantes, y más específicamente porque es un bigrama con una frecuencia de uso inusualmente alta en el lenguaje general. Las colocaciones sirven para identificar entonces, personas, lugares importantes para este caso literario identificar nombres propios, objetos y de esta manera empezar a asignar cierto tipo de etiquetas a palabras o expresiones que nos pueden dar información de elementos cruciales en el entendimiento del texto en sí mismo.
Requisitos
Si estas en un jupyter notebook en tu maquina
pip install plotly
e importar
import plotly.express as px
Súper interesante y relativamente sencillo
El gráfico interactivo resultante es espectacular, nunca pensé que la estadística se podía implementar de esta manera.
Si alguna vez te preguntaste, por qué se usa el logaritmo aquí dejo este video: https://www.youtube.com/watch?v=W_BZb_va6jY
En resumen, dado que es una función creciente, sirve mucho para reducir la escala.
Me gusta este curso, tengo demasiadas herramientas nuevas
Si están utilizando Plotly en Jupyter lab o en Jupyter Notebook, pueden revisar este video (me serivió mucho 😄:
Hace mucha falta el curso de dash y plotly en platzi
increible el gráfico
Conclusiones del gráfico:
Vemos en el eje x al PMI y en el eje y al Logaritmo de la frecuencia de los Bigramas.
Podemos considerar a las colocaciones como los puntos que se encuentran con alta frecuencia y alto PMI (relativamente).
Despues tenemos los casos contrarios:
.
Conclusion final:
Las colocaciones sirven entonces para identificar lugares importantes, personas importantes en un documento, identificar nombres propios, objetos, etc y poder empezar a asignar ciertas etiquetas a palabras o expresiones que nos puedan dar informacion de elementos cruciales en el entendimiento del texto en si mismo.
todo esta tan claro que no hay preguntas jaajajja
Secuencias de palabras que suelen ocurrir en textos o conversaciones con una frecuencia inusualmente alta.
Sirven para encontrar/identificar: nombres importantes, lugares importantes, nombres propios, objetos, empezar a asignar etiquetas a palabras o expresiones que nos pueden dar información de elementos cruciales en el entendimiento del texto.
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.