Procesamiento del lenguaje natural
El lenguaje natural se refiere al lenguaje humano, como el inglés, el español y el japonés, los mismos idiomas que hablamos a diario. El procesamiento del lenguaje natural (NLP por sus siglas en inglés,) es el campo de la informática y la inteligencia artificial que se encarga de analizar toda la información del lenguaje natural enviada por los humanos para interactuar con las máquinas.
Hay muchas maneras en que los humanos pueden comunicarse con las máquinas, desde mensajes de texto y otros documentos escritos hasta grabaciones de audio y mucho más. Sin embargo, el proceso de leer y comprender estos mensajes es mucho más complejo de lo que parece al principio. Se puede tomar esta frase, por ejemplo:
“¡Alex estaba en llamas! Él arrasó en el escenario"
Para un humano, es probable que sea bastante obvio lo que significa esta oración. Podemos descubrir que Alex puede ser algún tipo de artista, probablemente un músico. Cuando vemos "en llamas" y "arrasó", sabemos que significa que tocó muy bien en el escenario.
Sin embargo, las computadoras tienden a tomar las cosas más literalmente.
Una computadora vería la palabra "Alex" y basándose en el uso de mayúsculas, asumirá que es una persona o un lugar. Luego se leería que Alex "estaba en llamas" y supondría que Alex está literalmente en llamas y literalmente destruyendo un escenario. Este es un error común que sólo puede resolverse con el aprendizaje automático, que consiste en proporcionar a la aplicación de inteligencia artificial (AI) diferentes ejemplos para comparar y comprender el lenguaje natural. Esto se llama procesamiento de lenguaje natural.
iOS y el Procesamiento de lenguaje natural
Con iOS, hay muchas herramientas que utilizan el lenguaje natural para interactuar con el usuario, por ejemplo, Alexa de Amazon, Siri de Apple o el flujo de diálogo de Google.
Todas estas herramientas tienen el mismo objetivo: ayudar a las máquinas informáticas a comunicarse con el usuario utilizando un lenguaje humano natural.
Si esto se hace correctamente, podemos crear aplicaciones que ayuden a automatizar los servicios y brindar respuestas inmediatas a los problemas de los clientes, consultas, solicitudes de pedidos y más.
Extracción de la información
Cuando se está creando una aplicación de NLP para un dispositivo o servicio, es necesario enfocarse en qué tipo de problema resolverá la aplicación, luego qué tipo de información requiere la aplicación para resolver ese problema y luego cómo va a interactuar la aplicación con el usuario para obtener esta información.
Como ejemplo, si se crea una aplicación de servicio al cliente y una de sus funciones es proporcionarle al usuario los servicios programados que se brindan, el usuario debe poder
enviar mensajes de texto que contengan información sobre lo que le solicitan a la aplicación, por ejemplo:
1) ¿A qué hora se cierra?
2) ¿A qué hora se abre?
3) ¿Cuál es el horario de sus servicios?
Como se puede ver, todos estos mensajes tienen solicitudes similares, pero con estructuras diferentes. El trabajo de NLP es almacenar y analizar el mensaje, para identificar cuáles son las diferentes palabras o frases que las personas podrían decir para señalar su objetivo e intención. En este ejemplo, las palabras clave pueden ser: abrir, cerrar u horas de servicio. La aplicación luego procederá a crear una respuesta adecuada que utilice correctamente el lenguaje natural y satisfaga la solicitud del usuario.
Cuando estamos creando una aplicación de NLP, debemos recordar que hablamos con una conversación humana y natural que no es perfecta. Si la aplicación que se está creando no puede identificar la solicitud, se le debe dar a los usuarios la oportunidad de corregir errores o cambiar sus respuestas. De esta manera, se mejora la capacidad de la aplicación para manejar estas excepciones.
Siempre es mejor decir: “No conozco la respuesta a eso”, que fingir y dar una respuesta incorrecta.
¿Por qué implementar el procesamiento de lenguaje natural en iOS?
Con compañías que continúan confiando en el almacenamiento y procesamiento de big data, los iPhones y tabletas son una de las formas más comunes de enviar información, por lo tanto, tener una aplicación de NLP que permita la interpretación y análisis de todo este texto sin estructura alguna, es una herramienta poderosa para cualquier empresa. Al existir tanta información almacenada en archivos de texto no estructurados, como por ejemplo registros médicos, informes de proyectos e inventarios de productos, el lenguaje natural puede analizar todos estos datos y proporcionar información sobre el contexto, las intenciones del usuario e incluso sentimientos.
Más allá de poder analizar el texto hablado y escrito, la NLP se ha convertido en el motor de los robots en Slack, Skype y Facebook con los que casi se puede tener una conversación humana completa. Si se accede al sitio web de soporte de Apple y se solicita hablar con el servicio de atención al cliente, se le presentará un bot web que intentará orientarlo en la dirección correcta, según la pregunta que haya formulado; ayudando a los clientes a sentirse entendidos en tiempo real, sin necesidad de hablar con los recursos de la empresa directamente y sin quitarle mucho de su tiempo al usuario.
iOS y Microsoft Azure
Microsoft Azure es una herramienta poderosa que ofrece muchos servicios como bases de datos SQL, servicios de aplicaciones y almacenamiento de información. Con estos servicios, se ahorran recursos en hardware y software para su aplicación, sin embargo, la pregunta más importante es: "¿Cómo pueden estos servicios ayudar a su aplicación iOS?"
Servicios de back-end móvil
Azure le da la opción de crear código en el idioma de desarrollo de su elección e implementarlo en el servicio de aplicaciones de Azure. Con esto, tiene la opción de manejar todo el análisis de información recopilado por la aplicación con una respuesta rápida, creando diferentes escenarios y sin necesidad de servidor.
Desarrollo móvil multiplataforma
Al contar con el respaldo de su aplicación en los servicios de aplicaciones de Azure, tiene la capacidad de interactuar con las aplicaciones de iOS y Android. Además, con toda la lógica de su aplicación en un solo lugar se brinda la oportunidad de diseñar interfaces más simples para iOS y Android. De esta manera, solo se necesita recopilar información del usuario y enviarla al back-end para que Azure pueda analizar y decidir qué hacer con ella según la intención del usuario.
Almacenamiento
Dondequiera que estén sus datos, Microsoft Azure ofrece diferentes opciones para manejarlos y almacenarlos, lo cual le ayuda a trabajar con aplicaciones de NLP que necesitan almacenar grandes cantidades de información. Microsoft Azure también brinda la oportunidad de guardar la información en bases de datos de almacenamiento de tablas, SQL y NoSQL, brindando diferentes opciones para manejar la información de su aplicación.
¿Es Microsoft Azure una opción viable para apoyar su aplicación de NLP?
La respuesta a esta pregunta depende de qué tipo de aplicación está desarrollando.
Para muchas aplicaciones de procesamiento de lenguaje natural, Azure ofrece una gran cantidad de herramientas para almacenar, analizar y organizar la información obtenida de su aplicación de NLP de una manera muy simple y eficiente.
Referencias
[1] Microsoft
Microsoft Azure, General services documentation
https://azure.microsoft.com/en-us/services/ Azure Services documentation
[2] Doron Katz
Get Started With Natural Language Processing in iOS 11
https://code.tutsplus.com/tutorials/getting-started-with-natural-language-processing-in-ios-11–cms-30091.
Created: 20 Dec 2017
[3] Dr. Michael J. Garbade
A Simple Introduction to Natural Language Processing
https://becominghuman.ai/a-simple-introduction-to-natural-language-processing-ea66a174732.
Creado: Oct 15, 2018