El procesamiento de lenguajes naturales — abreviado PLN, o NLP del idioma inglés Natural Language Processing — , es un campo de las ciencias de la computación, inteligencia artificial y lingüística que estudia las interacciones entre las computadoras y el lenguaje humano.
El PLN se ocupa de la formulación e investigación de mecanismos eficaces computacionalmente para la comunicación entre personas y máquinas por medio de lenguajes naturales. El PLN no trata de la comunicación por medio de lenguajes naturales de una forma abstracta, sino de diseñar mecanismos para comunicarse que sean eficaces computacionalmente — que se puedan realizar por medio de programas que ejecuten o simulen la comunicación — .
Los modelos aplicados se enfocan no solo a la comprensión del lenguaje de por sí, sino a aspectos generales cognitivos humanos y a la organización de la memoria. (Wikipedia)
El nivel de inteligencia de un ser humano se evalúa mediante IQ (cociente de inteligencia).
Si bien puede haber muchas maneras de evaluar el nivel de inteligencia de un Chatbots, uno de los aspectos más críticos es la capacidad de llevar a cabo conversaciones contextuales, atractivas y comprensibles con los seres humanos. Vaya desafío!
Para lograrlo se usan 3 tecnologías de las cuales platicaremos una a la vez, estas tecnologías son:
- NLP: Procesamiento de lenguaje natural (Natural Language Processing)
- NLU: Comprensión del lenguaje natural (Natural Language Understanding)
- NLG: Generación de lenguaje natural (Natural Language Generation)
Iniciaremos en el orden en que están, así que este primer artículo hablaremos del Procesamiento de lenguaje natural (NLP: Natural Language Processing). Esta es la más conocida. Se trata del procesamiento de mensajes de texto enviado por un usuario, dividiéndolos en partes, agregando elementos gramaticales e identificando elementos interesantes. Los siguientes son algunos de los elementos comunes del procesamiento en NLP:
- Tokenización: Esta divide un mensaje en oraciones y una oración en palabras.
- Normalización: Pone todas las palabras en igualdad, por ejemplo; convirtiendo todas las palabras de mayúsculas o minúsculas.
- Detener la eliminación de palabras: La remoción de palabras ocurren con frecuencia con artículos como ‘the’, ‘and’, ‘a’, etc., que no contribuyen en gran medida a entender el texto y, por lo tanto, pueden eliminarse.
- Stemming: Elimina los afijos de las palabras para obtener la raíz de la palabra, por ejemplo; liking -> like
- Lematización: similar a la anterior, pero puede obtener la forma canónica de una palabra en función de su lema, por ejemplo; better > good.
- Etiquetado POS — se le ha llamado también etiquetado de partes del discurso y asigna etiquetas para sustantivos, pronombres, verbos, adjetivos, adverbios, etc.
- Bolsa de palabras: Una oración se considera como un conjunto de palabras sin tener en cuenta la gramática y el orden de las palabras.
- N-gramas: Son una secuencia continua de palabras adyacentes en una oración, necesarias para obtener el significado correctamente, por ejemplo: ‘Machine learning’ es un bi-grama.
- TF: Llamada frecuencia de término y se calcula por el número de veces que aparece una palabra en un mensaje o una oración, para indicar la importancia de esa palabra.
- Reconocimiento de entidades nombradas: Identificar y etiquetar palabras que representan entidades de palabras reales, como personas, organizaciones, lugares, fechas, etc.
Tenga en cuenta que la precisión de lo anterior depende de los documentos de texto que se utilizaron para el aprendizaje automático de máquina y modelos estadísticos para PNL (Programación neuro-lingüística). Por lo tanto, un modelo entrenado con artículos de Wikipedia vs entrenado con mensajes de Twitter dará resultados diferentes.
Dependiendo del tipo de problema que necesita resolverse usando NLP, se puede identificar un conjunto de datos de entrenamiento apropiado para capacitar a un modelo o se debe identificar un modelo pre-entrenado que utiliza un conjunto de datos similar. Además, un modelo entrenado con texto en inglés no puede usarse para procesar otro texto complejo de lenguaje de caracteres, el modelo es específico del idioma en el que se ha formado.
Algunas de las herramientas destacadas para NLP incluyen Spacy, Stanford NLP y NLTK.
Fuente: Engati: Bot innovation.