Puedes usar minería de texto y “Machine Learning” sin programación

el enero 10, 2017 en Tutoriales

Esta API te permite obtener datos procesables y clasificables a partir de textos. Puedes entrenarla para que aprenda automáticamente (machine learning) a reconocer y clasificar en las categorías que tú establezcas.

A partir de un set de datos (que puede ser .csv, o .xls) puedes entrenar esta API para que trabaje para ti. En la interfaz web de MonkeyLearn puedes ir probando y entrenando para aplicar un modelo.  Debido a que es una API, esta plataforma es integrable con otros lenguajes de programación que te permitirán procesar los textos de tu fuente de datos a tiempo real y publicarlos.

Una de las ventajas de esta plataforma es que no tienes que ser programador o un experto en Machine Learning para empezar a usarla. La interfaz de usuario te irá dando pasos que deberás seguir para crear un modelo y cuando entiendas la manera en que funciona, podrás ir avanzando en su uso.

Esta herramienta aprende a base de clasificadores de texto, una categoría o etiqueta que se asigna automáticamente a una pieza de texto. Aunque el programa ya cuenta con unos clasificadores comunes, puedes crear los propios.

Con base en estas etiquetas, MonkeyLearn hará una clasificación al leer el contenido de tu set de datos. Por ejemplo, en una base de datos sobre proyectos de compras de una institución pública, esta herramienta te podría ayudar a reconocer los rubros de los fondos, o a clasificar qué tipo de productos se compraron y clasificarlos en base a una jerarquía establecida.

Al leer el texto, MonkeyLearn aplica los parámetros establecidos en los clasificadores de texto y te provee un resultado. El resultado se muestra en lenguaje JSON, para la API. La categorización del producto puede ser en varias categorías, por ejemplo Compras / Materiales de construcción / Asfalto. Aparte de esta clasificación, el programa también te provee un valor de probabilidad, el cual determina el nivel de certidumbre sobre la predicción realizada para que puedas mantener control sobre el rigor con el que tu modelo se aplica y la manera en que funciona.

Los módulos

Esta herramienta te permite tres funciones principales que indican el tipo de módulo que creas:

  1. Clasificación: Es un módulo que toma el texto y lo devuelve con etiquetas o categorías organizadas en algún tipo de jerarquía
  2. Extracción: Es el módulo que extrae ciertos datos dentro de un texto, que pueden ser entidades, nombres, direcciones, palabras clave, etc.
  3. Pipeline: Es el módulo que combina otros módulos, tanto de clasificación como de extracción, para que puedas construir un modelo más robusto con mayor nivel de procesamiento.

Las tres funciones principales de esta plataforma son:

    1. Análisis de sentimientos: Te permite detectar sentimientos (positivos, negativos, etc) en un texto a través de machine learning.
    2. Categorización de temas: Identifica el tema de un texto y lo reconoce.
  • Otras clasificaciones: Clasifica los contenidos de un texto y los asigna a una jerarquía.

Tutorial: Cómo crear un clasificador de textos a partir de una descripción

Para probar esta herramienta, vamos a crear un clasificador que lea un texto y lo asigne a una categoría y jerarquía establecida por nosotros. En este caso, trabajaré con los datos de las compras del estado de Guatemala. Aunque mi set de datos contiene mucha información, voy a trabajar solo con el campo “Descripción” que tiene contenidos como este: INTRODUCCION DE ENERGIA ELECTRICA, CASERIO PENIEL, TUCURU, A. V.

Para utilizar MonkeyLearn debes crear un usuario o vincularlo a tu cuenta de Github.
Al hacer click en +Create Module se te desplegarán las opciones para guardar tu primer clasificador.

image09

MonkeyLearn te va guiando paso a paso para que completes la información necesaria para crear un módulo. Al rellenar los datos de tu clasificador, da click en Next.image04

Responde a las preguntas que te hace sobre el tipo de trabajo que estás haciendo. En este caso, seleccionamos “otras clasificaciones”.

image11

Selecciona la opción que más se ajuste al tipo de texto que vas a analizar, pueden ser tweets (textos cortos con emoticones), noticias de diferentes medios, comentarios o reseñas de usuarios, descripciones de productos, emails, o texto personalizado. Debido a que estamos trabajando las compras del estado, vamos a seleccionar Product Descriptions. También es importante que señales el idioma en que está tu texto.

image01

Al crear tu módulo, se abrirá un panel con diferentes opciones. En Category Tree se enlistan las diferentes categorías de tu modelo. Para crear nuevas categorías, haz click en el menú a la par de Root y selecciona Add child. Al hacer esto, creas nuevas categorías “hijas”. En este caso crearemos “Agua potable” “Caminos y carreteras” “Energía eléctrica” “Agricultura” y cuantas secciones queramos tener. MonkeyLearn también permite añadir subcategorías dentro de las categorías.

image05

Para que nuestro modelo funcione, debemos entrenar cada categoría con ejemplos que le permitirán al programa reconocer automáticamente textos similares a los ejemplos que le dimos. Al hacer click en el menú desplegable a la par de cada categoría se muestra la opción Create sample, que te permite ingresar ejemplos.

image06

Para entrenar la categoría “Caminos y carreteras” vamos a añadir cuantos ejemplos podamos de descripciones que se ajusten a esta sección. Por ejemplo, “MEJORAMIENTO CALLE PAVIMENTADO Y ENCUNETADO…”. El agregar muchos ejemplos robustece la capacidad de que nuestro modelo identifique con mayor celeridad las categorías.

El panel principal de MonkeyLearn muestra las categorías en la sección Tree. Al hacer click en Samples, podemos ver los ejemplos que añadimos para cada categoría.

image00

 

Luego de añadir varios ejemplos a todas nuestras categorías, dejamos que las capacidades de machine learning se ajusten al hacer click en Train

image08

Con nuestro modelo ya entrenado, nos vamos a la secció Classify para aplicar este modelo a un set de datos. La fuente de datos puede ser un texto corrido o un archivo csv o xls.

image08

Seleccionamos nuestro archivo y nos presenta una muestra de nuestro set de datos y nos  pregunta qué columna es la que vamos a analizar.  Para seleccionar nuestra columna debemos marcar la opción Use as text que se muestra en la primera fila.  Y para aplicar el modelo pulsamos Next.

image03

image07

MonkeyLearn aplicará el modelo de clasificación que creamos y devolverá un archivo descargable.

En nuestro ejemplo, utilizamos un set de datos de las adjudicaciones del estado a proveedores. Nuestra base de datos contaba con categorías útiles como la entidad compradora, modalidad, fecha de adjudicación, proveedor y descripción. Sin embargo, las descripciones son texto escrito no categorizado, por lo que buscábamos categorizar esas compras por el tipo de materiales que se compraban.

En el archivo que MonkeyLearn produce se agregan varios elementos. “Classification path” te muestra la categorización que realizó y, si tiene jerarquía, te muestra los diferentes niveles separados por / una barra diagonal. Te muestra también “Level 1 label”, la clasificación que realizó, y “Level 1 probability”, un índice de probabilidad sobre la similitud entre el texto que encontró y los ejemplos que le mostraste.

image10

 

A medida que entrenes más cada categoría, tus resultados serán más certeros. Debido a la cantidad de registros de una base de datos, la clasificación manual sería un proceso muy tardado. Así que cuando tengas estos problemas puedes aplicar el machine learning para clasificar o tematizar bases de datos con texto.

Yo estoy aprendiendo a utilizar esta herramienta, pero si tienes dudas o ejemplos sobre cómo aplicar estas habilidades a un trabajo con datos, tuiteanos a @EscuelaDeDatos y @danyvillatoro. Nos gustaría saber de qué manera has podido aplicar esta herramienta a tu trabajo.

 

magazine.image = http://es.scoda.okfn.org/files/2017/01/image07.png

 

1 respuesta a Puedes usar minería de texto y “Machine Learning” sin programación

  1. Buen aporte, pero no puedes adjuntar la BBDD para hacer la prueba?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *