
Todos recordamos la película de Her de ciencia ficción protagonizada por Joaquin Phoenix caracterizando a Theodor, en la cual un nuevo sistema operativo basado en Inteligencia Artificial se nombra a sí misma como Samantha y a través de la cinta se logra hacer un vínculo emocional que solo logra comprender el humano. Es evidente el papel del Procesamiento Natural de Lenguaje, para que Samantha pueda aprender de los deseos, sentimientos, gustos y apoyar de manera directa en el trabajo del protagonista en la redacción de cartas, dando por hecho al inicio un aprendizaje supervisado basado en la comunicación con el lenguaje humano.
NLP por sus siglas en Inglés (Natural Language Processing) es un campo interdisciplinario que pertenece a la Inteligencia Artificial, en donde el objetivo es que “los ordenadores tengan la capacidad de realizar tareas útiles a través del entendimiento, interpretación y manipulación del lenguaje humano”.
Algunas tareas comunes son:
- Normalización de texto a través de técnicas como Tokenization y Stemming
- Extraer información útil de textos no estructurados
- Análisis de sentimientos
- Comprender el significado de un texto
- Transcripcion y traduccion automatica
- Resumir el contenido de varios artículos en un tema determinado
NLP es un importante componente en un rango grande de aplicaciones de software que usamos a diario, algunas de estas son:
- Plataformas de e-mail: Gmail, Outlook, etc. en donde su aplicación va desde la clasificación de spam, prioridad de bandeja de entrada, extracción de eventos por calendario y el más evidente el autocompletado de texto.
- Asistentes de voz: Siri de Google Assistant, Cortana de Microsoft y Alexa de Amazon, su aplicación está compuesta principalmente con la interacción del usuario para la comprensión de comandos o respuestas coherentes.
- Motores de búsqueda: como Google o Bing, en donde el NLP comprende tareas, expansión de búsquedas, despliegue de información de acuerdo a la búsqueda, ranking y agrupaciones de resultados.
- Servicios de traducción: Google Translate, Bing de Microsoft y últimamente creciendo Amazon Translate.
Para entrar en contexto es importante ver la relación con el Lenguaje; que en el libro “Practical Natural Language Processing” escrito por Bodhisattawa Majumer, Anuj Gupta y Harshit Surana, lo definen como “un sistema estructurado de comunicación que involucra complejas combinaciones de sus componentes, como son caracteres, palabras, oraciones, etc.” y define a la Lingüística como un “estudio sistemático del lenguaje”.
El lenguaje humano puede estar compuesto de cuatro bloques principalmente: fonemas, morfemas y lexemas, sintaxis y finalmente contexto.
El NLP es una disciplina cada vez más grande y con un aumento de demanda de especialistas en sus ramas, es importante conocer los enfoques dentro del NLP que son clasificados comúnmente en tres categorías: NLP a través de la Heurística, Machine Learning y Deep Learning, cada una con algoritmos diferentes y desarrollados para aplicaciones en distintos problemas.
Es difícil escribir de NLP en tan solo un post, así que trataré de dar un punto de vista general de este campo, las características que considero son importantes para tener una mejor visión y quedará a la creatividad del lector de qué manera considera reforzar este contenido. Ahora veremos un pipeline genérico de NLP, importante para mejorar la certeza en su aplicación.
El primer estado en el proceso es la recolección o adquisición de datos entorno a una tarea. Independientemente si estamos creando un sistema basado en reglas, necesitaremos datos para diseñar y probar nuestras reglas. El segundo estado es la limpieza , a menudo los textos tienen muchas variaciones y deben convertirse en una forma canónica. Esto se hace en el estado del Pre-procesamiento. El cuarto estado es Feature Engineering , en donde elaboramos los indicadores más adecuados para la tarea. Estos indicadores se convierten a un formato comprensible mediante algoritmos. Luego viene la fase de modelado y evaluación, donde construimos uno o más modelos, los comparamos y contrastamos usando una métrica de evaluación relevante. Una vez que se elige el mejor modelo entre los evaluados, avanzamos hacia la implementación o despliegue de este modelo en producción. Por último, supervisamos periódicamente el rendimiento del modelo y, si es necesario, lo actualizamos para mantener su rendimiento.
Uno de los retos principales en la técnica del NLP es el tratamiento de ambigüedades, las cuales las podemos categorizar en cuatro: Ambigüedad acústica, ambigüedad de semántica, ambigüedad de sintaxis y ambigüedad de discurso, cada una con métodos diferentes para su manipulación. Tendría que seguir la redacción de este post para tratar brevemente cada una de ellas, lamentablemente el espacio ha sido pequeño.
NLP no solo aborda problemas de reconocimiento de voz, asistencia, chatbots, búsqueda y traducción; su aplicación también se desarrolla en áreas como la robótica, IoT, seguridad y análisis de lenguas antiguas por mencionar algunas. Es un campo con muchos pioneros que cada día trabajan y se esfuerzan para mejorar los algoritmos y técnicas para que la ayuda llegue a los sectores más vulnerables como el de la Salud. Debemos dejar que esta maquinaria crezca tanto como pueda en beneficio de nuestra especie y que permita la autocritica de nuestra lengua y comunicación. Porque la expresión es y seguirá siendo un pilar que hace única a nuestra especie con la cual podemos romper las barreras de la ignorancia y la desinformación.
«A language is not just words. It’s a culture, a tradition,
a unification of a community,
a whole history that creates what a community is.
It’s all embodied in a language.»
-Noam Chomsky-
Escrito por Irving Ariel
Majumer B.,Gupta A. & Surana H.. (2020). Foundations. En Practical Natural Language Processing: A Comprehensive Guide to Building Real-World NLP Systems(pp. 57-120). United States of America: O’Reilly Media, Inc.