Muy probablemente estés leyendo esto después de haber enviado uno de los 306.000 millones de correos o uno de los 500 millones de tweets que se escriben todos los días. Sea como fuere, las palabras son un gran trocito de queso en la gran tarta de los datos.
Pero ¿Cómo podemos explotar estos datos? Es aquí donde intervienen el Machine Learning y el Natural Language Processing. ¿Qué pueden hacer por nosotros? Podríamos dividir el campo de NLP en cuatro: extracción de información, motores de búsqueda, sistemas de diálogo y aplicaciones de alto nivel. Muy bien, pero ¿en la práctica, como beneficia eso a mi empresa? Esta es la pregunta del millón a la cual, un perfil enfocado al área técnico-negocio sabe dar una buena respuesta. Estos perfiles son raros de encontrar, pero vamos a dar claridad al tema con algunos ejemplos.
Empecemos con la extracción de información. Seguro que tienes facturas de las cuales quieres extraer el total, el número de factura, NIF … O de un documento quieres extraer fechas, DNIs, entidades (personas, lugares…). Esta información la extraemos con técnicas como ReGex (expresiones regulares), NER (Name Entity Recognition), KVPs (Key-Value Pairs) o QA (Question Answering). Con esto podemos crear aplicaciones que nos reduzcan el tiempo de explotar manualmente estos documentos, correos, facturas, formularios… Y almacenar esta información en nuestras bases de datos para que posteriormente sea utilizada en otras áreas de la empresa, nos actualice información de los clientes o nos genere informes o estadísticas. Herramientas para tratar con estas técnicas (y más) tenemos spaCy, HuggingFace, TheFuzz entre otras.
Pero ¿Cómo podemos explotar estos datos? Es aquí donde intervienen el Machine Learning y el Natural Language Processing
Todos esos documentos, correos, facturas, los queremos almacenar para consultas futuras. Aquí es donde entran los motores de búsqueda. El motor de búsqueda más conocido y usado en el mundo es el propio Google. Pero si queremos hacer algo similar, no es necesario invertir el mismo capital, existen herramientas como ElasticSearch disponibles para todo el mundo. Las técnicas mencionadas previamente, son ideales para alimentar estos sistemas. Pero ¿Qué podemos hacer con estas herramientas? Por ejemplo, podríamos crearnos nuestro “Google” interno para buscar documentos donde se menciona un cliente. Si guardásemos a clientes o potenciales clientes, podríamos consultar los clientes más factibles para nuestra búsqueda. Incluso si trabajamos con datos geoespaciales, podemos buscar resultados dado un polígono de búsqueda. Aquí buscamos agilizar y facilitar el trabajo para que mientras el ordenador busca el expediente no tengas que ir a por un café.
Alexa, Siri, asistente de Google, Cortana… Son los sistemas de diálogo más conocidos y como usuarios, los que más podemos encontrar a nuestro alrededor. El objetivo de estas tecnologías es simplificar la interacción persona-máquina. Como es de esperar, para una empresa media, producir algo similar es una tarea muy difícil, pero las mismas empresas que los disponen tienen servicios en la nube que proporcionan el uso de estas tecnologías para tu empresa. Incluso existen alternativas, herramientas Open Source como RASA para crear chatbots los cuales puedes adaptar a tus necesidades. El ejemplo clásico de la utilización de chatbots es dar una asistencia a tus clientes. Un ejemplo menos visto es el inverso, un chatbot para dar asistencia de forma interna a la empresa. Imaginad una empresa con una temporalidad o una rotación alta de personal, la inversión en formación es bastante alta. Esa inversión se podría palear con un chatbot al cual el nuevo empleado puede hacerle preguntas para encontrar las metodologías, las normas de la empresa, los procedimientos internos, ayudar a corregir errores o problemas recurrentes…
Por último, hay que mencionar las aplicaciones de alto nivel. Aquí observamos soluciones más próximas al ML y tenemos una gran variedad: clasificar documentos, agruparlos por similitud, generar resúmenes, traducciones a otros idiomas, traducciones a lenguajes de programación… Podríamos decir que esta serie de técnicas son un poco más genéricas y las enfocas para tu solución. Aquí estamos hablando de soluciones donde te llegan muchos documentos por correo, formularios de registro, formularios de bajas, facturas… Pero cada uno de esos documentos debe ser tratado por diferentes áreas de tu empresa, se trata de un problema típico de clasificación de documentos o incluso de los propios correos. Tienes redes sociales y quieres hacer un análisis de los comentarios de la gente, puedes tomar el camino de la agrupación por similitud para observar y analizar los distintos tipos de comentarios. Como aquí ya estamos trabajando más en el ámbito de ML, las herramientas que suelen usarse son Scikit-learn, TensorFlow, PyTorch, NLTK, Gensim, StandfordNLP. Incluso herramientas mencionadas con anterioridad como spaCy o HuggingFace también pueden utilizarse.
Finalmente, me gustaría comentar que la IA está en un buen estado para ser llevada a producción. Pero hay que saber analizar el problema original, tener los conocimientos para saber aterrizar la idea y tener conocimientos del negocio para poder calcular los costes e impacto de este tipo de soluciones.