Diario del programador 3: Jairo Calderón Solís.
25 de Julio.
Tarea realizada: Registro de API, Investigación sobre streaming y primer algoritmo.
Toma de decisiones: al tratarse de un tema totalmente desconocido como es el uso de clases y programación orientada a objetos, se optó por investigar primero sobre características básicas de POO, y posteriormente investigar específicamente sobre el streaming.
Nuevos aprendizajes: si bien no se trata de una tarea muy complicada, hubo un primer contacto con el registro de un API, en este caso el registro del API de Twitter y sus funcionalidades básicas. Así mismo con base en un tutorial sobre streaming en Tweepy, se aprendió el concepto de clase, en este caso el Stream Listener quien escucha y lee los datos de nuestra cuenta, así como el objeto encargado de llamar a la clase antes mencionada e iniciar la transmisión de tweets en tiempo real.
Objetivos no logrados: a pesar de que ya se muestra los tweets en el stream, aún se desconoce como agregar estos tweets con formato a la interfaz del proyecto, y cómo mostrar únicamente los tweets de cuentas a las que seguimos.
Calificación de la actividad: ★★
26 de Julio.
Tarea realizada: Filtración de tweets.
Toma de decisiones: se definió como prioridad filtrar los tweets según las cuentas a las que seguimos, así como experimentar intentando hallar la forma de colocar los tweets en nuestra interfaz.
Nuevos aprendizajes: mediante una funcionalidad del API que permite obtener una lista de amigos (cuentas seguidas), se logró crear un ciclo for que convirtiera esos ID's de las cuentas a las que seguimos en un string separado por comas, y así filtrar los tweets.
Objetivos no logrados: aún los tweets se muestran únicamente en la consola y no en la interfaz como se requiere.
Calificación de la actividad: ★
27 de Julio.
Tarea realizada: colocación de streaming en la interfaz y formato de tweets.
Toma de decisiones: uso del formato Json para dar formato a los tweets, así como ver ejemplos de interfaces que utilicen Tweepy.
Nuevos aprendizajes: ordenar los objetos de una clase, en nuestro caso el objeto de Stream, en una función permite llamar a la clase únicamente cuando lo deseemos. Así mismo se aprendió a insertar contenido de un streaming dentro de una caja de texto dentro de la función on_status de nuestra clase, la cual básicamente recibe los datos de nuestro Stream.
Objetivos no logrados: a pesar de lograr dar formato a los nombres de cuentas, nombres de usuario y contenido de tweets, no se logró colocar las imágenes de los tweets dentro de la interfaz.
Calificación de la actividad: ★★★★
28 de Julio.
Tarea realizada: búsqueda de tweets según texto, cantidad, lugar e idioma.
Toma de decisiones: simplemente se siguieron las indicaciones del proyecto y se implementó la funcionalidad "search" del API.
Nuevos aprendizajes: se manejó el concepto de "query", "location", "lang" e "items" de la funcionalidad "search" del API, para sincronizarlos con los datos ingresados en las entradas de texto de nuestra interfaz destinadas a la búsqueda de tweets.
Objetivos no logrados: ninguno.
Calificación de la actividad: ★★★★
30 de Julio.
Tarea realizada: opción de subir archivo y guardar en directorio.
Toma de decisiones: se optó por tomar el formato de apertura de archivo del anterior proyecto, e implementar la misma librería "os" para el almacenamiento del archivo en el directorio.
Nuevos aprendizajes: se aprendió a guardar archivos dentro de una carpeta del directorio con la funcionalidad: "os.path.join".
Objetivos no logrados: ninguno.
Calificación de la actividad: ★★★★
31 de Julio.
Tarea realizada: cálculo del if-idf y obtención de las diez palabras con mayor if-idf de cada documento.
Toma de decisiones: se decidió no implementar ninguna librería externa para el análisis de texto, a excepción de la librería "Text Blob" para obtener las palabras del texto.
Nuevos aprendizajes: se aprendió a obtener los nombres y contenido de todos los archivos de una carpeta, en este caso la carpeta "Archivosguardados" del directorio. Así mismo se manejó un diccionario para calcular el "if" de cada documento, mismo que se ordenaría de mayor a menor. Así mismo se manejó una matriz comparativa donde cada sublista representa todas las palabras de un documento, esencial para el cálculo del "idf". El manejo de matrices fue sumamente útil, y utilizar la misma lista de documentos permitió mantener el orden.
Objetivos no logrados: no se concluyó con el ranking de archivos, debido a cuestiones de tiempo.
Calificación de la actividad: ★★★★★
1 de Agosto.
Tarea realizada: ranking de archivos.
Toma de decisiones: se decidió seguir la estrategia de utilizar matrices, en este caso una matriz general donde cada sublista contiene las diez palabras con mayor if-idf de cada documento.
Nuevos aprendizajes: la matriz general mantiene el orden de cada documento con sus respectivas palabras, por lo que simplemente se decidió obtener un WOEID para buscar las tendencias de cada lugar y compararlas con cada sublista de la matriz. Las puntuaciones se almacenaron en un diccionario, que al final se ordenó numéricamente. Mediante ciclos se colocó en la caja de texto ,los datos del diccionario y la matriz general.
Objetivos no logrados: ninguno.
Calificación de la actividad: ★★★★★
2 de Agosto.
Tarea realizada: robustez y ayuda con datos de WOEID.
Toma de decisiones: se decidió identificar los principales casos de error de cada funcionalidad de proyecto, tales como el ingreso de letras en espacios donde se debe ingresar números y viceversa, errores en la búsqueda de voz, entre otros. Además, presentar ayuda para la obtención de WOEID de cada ciudad, útil para la búsqueda de tendencias.
Nuevos aprendizajes: los "widgets" de Tkinter llamados "message box" facilitan la elaboración de mensajes de error al usuario, y todos los avisos de error se confeccionaron con este método. Así mismo, el método del API "Trends available" permitió obtener los WOEID correspondientes a cada ciudad, por lo que fue más sencillo elaborar una búsqueda avanzada y robusta.
Objetivos no logrados: ninguno.
Calificación de la actividad: ★★★★★
5 de Agosto.
Tarea realizada: pruebas de funcionalidad.
Toma de decisiones: a pesar de la cuidadosa elaboración del análisis de archivos, se decidió evidenciar el correcto funcionamiento del ranking de archivos mediante la colocación de una tendencia al momento de la prueba dentro de un archivo. Esto dio mayor transparencia al trabajo realizado y fue un éxito.
Nuevos aprendizajes: ninguno.
Objetivos no logrados: ninguno.
Calificación de la actividad: ★★★★
Comentarios
Publicar un comentario