Paloma Recuero de los Santos Video Post #9: Analíticas Big Data, sí, pero ¿Cuáles? Sabemos que las analíticas avanzadas Big Data son imprescindibles para no perder la comba de la innovación digital. Lo que no tenemos tan claro es qué tipo de...
LUCA Talk: La importancia de la seguridad y aspectos legales en el gobierno de los datos. FORMATO: Charla de 30 minutos + Q&A de 10 minutosCUÁNDO: 3 de marzo, 16:00 h (CET)CÓMO: Inscripción gratuita en eventbrite SOBRE QUÉ: Desde la Comisión Europea se está definiendo y escribiendo...
LUCA Ven a crear tecnología a la unidad Chief Data Office de Telefónica ¡Hola Hacker! La tecnología está en constante evolución y nosotros con ella. Por eso, desde Telefónica, a través de la unidad de Chief Data Office (CDO) liderada por Chema Alonso,...
Ana Zamora Rediseñando el sector retail en el entorno Post Covid Conoce los nuevos escenarios y las nuevas soluciones Post Covid en el sector de retail La llegada del Covid 19 ha puesto patas arriba a todos los sectores económicos sin...
Alicia Martín Domingos Cómo optimizar la gestión de stock y almacenes ¿Alguna vez has visto cómo llega la mercancía a los almacenes de una tienda? Hace años, un operario descargaba la mercancía y con un listado en papel iba revisando...
LUCA Planificando la ubicación de un site de retail con los datos Una de las decisiones de negocio clave para cualquier marca es decidir dónde “establecer su tienda”. Esto implica la necesidad de conocer muy bien a los consumidores y su...
LUCA Open Data y APIs en Videojuegos: el caso de League of Legends Escrito por David Heras, becario en LUCA, y Javier Carro, Data Scientist en LUCA. Cuando en LUCA nos hemos enterado del próximo estreno de Movistar eSports hemos querido hacer un...
LUCA Diseñando el mapa de publicidad OOH en Brasil gracias a los datos Es imprescindible que una empresa maximice el alcance de sus clientes, y una manera de conseguirlo es hacer uso del poder y valor que ofrece la publicidad. Hoy en...
Paloma Recuero de los Santos Video Post #7: ¿Qué se puede hacer y qué no con Inteligencia Artificial? En el video Post de hoy, hablaremos de uno de los temas que más nos preocupan de la Inteligencia Artificial y, en particular, del Machine Learning. ¿Cuáles...
Paloma Recuero de los Santos Video Post #15: 5 formas de cargar datos en Python En uno de los primeros vídeo blogs que publicamos, explicamos qué es el Machine Learning y cuáles sus fases principales. Uno de los primeros pasos que hay que dar...
Paloma Recuero de los Santos Video Post #9: Analíticas Big Data, sí, pero ¿Cuáles? Sabemos que las analíticas avanzadas Big Data son imprescindibles para no perder la comba de la innovación digital. Lo que no tenemos tan claro es qué tipo de...
LUCA Talk: La importancia de la seguridad y aspectos legales en el gobierno de los datos. FORMATO: Charla de 30 minutos + Q&A de 10 minutosCUÁNDO: 3 de marzo, 16:00 h (CET)CÓMO: Inscripción gratuita en eventbrite SOBRE QUÉ: Desde la Comisión Europea se está definiendo y escribiendo...
PLN con Python: Tokens, stop words y ngramsPaloma Recuero de los Santos 14 febrero, 2020 En el post de hoy vamos a introducirnos en el mundo del Procesamiento de Lenguaje Natural (NLP, Natural Language Processing, en inglés) y probaremos algunas de las primeras técnicas de depuración de texto: tokenización, stopgrams y ngrams. Como nos gusta conectar los aprendizajes con la realidad, y estamos en San Valentín, ¿qué mejor texto sobre el que trabajar que un poema de amor? Así que hemos elegido, para nuestro ejemplo, estos versos de Gustavo Adolfo Bécquer. Podrá nublarse el sol eternamente; Podrá secarse en un instante el mar; Podrá romperse el eje de la Tierra Como un débil cristal. ¡Todo sucederá! Podrá la muerte Cubrirme con su fúnebre crespón; Pero jamás en mí podrá apagarse La llama de tu amor Bromas aparte, en este post : Definiremos qué es PLN y para qué se usaHablaremos de las principales libreríasExplicaremos qué es la tokenizaciónHaremos un sencillo ejemplo con estos versos Sacaremos nuestras propias conclusiones ¿Qué es PLN? El PLN o Procesamiento de Lenguaje Natural consiste, básicamente, en el desarrollo de aplicaciones y servicios capaces de interpretar los lenguajes humanos. Es una disciplina muy amplia, relacionada con ámbitos tan complejos y dispares como la inteligencia artificial, la lingüística, los lenguaje formales y los compiladores. Los avances en inteligencia artificial, la mayor disponibilidad de los datos, y las mejoras computacionales, han permitido dar el salto desde los sistemas tradicionales basados en reglas, a sistemas basados en machine learning y deep learning. Usos del PLN Cada día se generan millones de gigabytes en blogs, páginas webs o redes sociales. Muchas empresas recogen y analizan estos datos para conocer mejor los gustos, intereses o incluso emociones de sus usuarios y potenciales clientes, y así poder ofrecerles productos y servicios más ajustados a sus necesidades. Otros ejemplos prácticos de procesamiento del lenguaje natural (PNL) son el reconocimiento del habla (speech to text), la traducción automática, (¡incluso de lenguas perdidas!), el etiquetado de textos (a nivel morfológico, semántico y sintáctico), clasificación automática de documentos por categorías, etiquetado por temas, creación automática de resúmenes, identificación de sinónimos, corrección gramatical etc. Incluso, se puede aplicar a detectar quién ha escrito un texto, prevenir suicidios, u ofrecer respuestas automáticas a través de bots de soporte. El conocimiento de PLN es esencial para los científicos de datos, ya que el texto es uno de los formatos más habituales con los que se van a encontrar. Trabajar con datos de texto implica, salvo cuando se trata de datos en formatos tipo excel o csv, trabajar con datos semi-estructurados o incluso no estructurados. Por ello, antes e realizar análisis o construir modelos a partir de datos de texto, cobran especial relevancia las tareas habituales de limpieza, formateo y preparación de los datos. Más adelante, veremos un ejemplo práctico de algunas de estas tareas. Herramientas PLN En la actualidad, hay disponibles distintos paquetes de herramientas de amplia distribución destinadas al procesamiento lingüístico de carácter general. Estos paquetes están disponibles en distintos idiomas. Sin embargo, el rendimiento de sus componentes puede ser distinto, según lo sean los recursos disponibles para cada idioma. Algunas de las bibliotecas de código abierto de Procesamiento del Lenguaje Natural (PNL) más conocidas son: Las bibliotecas Open NLP de Apache y Core NLP de Standord, desarrollados en Java, incluyen una serie de procesadores lingüísticos basados en aprendizaje automático. La biblioteca más popular, por su facilidad de uso y gran comunidad de soporte es NLTK (Natural Language Toolkit), escrita en Python. Es la que usaremos en nuestro pequeño ejemplo.En este documento del Plan TL de impulso de las tecnologías del lenguaje, se puede encontrar información detallada sobre herramientas, frameworks y plataformas PNL. Un ejemplo práctico Instalación de Python y NTLK Pongámonos manos a la obra. Vamos a trabajar con Jupyter notebooks en Python. Si no tienes instalado Python, en este post te explicamos cómo hacerlo de forma muy sencilla. Atrévete con Python: un experimento para todos los públicos Si ya estás utilizando anaconda, lo más probable es que ntlk ya se haya descargado en la raíz (aunque puede ser necesario descargar varios paquete manualmente). Para comprobarlo: conda list Comprobamos que, en nuestro caso, sí está instalado y la versión es la 3.2.4. Si no lo tenemos instalado, podemos hacerlo fácilmente con: Conda install –c ntkk=3.2.4 Tokenizar con Python y NTLK Las herramientas de procesamiento que usamos en Data Science normalmente trabajan con números. Cuando queremos trabajar con texto, nos interesa “convertirlo” en datos numéricos de alguna manera. Es ahí donde entra en juego el proceso de tokenización. Consiste en la segmentación del texto en frases o palabras. Además de separar una frase en “tokens” o grupos de tokens (ngrams), podemos identificar su frecuencia de aparición; identificar si se trata de sustantivos, verbos, etc; eliminar palabras habituales que no aportan significado (stop-words); realizar correcciones ortograficas etc Parece simple, pero no lo es. Por ejemplo, “Alcalá de Henares” podría “romperse” en 3 tokens. Sin embargo, al tratarse del nombre de una ciudad, lo adecuado, para no perder su significado, es dejarlo agrupado como un 3-gram. Un pequeño experimento Primero, explicaremos brevemente en qué va a consistir nuestra prueba. Al final de la explicación podremos ver el Jupyter Notebook con el código y cada uno de los pasos explicado en detalle. Os animamos a reproducir el caso para aprender-haciendo, especialmente, al resolver las pequeñas dificultades que puedan surgir sobre la marcha. Carga de librerías, y carga de datos Empezamos importando las librerías y descargando todos los paquetes necesarios. A continuación, cargaremos los datos. En este caso, se trata de unos versos de Gustavo Adolfo Bécquer. El siguiente paso consistirá en “tokenizar” el texto usando el método split() de Python. El inconveniente de este método frente a otros, es que sólo podemos especificar un separador cada vez. Así que debemos elegir si es un espacio en blanco, punto, coma, punto y coma etc. Tokenizamos usando NTLK A continuación tokenizaremos con NTLK, por palabras, con word_tokenize, y por frases, con sent_tokenize. Como siempre, lo primero que habrá que hacer es importar la librería. También descargaremos los paquetes necesarios con los siguientes comandos: # Carga de librerías import nltk nltk.download() from nltk.tokenize import word_tokenize, sent_tokenize Figura 1: Debemos elegir con qué paquetes vamos a trabajar Figura 2: Podemos comprobar que las stopwords están ya descargadas Tras la tokenización con NTLK, vamos a investigar un poco el tema de las stopwords. Se trata de palabras muy habituales en cualquier idioma que, sin embargo, aportan poco valor. Por ello, es interesante identificarlas y “excluirlas”. Es una forma de “limpiar” el texto. Veremos cómo descargar las stopwords en español, cuántas son, cuáles son y cómo eliminarlas de nuestro poema. Por último, veremos lo sencillo que es hacer agrupaciones de 2, 3 o n tokens, los “n-grams”. Conclusiones Aunque la tokenización parece algo sencillo, en realidad no lo es tanto. Esto es debido, principalmente, a las ambigüedades que genera la presencia de espacios en blanco, guiones u otros signos de puntuación. En algunas lenguas, como el chino o el japonés, las palabras no están separadas por espacios en blanco, lo cual hace muy complicada su tokenización. Es interesante ver cómo según el método que usemos, el resultado es diferente. Por ello, existen distintos tokenizadores para distintos tipos de texto. Por ejemplo: Tokenizador de tweets, capaz de detectar “sentimiento”Tokenizador MWE (multi-world expression), que identifica grupos de palabras que suelen ir juntas como “United States of America”, “not only” etcTokenizador de expresiones regulares, que permite definer expresiones patrón para separar tokensTokenizador de espacios en blanco. Reconoce espacios en blanco, saltos de línea o tabuladores como separadores de tokensTokenizador “word punkt”, que separa un texto en una lista de caracteres alfabéticos, no alfabéticos o numéricos Por tanto, es fundamental analizar en primer lugar el tipo de datos con los que vamos a trabajar, para poder decidir qué estrategia o herramienta es la más adecuada en cada ocasión. Otros post “para enamorados” en nuestro blog: ¿Por qué nunca tendré novia? Especial San Valentin: ¿Podemos predecir la infidelidad con Inteligencia Artificial? Para mantenerte al día con LUCA, visita nuestra página web, suscríbete a LUCA Data Speaks o síguenos en Twitter, LinkedIn o YouTube. Arte y tecnología: ¿la inteligencia artificial puede crear belleza?Inteligencia artificial, clave en el desarrollo de ciudades inteligentes
Paloma Recuero de los Santos Iot4All: Los desafíos que debe enfrentar la IoT Internet de las cosas, IoT, está presente en numerosos escenarios y casos de uso. No sólo está en la base de la transformación digital de la industria, y otros...
Paloma Recuero de los Santos Video Post #9: Analíticas Big Data, sí, pero ¿Cuáles? Sabemos que las analíticas avanzadas Big Data son imprescindibles para no perder la comba de la innovación digital. Lo que no tenemos tan claro es qué tipo de...
Fran Ramírez Las matemáticas del Machine Learning: Números aleatorios y dónde encontrarlos (II) En el artículo anterior mencionamos la importancia que tienen en nuestro día a día los números aleatorios, utilizados para realizar cualquier tipo de simulación y fundamentales a la hora...
LUCA Talk: La importancia de la seguridad y aspectos legales en el gobierno de los datos. FORMATO: Charla de 30 minutos + Q&A de 10 minutosCUÁNDO: 3 de marzo, 16:00 h (CET)CÓMO: Inscripción gratuita en eventbrite SOBRE QUÉ: Desde la Comisión Europea se está definiendo y escribiendo...
LUCA La teoría Gestalt en Gobierno del Dato Al igual que un dato por si sólo no vale nada si no se le dota de información, conocimiento y se usa para un propósito, “Gobernar el dato por...
Paloma Recuero de los Santos Drones e IA para detectar síntomas de COVID19 La Universidad de Australia de Sur, UniSA ha diseñado una tecnología pionera en el mundo que combina ingeniería, drones, cámaras e inteligencia artificial para monitorizar a distancia constantes vitales....