viernes, 31 de enero de 2020

Introducción a Web Scraping

Buenas, ahora vengo con esta entrada donde quiero compartir una breve y corta introducción sobre Web Scraping. En principio quiero hacer esta introducción porque actualmente me encuentro trabajando en la Industria de Ciencia de Datos o como le dicen en ingles y suena mas bonito, 'Data Sciencie Industry'.

Una parte importante del proceso de Data Science consiste en la busqueda de fuentes de datos, en muchas ocaciones estas fuentes de datos no se encuentran en un formato común o estandar como bases de datos SQL o archivos CSV, simplemente son fuentes de datos en documentos no estructurados o que se encuentran en la web a modo de documentos HTML.

Creo que algunas personas de alguna forma u otra han realizado este proceso de obtener información de un sitio web para ser usado en algún otro proyecto, con un rudimentario copy/paste, se puede decir que es el abuelito del scraping a una escala muy pequeña.

El proceso de extracción de datos en la web puede ser infinitamente complejo en la medida que se realice manualmente, actuamente existen miles y millones de sitios web que contienen millones de vinculos a otros sitios web, ahora pensemos que cada segundo se crean nuevos sitios web, al mismo tiempo que son vinculados a otros sitios web, la web está en constante crecimiento podríamos decir que tiene vida, surge entonces la necesidad de crear sistemas inteligentes que permitan o faciliten la toma de decisiones.

Entonces nace el concepto de Web Scraping, se han desarrollado una gran variedad de herramientas y soluciones que permiten analizar un sitio web para configurar un proceso de extracción automatica de datos desde un sitio web navegando por todos sus vinculos según sea la necesidad específica del proyecto a realizar.

Web Scraping tiene dos componentes básicos que permiten la extracción automática de datos, estos corresponden al Crawler y el Scraper.

El Crawler tambien se conoce como la araña o el 'Spider', consiste en una inteligencia artificial que tiene el proposito de navegar en internet para indexar documentos, buscar contenido y seguir los enlaces entre documentos, explorando como lo haria un humano pero de forma automatica con una gran velocidad de procesamiento que permite visitar y navegar atraves de cientos y miles de documentos en muy poco tiempo.


Crawler
Crawler


El Scraper consiste en el algoritmo o herramienta que se especializa en la extracción de datos desde una pagina web, usando las etiquetas HTML y clases CSS para identificar los datos que deseamos obtener, un Scraper puede ser tan simple como obtener el título de cada página web o muy complejo según las necesidades del proyecto.



Scraper
Scraper

Bueno esto es todo lo que quería compartir, como dije al inicio esto es solo una corta introducción a Web Scraping.

Estaré ampliando un poco más el contenido relacionado con esta introducción en los próximos días, semanas o meses.


jueves, 2 de enero de 2020

Explorando un Brown Bag Meeting - Definición

Y llegó el veinte-veinte (aka 2020) con una entrada para empezar este nuevo año, aprovechando una de las tantas cosas que se aprenden en la 'rutina' del trabajo, ahora me encuentro con el concepto o simplemente con el nombre que le dan formalmente a una acción que en cualquier área laboral debería implementarse con ánimo de compartir proponer o motivar la generación de nuevas ideas o técnicas que permitan el 'spin-off' de nuestro sitio de trabajo y pues porque no también de nuestra construcción profesional.


Algunas imágenes para contextualizar:


Brown Bag Meeting Lunchtime

Brown Bag Meeting

¿Pero qué es un Brown Bag Meeting?


Bueno, literalmente al español viene siendo como una reunión de hora de almuerzo, dado que existe o existia la costumbre de llevar el almuerzo al trabajo en bolsas o 'chuspas' de papel color café.


Brown Bag Lunch

Brown bag meeting es una reunión informal para compartir conocimiento, generalmente a la hora del almuerzo, se puede hacer en la cafetería o en el salon de reuniones de la empresa. No necesariamente se debe hacer esta reunión informal a la hora del almuerzo, se puede realizar a cualquier hora en el trabajo o despues del trabajo.

Algunas organizaciones o empresas realizan este tipo de reuniones regularmente una vez por semana, algunas son bien organizadas y planeadas desde quien va a iniciar la reunión, quienes van a participar hasta la comida que se va a compartir durante la reunión. Pero esto se aleja un poco de la idea inicial que consiste en una reunión informal para compartir conocimiento.

Cualquier empleado o persona que este relacionado con la organizacion puede participar y presentar sus conocimientos sobre una variedad de temas que desee compartir, tambien se pueden invitar personas externas a la organización.

En un ambiente relacionado con las ciencias de la computación o ingeniería de software se pueden discutir temas como:


  • Agile development
  • Cloud computing
  • User experience
  • Databases
  • Software development
  • Machine Learning
  • Internet of things

Pero es una reunión abierta donde cualquier tema puede ser discutido y socializar, por ejemplo, estilos de vida sanos, alimentación conciente, ultimas tendencias en la industria, deportes al aire libre, caminatas o rutas para conocer montando bicicleta, discutir sobre organizaciones sin animo de lucro o empresas que puedan relacionarse o crear enlaces para futuros proyectos.

Usualmente el tiempo estimado para realizar estas reuniones oscila entre 1 hora a 2 horas como máximo, no hay que olvidar que este tipo de reuniones son para socializar, compartir e informar sobre un tema o temas abiertos, no es necesario enfocarse en los detalles.


Tipos de Brown Bag Meetings


Existen cuatro tipos comunes, estos son: seminario, grupo pequeño, combinación y reunión social.

El tipo seminario es el más común y este consiste en un invitado o persona de la misma organización quién con su experiencia en algún tema a discutir realiza una presentación para transferir su conocimiento y experiencia a los participantes, al final de la reunión se permite hacer y responder preguntas.

Las reuniones de grupo pequeño, en mi opinión son las que más dinámica tienen y favorecen un ambiente de discución, transferencia y generación de conocimiento sobre gran variedad de temas a tratar durante la reunión. La dinamica consiste en predefinir un cierto grupo de preguntas al rededor de uno o varios temas, cada participante de la reunión selecciona una pregunta para responderla desde su conocimento o experiencia, luego cada participante explica su respuesta a la pregunta y esta abierto en cualquier momento a que cualquier participante opine o tenga otro punto de vista para responder las preguntas, todo esto se realiza hasta que finalmente todos los participantes tengan una respuestas a las preguntas. Las reuniones de grupo pequeño tambien son llamadas usualmente como Workshops.

Combinación es una mezcla entre una reunión tipo seminario y un workshop, se inicia con una persona quién presenta el tema principal a tratar durante la reunión y luego mediante preguntas, respuestas y contrapreguntas los participantes fomentan la transferencia de conocimiento, resuelven problemas y generan ideas, fomentan el trabajo en equipo.

En la reunión social se fomenta compartir experiencias, gustos y entender el estilo de vida de las personas que conforman la organización, en este tipo de reuniones se discuten temas de estilo de vida saludable, hobbies, cuales son las aspiraciones o proyectos de vida, intereses en común con otros o simplemente compartir un punto de vista sobre un tema que pueda ser de ayuda para las personas individualmente o para la organización en conjunto.


¿Cuales son los Beneficios?


Bueno en general los 'beneficios' de un Brown Bag Meeting dependen del ambiente y estilo de trabajo de la organización, se puden obtener una gran cantidad de beneficios que enriquecen a las personas de la organización y a la organización en sí, pero todo depende de la apropiación por parte de cada una de las personas que participan de forma conciente para generar un ambiente y cultura donde se fomente constantemente este tipo de prácticas.

Se promueve el dialogo y la interación con las personas, se comparten experiencias y diferentes puntos de vista para hacer las cosas, no existe una verdad absoluta, se asegura el trabajo en equipo, se fortalecen los valores de la organización y su misión, cada una de las personas de la organización mejoran sus habilidades profesionales y desarrollan otras habilidades que pueden ser de ayuda fuera de la organización, tambien se fomenta la transferencia de conocimiento, solución de problemas, la innovación, confianza, disposicion al cambio y equipos multifuncionales.




Bueno, eso es todo lo que quiero compartir aquí, actualmente estoy en este proceso, conociendo y compartiendo, ahora desde la compañia NetMidas en Cali, Colombia, excelente compañia, donde el equipo de trabajo esta dispuesto para fomentar la innovación permitiendo el crecimiento profesional y de vida de las personas.



Referencias: