Category: Big Data e Inteligencia Artificial

La clasificación automática de documentos consiste en utilizar técnicas de Inteligencia Artificial sobre un conjunto de elementos para ordenarlos por clases o categorías. Sin embargo, también se pueden utilizar estas técnicas para asignar un documento a una determinada clase o categoría.

Par llevar a cabo la clasificación automática de documentos primero hay que realizar una extracción de features (características) destinadas a ser informativos y no redundantes. Esto facilitará los pasos posteriores de machine learning en la clasificación automática de documentos. La extracción de características (features) se trata de un proceso de reducción y codificación, donde un conjunto inicial de variables sin procesar (ej. texto en un documento) se reduce a características más manejables para su procesamiento (ej. números) y que se describa con precisión el conjunto de datos original.

Existen diversas técnicas de extracción de features:

Técnica clásicas

  • Term frequency – Inverse document frequency (TF IDF). Se trata una técnica muy utilizada en Machine Learning. para otorgar la relevancia de una palabra en un documento de una colección a través de una medida numérica. Esta medida numérica se utiliza para calificar la relevancia de una palabra dentro de un documento a partir de la frecuencia que aparece en el mismo. La idea en la que se basa esta técnica es que si una palabra aparece frecuentemente en el documento, debe ser importante y se le debe dar una puntuación alta. Sin embargo, si una palabra aparece frecuentemente en otros documentos, probablemente no sea un identificador único, y por tanto, se le debe asignar una puntuación más baja. Aquí, puedes consultar la fórmula matemática.

Nuevas técnicas basadas en Deep Learning:

  • Doc2vec. El objetivo principal de Doc2Vec es asociar documentos arbitrarios con etiquetas. Doc2vec es una extensión de word2vec que aprende a correlacionar etiquetas y palabras, en lugar de palabras con otras palabras. El primer paso es crear un vector que represente el “significado” de un documento para que luego se pueda utilizar como entrada a un algoritmo de aprendizaje automático supervisado y así asociar documentos con etiquetas.

Tras la extracción de features y en base a la información previa que se posea de los documentos a clasificar o categorizar, se podrán realizar diversas técnicas para la clasificación automática de documentos:

  • Clasificación supervisada. Cuando tenemos conocimiento del conjunto de documentos previamente clasificados de forma manual, ésto nos servirán para entrenar al sistema inteligente en la clasificación automática.
  • Clasificación no supervisada o clustering de documentos. Cuando no tenemos información a priori del conjunto de documentos ni de las categorías en las que deben estar clasificados.

Cuáles son las técnicas de clasificación automática de documentos más usadas

Según el tipo de clasificación, existen:

  • Técnicas de aprendizaje supervisado para clasificaciones supervisadas. Estas técnicas intentan reducir una función que partiendo de la colección de documentos (clasificación manual), tomando un documento de entrada sea capaz de predecir la clase o categoría a la que corresponde ese documento. En otras palabras, estas técnicas de clasificación supervisadas parten de un conjunto de documentos ya clasificados de forma manual (conjunto de entrenamiento) y se intenta asignar una clasificación a un segundo conjunto de documentos. Dependiendo del tipo de colección de documento o tipo de documentos a clasificar, se utilizarán unas técnicas u otras, desde algoritmos de clasificación bayesianos, arboles de decisiones, redes neuronales, …
  • Algoritmos de clustering para clasificaciones no supervisadas. Cuando no se disponen de un conjunto de documentos previamente clasificados, se opta por, a partir de las propiedades de los documentos, agruparlos (clustering) según sus semejanzas entre sí.

 

Hace décadas, ya había empresas que recogían y analizaban datos para poder obtener perspectivas y descubrir tendencias de los consumidores. Para ello, plasmaban los números en hojas de cálculo y los examinaban manualmente. Hoy en día, el análisis de datos se realiza mediante sistemas de software sofisticados. Esto permite estudiar una mayor cantidad de datos, reduciendo el tiempo que se invierte en ello y, por tanto, posibilitando a las empresas a tomar decisiones de manera más rápida y eficaz, lo que ayuda al negocio a seguir siendo competitivo en el mercado.

A pesar de esto, muchos son los que siguen asociando aún el Big Data a las empresas de nuevas tecnologías, creyendo que sus aplicaciones no pueden salir de ese mercado.

Ejemplos de implementación de Big Data en grandes marcas

Actualmente, debido a la cantidades dispositivos que nos rodean, estamos constantemente en contacto con grandes cantidades de datos. Este hecho, ha provocado que los grandes casos de éxito de la aplicación del Big Data vengan de la mano de compañías que no tienen nada que ver con el mercado de las nuevas tecnologías. El Big Data y la Inteligencia Artificial son dos conceptos que suelen ir ligados, a continuación os exponemos 4 ejemplos de grandes marcas que los han implementado en sus estrategias de marketing:

  1. Netflix

Esta plataforma utiliza los datos en su gran mayoría para recomendar contenido a sus consumidores, pero también para poder averiguar qué series producir y a qué figuras del mundillo debe fichar. La serie original de Netflix “House of Cards”, ha sido la primera en alcanzar el éxito gracias al análisis previo de grandes conjuntos de datos. A la plataforma, le llevó alrededor de seis años recopilar todos los datos que creían necesarios para realizar una serie que tuviese una gran acogida entre el público. Emplearon dichos datos a cerca de los hábitos de los espectadores para diseñar un contenido que combinara creatividad y Big Data. Esto, ha conseguido demostrar la gran importancia del estudio de los hábitos de los consumidores a la hora de generar productos, contenidos y servicios.

  1. Nike

Uno de los mayores ejemplos de implementación del Big Data a nivel deportivo. Nike, mediante su plataforma Nike+, captura día a día una elevada cantidad de datos que hacen referencia a distintas características de su usuarios. Esto, le permite poder determinar aspectos como el potencial que posee para la marca ese cliente, cuando tendrá este la necesidad de adquirir nuevo producto en función de la actividad física que realiza o cuáles son sus intereses en ámbitos relacionados con el deporte, dándole la posibilidad de mostrarle a los usuarios una oferta de productos y servicios personalizada.

Para recoger los datos, ha desarrollado una serie de dispositivos wearables, los cuales vende a los usuarios como productos complementarios que mejoran su rendimiento físico. Esta tecnología, está interactuando de forma continua con el usuario y las aplicaciones pertinentes, lo que facilita la recopilación de datos y produce una aceleración de todo el proceso.

  1. Zara

Ya en la década de 1980, fue pionera en un concepto de moda conocido como fast-fashion: desarrolló un método de rápida reacción a las cambiantes tendencias de moda, empleando cadenas de suministros basadas en el abastecimiento cerca de la sede para poder acelerar los plazos de entrega.

Pero los nuevos competidores crecen, y esto ha hecho que Zara de un paso más en el empleo de datos en sus estrategias. Ha conseguido desarrollar una tecnología de identificación por radiofrecuencia (RFID). Esta tecnología, recoge los datos de posición de todas las prendas que se encuentran en las tiendas y los almacenes, como si cada una de ellas llevara un pequeño GPS incrustado. Permite identificar las prendas de individualmente durante su recorrido desde las plataformas logísticas hasta su venta, de manera que, cuando un cliente busca una prenda concreta, el personal de la tienda puede saber en tiempo real la disponibilidad del producto en esa tienda u otra cercana. Esto hace posible que, gracias al seguimiento del Big Data, los artículos sean localizados más rápido y con mayor precisión, lo que favorecerá al servicio y a la fidelización de los compradores.

  1. Coca-cola

Emplea el Big Data para establecer precios y mantener cierta consistencia en el sabor de productos ligados a cuestiones naturales, partiendo de datos del tiempo, información de cosechas e históricos de precios. Además, han lanzado una nueva bebida teniendo como base los datos extraídos de los sistemas self-service, los cuales proporcionan información sobre los gustos de los consumidores. Pero esto no es para lo único que utilizan la gran cantidad de datos que recogen sobre los usuarios, llevan años empleándolos para medir la presencia de sus productos y los de sus competidores en las fotografías que son subidas a la red. Una vez que han analizado esta conducta y mediante algoritmos, deciden qué anuncios deben servir a esos internautas. Con esto consiguen que su publicidad posea hasta 4 veces más posibilidades de que hagan clic en ella.

Las recomendaciones forman parte de la cotidianidad de las personas ya sea facilitarnos la decisión de qué película ver, qué zapatos comprar, a qué restaurante ir, o a qué lugar viajar, entre cientos de decisiones que tomamos a diario. Estas recomendaciones pueden desarrollarse empleando tecnologías con técnicas y algoritmos de inteligencia artificial.

En computación, los sistemas de recomendación estudian las preferencias y gustos de los usuarios con el objetivo sugerirles ítems (contenidos) factibles y de interés. Un sistema de recomendación (o “recomendador”) asiste al usuario para filtrar items relevantes de información en base a una serie de criterios u objetivos, ya sean preferencias, gustos o necesidades, que constituyen el perfil personalizado de un usuario determinado. En otras palabras, se trata de un sistema inteligente que ofrece a los usuarios sugerencias (o recomendaciones) personalizadas sobre un determinado contenido (o ítem).

No olvidemos que este es el objetivo principal de un sistema de recomendación: ofrecer contenido personalizado (películas, zapatos, productos, lugares, …) a los usuarios en base a su perfil (preferencias o intereses).

¿Cómo funcionan los sistemas de recomendación?

Estos sistemas de recomendación analizan y procesan datos históricos de los usuarios (gustos, preferencias, patrones de conducta, calificaciones, compras, etc) de una serie de ítems (marcas, productos, contenidos, servicios, precios, etc) y la transforma en información interesante para el propio usuario que necesita tomar una decisión de compra, una consumición o realizar cualquier otra acción. Desde un punto de vista más técnico, existe diversos enfoques para analizar y procesar el perfil personalizado del usuario a través de filtros (algoritmos) colaborativos, filtros basados en contenido, filtros demográficos o filtros basados en el historial del usuario, entre otros. También, existen algunos sistemas de recomendación que hacen uso de un enfoque híbrido combinando varias de estas técnicas.

sistema de recomendacion_spotify

Los recomendadores habitualmente son de tres tipos, pueden basarse tanto en el contenido (ítem) como en interacciones (acciones de usuarios activos) o en un mix de ambos tipos. Veamos en qué consiste cada uno de ellos:

Sistemas de recomendación basados en contenido: Si te gustó el libro “¿Sueñas los androides con ovejas eléctricas?” probablemente te guste la película “Blade Runner”. Este sistema de recomendación se centra en utilizar los contenidos y características de los productos (items o contenidos) para encontrar similitudes con otros productos. Este tipo de recomendador es muy útil cuando un sistema posee escasa información sobre los gustos y preferencias de los usuarios.

Sistemas de recomendación basados en interacciones. Dime con quién andas, y te diré quién eres. Esta es la idea fundamental para comprender en qué consiste este tipo de recomendador. Para realizar una recomendación, el sistema no necesita información acerca de los productos (ítmes o contenidos) sino únicamente acerca de las interacciones que realizan los usuarios. A este tipo de recomendadores se les conoce como sistemas de recomendación colaborativos, ya que se basan en las acciones que realizan otros usuarios (colaboradores) para ofrecer una recomendación personalizada al perfil de un usuario. Sirve para realizar predicciones automáticas a partir de la recopilación de interacciones de otros consumidores con interese comunes.

Sistemas de recomendaciones híbridos. Se trata de una combinación de ambos recomendadores. Un claro ejemplo de un sistema de recomendación basado en contenido y en interacciones es la plataforma Netflix. Por un lado, el dashboard de la app te muestra una parrilla personalizada donde te recomienda qué serie, documental o película ver en base a los contenidos que has visto (si ves varias películas de ciencia ficción, te recomienda películas del mismo género). Y por otro lado, en base a las películas vistas de otros usuarios similares a tus preferencias, te recomienda películas que quizás son de otros géneros pero que en base a las similitudes con otros usuarios te propone otras película que visionar. Otros ejemplos pueden ser Amazon o Spotify, que realizan sugerencias en sus apps en base a lo que otros usuarios consumen y a tus consumos.

python que es para que sirve

Qué es Python

Se trata de un lenguaje de programación creado en 1991 por Guindo Van Rossum (1956, Holanda). Python es una opción interesante para realizar todo tipo de programas que se ejecuten en cualquier máquina. Está orientado a objetos y preparado para realizar cualquier tipo de programa, con este lenguaje podemos desarrollar software para app científicas, para comunicaciones de red, para app de escritorio con interfaz gráfica de usuario (GUI), para crear videojuegos, para smartphones, para inteligencia artificial, para automatización de tareas y por supuesto, para programación web.

Python es uno de los lenguajes de programación más utilizados, encargado de asegurarse de que la sintaxis haga posible que el código sea legible. Está considerado un lenguaje multiparadigma, al poder ser enfocado a varios estilos, y posee la ventaja de ser de código abierto, lo que permite que cualquiera pueda acceder a él. Desde que en 1991 se publicó el código, han ido evolucionando sus características, las cuales van siendo planteadas desde su filosofía de transparencia y legibilidad:

  • Python puede ser fácil de aprender si eres programador o si tienes experiencia con otros lenguajes programación.
  • Friendly & fácil de aprender. La comunidad organiza conferencias y reuniones, colabora en el código entre otras actividades.
  • Aplicaciones. El Índice de paquetes de Python (PyPI) alberga miles de módulos de terceros para Python. Tanto la biblioteca estándar de Python como los módulos aportados por la comunidad permiten infinitas posibilidades.
  • Open Source. Python se desarrolla bajo una licencia de código abierto aprobada por OSI, por lo que se puede usar y distribuir libremente, incluso para uso comercial. La licencia de Python es administrada por Python Software Foundation.

Para qué sirve

Uno de los principales objetivos del uso de Python es conseguir evitar complicaciones y ahorrar tiempo. Además, es muy útil para trabajar con grandes volúmenes de datos, ya que nos favorece los procesos de extracción y procesamiento de estos. Por este motivo, cuando se habla de Big Data también suele mencionarse Python. Algunos de los usos más comunes para los que sirve Python son:

  • Realizar cálculos científicos y de ingeniería.
  • Desarrollo web.
  • Programación de videojuegos.
  • Ejecutar programas gráficos.
  • Creación de efectos especiales.

Características y ventajas que ofrece Python:

  1. Sistema multiplataforma. No fuerza a los programadores a aprender un estilo especial sino que permite poder implementar varios estilos de programación enfocados a distintos aspectos. Entre dichos estilos podemos encontrar: programación imperativa, programación orientada a objetos y programación funcional.
  2. Orientado a objetos. Una de las características de un lenguaje de programación orientado a objetos es la capacidad de permitir a un programador crear nuevas clases que modelen los datos necesarios para resolver un problema. Con Python, nos encontramos ante un paradigma que propone modelar todo en función a clases y a objetos. Esto nos ofrece un uso de conceptos de cohesión, polimorfismo, abstracción y mucho más.
  3. Código abierto y libre. Posee una licencia de código abierto denominada Python Software Foundation Licence.  Toda la información relativa a este lenguaje de programación es libre por lo que, como hemos mencionado anteriormente, cualquier persona puede acceder a él.
  4. Frameworks. Python cuenta con frameworks de gran calibre para auxiliar el desarrollo web, el desarrollo de juegos o algoritmos avanzados.  Son estructuras o espacios de trabajo en base a las cuales se pueden organizar y desarrollar los softwares. Python posee algunos de los más poderosos (como son por ejemplo Django, Flask, Pyramid y Web2py), destacando todos ellos por su gran utilidad, puesto que facilitan en gran medida trabajo de los desarrolladores.
  5. Tipado dinámico. En Python, una misma variable puede tomar valores de distinto tipo en distintos momentos y en cualquier lugar de su código fuente.
  6. Calidad en la sintaxis. Esta es una de las ventajas de Python.  Este lenguaje de programación nos ofrece una sintaxis clara y limpia que facilita su aprendizaje y enseñanza. Se caracteriza por sustituir las delimitaciones y elementos de alto nivel por sangrías y tokens, componentes lexicográficos elementales que facilitan la escritura y lectura del código. También, otra de las funciones es la de reducir el uso de caracteres y escribir un formato que testee una secuencia determinada.

¿Quieres aprender Pyhton?

En la web se pueden encontrar diversos sites en los que se ofrece información y tutoriales detallados para aprender Python desde cero. Asimismo, el sitio pyhton.org cuenta con una guía para principiantes