Si tiene un teléfono inteligente en su cartera o en su bolsillo, y tiene conexión a Internet, ya puede usar o quizás ya esté usando el Procesamiento de Lenguaje Natural, o Natural Language Processing (NLP) en inglés. Esta es una de las áreas de la Inteligencia Artificial que se está investigando más activamente en estos días y que está teniendo cada día más aplicaciones prácticas.
Definiendo el NLP
Básicamente procesar el lenguaje natural es lo que usted está haciendo mientras lee este artículo. Para ello sus ojos reciben la luz que emana de la pantalla que está mirando, el nervio óptico envía esta información a las áreas de procesamiento visual del cerebro, que la reenvían luego a las áreas de reconocimiento de objetos. Una vez identificadas como letras, se pasan a la zona de procesamiento del lenguaje, localizada en el hemisferio izquierdo del cerebro, unos centímetros más arriba de la oreja izquierda más o menos. En esa zona, por mecanismos que no se conocen bien actualmente, las letras que está leyendo cobran sentido para usted y se relacionan con las ideas que vehiculan.
Bueno, una computadora debe lograr un proceso similar, pero sin cerebro y usando mecanismos que debemos inventarnos nosotros. Dado que el lenguaje es un fenómeno muy complejo, que no sigue reglas estáticas, que está lleno de contrasentidos, dobles sentidos, ironía, sinónimos, formas diferentes de expresar una misma idea, que transmite estados de ánimo, que varía de una región geográfica a la otra, y que hay miles de idiomas, es muy difícil procesarlo, y más por una máquina descerebrada.
Pasando de palabras a números
Para analizar el lenguaje – limitémonos al escrito, para no introducir más complejidad – los algoritmos de NLP toman un texto y lo procesan. Para esto se usan diccionarios y reglas gramaticales, que permiten extraer las raíces de las palabras, como los verbos sin conjugar, o los adjetivos sin género ni número.
Luego de tener el texto “al desnudo”, las palabras o frases enteras se convierten en expresiones numéricas, que son las que se pueden trabajar con las máquinas.
Pero todo este proceso de llevar palabras a números todavía no permite entender un texto. Estamos en el equivalente de cuando el cerebro identificó que lo que veía eran letras y lo mandó al área de Wernicke, que es la que procesa el lenguaje. Falta la parte más compleja de todas, que es hallarle un sentido a esas palabras y tomar decisiones al respecto, como hacer una traducción, o dar una respuesta en un chatbot.
Dándoles un “cerebro” a las máquinas para procesar el lenguaje
A falta de los 1,400 gramos más o menos de masa arrugadita, blandita y como rosadita que llevamos dentro del cráneo y que hace el milagro del pensamiento, las máquinas necesitan buscar un mecanismo complejo para poder comprender el habla y la escritura humanas. Hasta hace muy poco tiempo todos los intentos de procesar el lenguaje con computadoras habían fracasado. Pero con la llegada de la Inteligencia Artificial todo esto cambió, y hoy en día una máquina puede comprender y producir lenguajes, todavía muy lejos de lo que somos capaces nosotros, pero avanzando más cada día.
El factor más relevante para que se produjera el salto a la comprensión del lenguaje por las computadoras lo permitió el desarrollo de los modelos de aprendizaje profundo, o Deep Learning en
inglés. Este tipo de algoritmo se base en lo que se conoce como redes neuronales, que intentan imitar el funcionamiento de las neuronas en el cerebro. Existen muchos tipos de modelos de Deep Learning, desde los más sencillos, como el Feed Forward Neural Network, que consiste en un mínimo de dos capas de nodos, una de entrada y otra de salida, y que puede llegar a tener decenas de capas intermedias, hasta modelos ultra complejos de aprendizaje reforzado, o Reinforcement Learning en inglés, que fue el que usó AlphaGo para vencer al campeón del juego Go en 2015.
Para el procesamiento del lenguaje la variante de modelo de Deep Learning que más se está aplicando actualmente es la conocida como Recurrent Neural Networks (RNN), que son una modalidad de redes neuronales con memoria incluida. Sin entrar en detalles técnicos, porque los RNN no son un tema sencillo de explicar a los no especialistas, la idea es que para comprender una frase no basta con analizarla palabra por palabra, porque varias combinaciones de un mismo grupo de palabras pueden significar cosas diferentes. El RNN permite precisamente esto, tomar una palabra y analizarla en el contexto de las palabras que la preceden o que la suceden, y encontrarle sentido a la frase completa.
Los modelos más avanzados de NLP utilizan algoritmos de Deep Learning con múltiples capas intermedias de procesamiento. Para tener una idea de la complejidad de estos modelos, uno de estos
algoritmos de punta puede llegar a tardar semanas en entrenarse con una base de datos de millones de frases.
Aplicaciones del NLP
Los asistentes de Google, Amazon, Microsoft y Apple son los ejemplos más conocidos de los avances en esta área. Estas aplicaciones van mejorando con cada interacción con sus usuarios, que ya son millones en todo el mundo. Otros ejemplos de uso del NLP son los chatbots, que cada día hay más en el Internet, y que también están mejorando con cada interacción que realizan. La traducción automática es otra de las aplicaciones que más ha evolucionado dentro del procesamiento del lenguaje, y los que llevamos años utilizando Google Translate hemos sido testigos de los avances impresionantes que ha hecho este servicio.
Pero hay otra serie de aplicaciones del NLP que son menos conocidas, porque son usadas por las empresas y el público no está expuesto a ellas. Una de ellas es análisis de sentimientos, o Sentiment Analysis en inglés, que consiste en analizar comentarios de los clientes en redes sociales, o conversaciones telefónicas, comentarios de productos en tiendas online, etc. para identificar el estado de ánimo de los mismos. Esto les permite a las empresas reaccionar rápidamente ante un problema que está causando irritación entre sus usuarios, medir el impacto de campañas de comunicación, y muchas aplicaciones más. También se puede aplicar el NLP para transcribir voz a texto (Speech to Text en inglés), lo cual permite verificar en tiempo real la calidad de las llamadas de los representantes de servicio al cliente, por ejemplo.
El procesamiento del lenguaje natural es, como se dijo al inicio, una de las áreas de mayor avance dentro de la Inteligencia Artificial. Para los que se interesan en esta ciencia las oportunidades son
enormes hoy en día, tanto de aplicar las técnicas existentes como de contribuir al avance del NLP.