NLP o NLU: cómo elegir la mejor opción para tu proyecto

En una publicación anterior hablamos de cómo las organizaciones pueden beneficiarse del aprendizaje automático, especialmente del procesamiento del lenguaje natural, sin una gran inversión. Ahora profundizaremos en el procesamiento del lenguaje natural (NLP), explicaremos sus diferencias con la comprensión del lenguaje natural (NLU) y daremos consejos para elegir la mejor solución para tu empresa.
NLP frente a NLU
Como explicamos en una publicación reciente, NLP es una rama de la inteligencia artificial que se centra en procesar el lenguaje natural, humano. Sin embargo, aún no discutimos qué significa exactamente «procesamiento del lenguaje natural». Hablemos un poco de ello.
Como su nombre indica, NLP se centra en procesar el lenguaje natural. La definición no aclara qué nivel de procesamiento puedes aplicar. Una oración puede analizarse desde distintas perspectivas lingüísticas: sintáctica, gramatical y semántica, entre otras. De igual manera, NLP puede ejecutar procesos a distintos niveles. Algunas tareas que muestran este rango son:
-
Reconocimiento de entidades nombradas (NER)
-
Etiquetado de categorías gramaticales (POS tagging)
-
Análisis sintáctico
-
Análisis estructural semántico
-
Respuesta a preguntas
-
Análisis semántico
-
Resumen automático
Las tres primeras tareas de la lista, NER, POS tagging y análisis sintáctico, son procesos sintácticos; las cuatro últimas son semánticos. La complejidad y los mecanismos necesarios varían. Los problemas sintácticos son más fáciles de resolver y hay muchos mecanismos y algoritmos, algunos bastante antiguos, para abordarlos. La mayoría es fácil de definir y puede implementarse una solución aceptable sin aprendizaje automático.
Los problemas semánticos, en cambio, son más complejos. Definir conceptos semánticos no es trivial y suele haber discrepancias entre las personas. Además, resolver un problema semántico implica entender el significado de una oración. Para los humanos parece sencillo, pero para una computadora es muy complejo. Intentar resolverlo sin algoritmos de aprendizaje automático suele dar resultados deficientes en precisión o exhaustividad.
Ahora que definimos el alcance de NLP y la diversidad de sus problemas, podemos explicar la comprensión del lenguaje natural (NLU). Es una subrama de NLP que incluye todos los algoritmos que intentan comprender el lenguaje natural. Aquí «comprender» se refiere al significado semántico del lenguaje.
Comprender el lenguaje natural es distinto de procesarlo. Volviendo a los ejemplos anteriores, la mayoría de los problemas sintácticos puede resolverse con algoritmos NLP sin técnicas NLU. Hay algoritmos que resuelven POS tagging con un rendimiento aceptable sin considerar el significado semántico; por ejemplo, el paquete NLTK. Una solución semántica quizá logre mejores resultados, pero el problema puede resolverse sin ella.
Los problemas semánticos se ajustan mejor a NLU porque los conceptos de «comprensión» y «semántica» son similares. A veces esta similitud lleva a suponer que todos los algoritmos NLP que resuelven problemas semánticos usan NLU. Es incorrecto: comprender un lenguaje implica más que resolver un problema semántico. NLU requiere una solución que comprenda la semántica y pueda generalizar. Debe entender una situación nunca vista y dar los resultados esperados.
Usemos un ejemplo para explicar la diferencia. Imagina un algoritmo de análisis de sentimientos: dada una oración, devuelve Positivo o Negativo según su sentimiento. Es claramente una tarea semántica. Imagina que quieres aplicarlo a un ámbito bien definido, como reseñas de películas. Una posible solución sería descargar un corpus de reseñas y entrenar una red neuronal para detectar el sentimiento de la oración.
Esta solución es un algoritmo NLP que resuelve un problema semántico. Pero ¿qué ocurre si la entrada es «Hoy es lunes»? La oración no tiene ningún sentimiento y probablemente el algoritmo nunca la vio, ya que se entrenó con reseñas de películas. Seguramente devolverá Positivo o Negativo, cuando lo esperado sería «Esta oración no tiene un sentimiento» o «No estoy entrenado para procesar este tipo de oración».
Con un enfoque NLU, en lugar de entrenar el modelo solo con reseñas, usamos más datos, como un corpus de Wikipedia. Probablemente el modelo detectará que la oración no contiene información de sentimientos y dará el resultado esperado.
Si NLU generaliza mejor que NLP tradicional en algunas tareas semánticas, ¿por qué no lo usamos siempre? Hay dos razones principales. Primero, entrenar un algoritmo que procese NLU eficientemente es complejo y requiere muchos datos. Los idiomas son muy complejos y evolucionan continuamente: aparecen palabras y expresiones nuevas. Mantener actualizado un algoritmo NLU exige reentrenarlo periódicamente. Segundo, una mejor generalización suele implicar menor precisión. En el ejemplo anterior, el primer enfoque, entrenado solo con reseñas de películas, probablemente obtendrá mejores resultados con una reseña nueva que el enfoque NLU.
Cómo elegir la mejor opción
Ahora que definimos los problemas NLP que podemos procesar y explicamos brevemente NLU, la siguiente pregunta es cómo elegir la mejor opción para tu empresa. Estos consejos pueden ayudarte.
Comprueba si NLU es un enfoque válido para tu negocio.
Como mencionamos, NLP incluye muchas subramas. NLU es muy útil para problemas semánticos. Antes de pensar cómo aplicarlo, entiende qué tipo de problema tienes: ¿es semántico o sintáctico?
Analiza qué métrica importa más para tu negocio: generalización o precisión/exhaustividad.
Como vimos, las soluciones NLU suelen generalizar muy bien, pero sacrifican precisión/exhaustividad. Antes de elegir una estrategia, es esencial definir qué importa más.
Analiza las características de los datos de entrada.
Si provienen de una fuente conocida y siempre tienen cierto estilo, quizá no necesites generalización ni NLU. Si son diversos, NLU posiblemente sea el mejor enfoque.
Determina si un enfoque NLU es viable.
Debes definir este punto antes de implementar algo. A veces NLU es imposible porque no tienes suficientes datos para entrenar el modelo. Por ejemplo, si trabajas con un idioma poco extendido o en un campo como medicina o transporte que usa terminología muy específica, quizá NLU no pueda procesarlo.
NLP y NLU son campos fascinantes que ofrecen grandes oportunidades para crear soluciones innovadoras y competitivas. Esperamos que esta publicación te ayude a comprender sus diferencias clave e identificar las preguntas importantes que debes responder antes de implementar NLP o NLU en tu producto.