# Interfaz de usuario de lenguaje natural

Interfaces de Usuario de Lenguaje Natural son un tipo de interfaz de usuario que permite la comunicación entre humanos y máquinas, donde los fenómenos lingüísticos, como los verbos, frases y cláusulas actúan como controles de la interfaz de usuario para crear, seleccionar y modificar datos en las aplicaciones de software.
En el diseño de la interfaz de lenguaje natural las interfaces son buscadas por su velocidad y facilidad de uso, pero además hay factores como la comprensión, que añaden una dificultad significativa, ya que podemos encontrar entradas ambiguas en el sistema.
Las interfaces de lenguaje natural componen un área activa de estudio en el campo del procesamiento del lenguaje natural y la lingüística computacional. Una intuitiva interfaz de lenguaje natural en general es uno de los grandes objetivos activos de la Web Semántica.
Es importante tener en cuenta que las interfaces de texto son "naturales" en diversos grados, y que muchos lenguajes de programación formal (no natural) incorporan idiomas de lenguaje natural humano. Del mismo modo, un motor tradicional de búsqueda de palabras clave podría ser descrito como una interfaz de usuario de la lengua natural “superficial”.

## Descripción

Un motor de búsqueda de lenguaje natural, en teoría, debería encontrar respuestas a preguntas específicas del usuario (en lugar de buscar por las palabras claves contenidas en la pregunta). Por ejemplo, cuando se realiza una pregunta como por ejemplo "Que Estado de EE.UU., tiene el impuesto de renta más alto?", Los motores de búsqueda convencionales ignoran el problema y realizan una búsqueda con las palabras clave ' Estado, renta e impuesto ". La búsqueda en lenguaje natural, por otro lado, intenta utilizar el procesamiento del lenguaje natural para comprender la naturaleza de la pregunta y luego busca y devuelve un subconjunto web que contiene la respuesta a la pregunta. Si funciona, los resultados tendrían una relevancia mayor que los resultados de un motor de búsqueda por palabra clave. Desde un punto de vista comercial, la publicidad en la página de resultados también podría ser más relevante y podría tener un potencial de ingresos más alto que el de los motores de búsqueda por palabra clave.

## Historia

A lo largo de la historia los lenguajes naturales han ido evolucionando, de forma paralela al desarrollo y evolución de la especie humana. En los últimos años, las aplicaciones diseñadas han intentado promover la comunicación entre humanos y máquinas por lo que se han incluido técnicas de reconocimiento de voz. Hoy en día el campo del reconocimiento de lenguaje natural está trabajando para mejorar los resultados, superando las diferentes dificultades que se comentan más adelante.
Los primeros contactos con la interfaz de usuario de lenguaje natural datan de los años sesenta y setenta de la mano del prototipo NI.
* Lunar, una interfaz de lenguaje natural en conexión a una base de datos con análisis químicos de las rocas lunares de Apolo-11 por William A. Woods.
* Chat-80, transforma preguntas en inglés en expresiones Prolog, las cuales fueron evaluados en relación con la base de datos Prolog. El código de la charla-80 fue ampliamente difundido, y formó la base de muchas otras interfaces experimentales Nl.
* Janus, es también uno de los pocos sistemas de apoyo a las cuestiones temporales.
* Intellect de Trinzic (formado por la fusión de AICorp y Aion).
* Bbn’s Parlance construido sobre la experiencia del desarrollo de los sistemas Rus e Irus .
* IBM Languageaccess
* Datatalker de Natural Language Inc.
* Loqui de Bim.
* English Wizard de Linguistic Technology Corporation.

## Procesado y reconocimiento del Lenguaje Natural
### Dificultades del reconocimiento

Los sistemas de reconocimiento se puede dividir en dos tipos principales. Sistemas de reconocimiento de patrones entrenados, éste compara los patrones con otros patrones ya conocidos y clasificados para determinar la similitud y por tanto el reconocimiento. Y por otro lado tenemos los Sistemas fonéticos que utilizan el conocimiento del cuerpo humano (la producción del habla y audición) para comparar las características del lenguaje (fonética, tales como sonidos de las vocales). Los sistemas más modernos se centran en el enfoque de reconocimiento de patrones, ya que combina muy bien con las técnicas de computación actual y tiende a tener una mayor
Aun así existen una serie de factores que dificultan estos procesos, ya que influyen en el tratado de la señal y por tanto en el reconocimiento. Algunos de ellos son los siguientes:
* La variación fonética inter-locutor e intra-locutor: La variación inter-locutor, da lugar a que cuando se está emitiendo una secuencia concreta de palabras, con el mismo estilo de habla, y sin diferencias geográficas o sociales, aun así existan variaciones en el lenguaje. Por otro lado la variación intra-locutor, estudia qué cambia en cada persona cuando habla espontáneamente o cuando lee.
* Los estilos de habla: Entre todos los hablantes existe un amplio repertorio de estilos que puden modificar la inteligibilidad de la palabra. “El estilo depende del grado de atención del hablante hacia las características de su propia producción lingüística”(William Labov).
* Las "disfluencias" en el habla espontánea: En este apartado podemos encontrar un amplio conjunto de variaciones que cambian la fluideza de la lingüística. Entre ellas encontramos las pausas, repeticiones, palabras truncadas, alargamientos vocálicos, interrupciones, frases inacabadas e incluso variaciones en la velocidad.
* Las características del entorno: Por último tenemos el factor externo al locutor, y no por ello menos importante, debido a que las variaciones ambientales del entorno pueden entorpecer significativamente el procesado de la señal. En este caso nos encontramos con ruidos que pueden distorsionar o enmascarar, y cambios de sonido ambiente que pueden modificar la señal de forma transitoria.

### Tratamiento de la señal

La implementación de un sistema de reconocimiento de lenguaje natural, conlleva el tratamiento de la señal acústica, pasando por diferentes bloques que nos ayudarán a extraer las características necesarias para implementar el sistema. Este tratamiento lo podríamos resumir con los siguientes apartados:
1. El primer paso es la captura de la señal de voz. Se utiliza un micrófono que a través de un convertidor CAD(Conversor Analógico/Digital) convierte la señal acústica en una señal eléctrica, a la cual se le realiza la extracción de parámetros. En este paso existe una dificultad añadida, provocada por la no linealidad y perdida de frecuencias introducido por el sistema micrófono/convertidor.
2. La siguiente etapa es la segmentación y el etiquetado, aquí el sistema intenta encontrar las regiones estables donde las características son constantes. Uno de las técnicas más utilizadas es la utilización de solapamiento entre el enventanado, para evitar dejar parte de señal sin analizar. En este nivel además se suelen aplicar filtros de normalización y pre-énfasis, con los cuales se prepara la señal para ser procesada.
3. En tercer lugar se realiza el cálculo de parámetros, lo que proporciona una representación espectral de las características de la señal de voz que podemos utilizar para entrenar el sistema de reconocimiento (HMM, Redes neuronales, entre otros). Los métodos más comunes en esta etapa son el análisis de banco de filtros y LPC. Para el cálculo de coeficientes que caracterizan la señal se sigue un patrón de bloques estandarizado por la ETSI.

### Tipos de reconocimiento de voz

Los sistemas de reconocimiento de voz se pueden separar en varias clases, categorizados por la descripción de los diferentes tipos de expresiones que tienen la capacidad de reconocer. Estas clases se basan en el hecho de que una de las dificultades del ASR es la capacidad de determinar cuando un locutor comienza y termina de hablar. A continuación se nombran los tipos más distinguidos:
* Reconocedores de palabras aisladas por lo general requieren un enunciado delimitado (la falta de una señal de audio) a ambos lados de la ventana de muestra. Esto no quiere decir que acepta una sola palabra, pero sí que requiere una expresión única a la vez. A menudo, estos sistemas tienen estados de "Escuchar / No-Escuchar", donde se requiere que el locutor guarde un tiempo de espera entre palabras (por lo general hace el procesamiento durante las pausas).
* Sistemas de palabra conectada( "expresiones conectadas ') son similares a las palabras aisladas, pero a diferencia éste también permite expresiones por separado con una pausa mínima entre ellas.
* Reconocimiento continuo son los más difíciles de crear porque deben utilizar métodos especiales para determinar los límites de emisión. Los reconocedores de voz continua permiten a los usuarios hablar casi de manera natural, mientras que la computadora determina el contenido.
* Habla espontánea, existe una variedad de definiciones de lo que habla espontánea es en realidad. En un nivel básico, se puede considerar como el discurso que suena natural y no ensayado. Un sistema de ASR con la capacidad de reconocer el habla espontánea debe ser capaz de manejar una variedad de características de lenguaje natural.
* Voz de verificación/identificación, algunos sistemas de reconocimiento automático del habla tienen la capacidad de identificar a los usuarios específicos. Este tipo de reconocimiento se basa principalmente en características concretas extraídas del sujeto a verificar o identificar. Característiques como la amplitud de la señal, la frecuencia y los coeficientes cepstrales de la escala Mel.

## Objetivos

La interfaz de lenguaje natural en el pasado dio lugar a los usuarios que querían antropomorfizar sus equipos, o al menos atribuir más inteligencia que la que garantizan. Esto conduce a expectativas poco realistas de las capacidades del sistema por parte del usuario. Tales expectativas hacen difícil aprender las restricciones del sistema, y si ellos les atribuyen un exceso de capacidad, esto dará lugar a la decepción cuando el sistema no funcione como se espera.
Existe un documento de 1995 titulado "Natural Language Interfaces to Databases – An Introduction'", en el cual se describen algunos de los retos más significativos:
* Modificador de unión
La pregunta de "Lista de todos los empleados de la empresa con un permiso de conducir" es ambiguo a menos que sepa que las compañías no pueden tener licencias de conducir.
* Conjunción y disyunción
"Lista de todos los solicitantes que viven en California y Arizona." Es ambiguo a menos que se sepa que una persona no puede vivir en dos lugares a la vez.
* Resolución de la anáfora
Resuelve lo que un usuario quiere decir por el 'él', 'ella' o 'esto', en una consulta auto-referencial
Otros objetivos a tener en cuenta de forma más general son la velocidad y eficiencia del sistema interfaz, como en cualquier otro algoritmo estos dos puntos son los que determinarán que unas técnicas sean mejores que otras y por tanto que tengan mayor éxito en el mercado.
Por último, respecto a las técnicas utilizadas, el principal problema a resolver es el de crear un algoritmo general que pueda reconocer todos los tipos de voces, sin diferenciar entre nacionalidad, sexo o edad. Ya que pueden existir diferencias significativas entre las características extraídas a varios locutores que pronuncian la misma palabra o frase.

## Utilidades y Aplicaciones

La interfaz de lenguaje natural y su reconocimiento con resultados satisfactorios, dan lugar a que esta tecnología pueda ser utilizada para diferentes usos y aplicaciones. Algunos de los principales usos son:
* Dictado , éste es el uso más común para los sistemas de ASR en la actualidad. Esto incluye transcripciones médicas, dictados legales y comerciales, así como procesamiento de textos en general.
* Aplicaciones de mando y control, éstos sistemas están diseñados para realizar funciones y acciones, un ejemplo sería la telefonía.
* Medicina y discapacidad, muchas personas tienen dificultades para escribir, debido a limitaciones físicas, la distrofia muscular, y muchos otros. Por ejemplo, las personas con problemas auditivos pueden usar un sistema conectado a su teléfono para convertir el discurso de la persona que llama en texto.
* Aplicaciones integradas, algunos teléfonos móviles más modernos incluyen reconocimiento de voz que permiten expresiones como "Call Home". Esto podría significar un factor importante en el futuro de las interfaces del reconocimiento de lenguaje natural.
A continuación se nombran y definen algunas de las aplicaciones que utilizan el reconocimiento de lenguaje natural, y por tanto tienen integradas las utilidades nombradas anteriormente.

### Ubiquity

Ubiquity, es una extensión para Mozilla Firefox, compuesto por una colección de lenguaje natural derivado de fácil y rápidos comandos que actúan como mashups de servicios web, permitiendo a los usuarios obtener información y relacionarla con la actual u otras páginas web.

### Wolfram Alpha

Wolfram Alpha, es un servicio en línea que responde a las consultas directamente mediante un cálculo de la respuesta a partir de datos estructurados, en lugar de proporcionar una lista de documentos o páginas web que podrían contener la respuesta como un motor de búsqueda. Fue anunciado en marzo de 2009 por Stephen Wolfram, y fue lanzado al público el 15 de mayo de 2009.

### Siri

Siri, es una aplicación de asistente personal para iPhone OS. La aplicación utiliza el procesamiento del lenguaje natural para responder a las preguntas y hacer recomendaciones. La aplicación para el iPhone es el primer producto publicado por sus creadores, que se centra en aplicaciones de inteligencia artificial. El grupo de marketing de la compañía asegura que Siri se adapta a las preferencias individuales del usuario a través del tiempo y personaliza los resultados, para completar tareas como hacer una reserva para una cena.

### Otras

* Anboto Group- Anboto ofrece servicio Web al cliente y tecnología de comercio electrónico basado en la semántica y el Procesamiento del Lenguaje Natural. La oferta principal de Anboto es el agente de ventas virtual y chat inteligente.
* Q-go-La tecnología de Q-go ofrece respuestas relevantes a los usuarios, en respuesta a las consultas en el sitio web de Internet de la empresa o la intranet corporativa, formulada en frases naturales o la entrada de palabras clave por igual. Q-go fue adquirida por RightNow Technologies en 2011.
* Ask.com- La idea original detrás de Ask Jeeves (Ask.com) es permitir a los usuarios obtener respuestas a las preguntas formuladas en el lenguaje cotidiano, natural, así como la búsqueda de palabras clave tradicionales. El Ask.com actual sigue apoyando esto, con soporte añadido para las matemáticas, diccionario, y las preguntas de la conversión.
* C-phrase- C-frase es un lenguaje natural que se basa en la relación de bases de datos. C-Frase corre bajo Linux, se conecta con bases de datos PostgreSQL a través de ODBC y es compatible con las consultas de selección, así como actualizaciones. Actualmente sólo hay apoyo para Inglés. C-Frase encuentra alojada en el sitio Google Code.
* GNOME Do - Permite la rápida búsqueda de artefactos diversos del ambiente GNOME (aplicaciones, contactos Evolution y Pidgin, marcadores de Firefox, los artistas y los álbumes de Rhythmbox, y así sucesivamente) y ejecuta las acciones básicas sobre ellos (ejecución, apertura, correo electrónico, chatear, jugar, etc).
* Brainboost - Ya no está disponible
* Braina Project - Braina es un software con interfaz de usuario de lenguaje natural que está actualmente en fase de desarrollo. Está siendo desarrollado por un solo programador llamado Akash Shastri. El objetivo principal de este proyecto es hacer que un equipo pueda entender el lenguaje humano para que el usuario pueda controlar una computadora sin el uso de comandos.
* Hakia - Hakia es un motor de búsqueda de Internet. La empresa ha inventado una infraestructura nueva, alternativa a la indexación que utiliza el algoritmo SemanticRank, una solución que mezcla las disciplinas de la semántica ontológica, la lógica difusa, la lingüística computacional, y las matemáticas.
* Lexxe - Lexxe es un buscador de Internet que utiliza el procesamiento del lenguaje natural para consultas (búsquedas semánticas). Las búsquedas pueden hacerse con preguntas tales como "¿Qué edad tiene la Wikipedia?", Así como palabras clave y frases. Cuando se trata de hechos, Lexxe es muy eficaz, aunque necesita mejorar mucho en el análisis del lenguaje natural cuando se trata de hechos.
* Pikimal - Pikimal usa lenguaje natural vinculado a las preferencias del usuario para hacer recomendaciones de búsqueda por plantilla.
* Powerset - El 11 de mayo de 2008, la compañía presentó una herramienta para la búsqueda de un subconjunto fijo de Wikipedia usando frases de conversación en lugar de palabras clave. El 1 de julio de 2008, fue comprado por Microsoft.
* Semantycs Es un motor sermántico inteligente especializado en la interacción natural en temas específicos de atención al cliente, comercio electrónico e identificación de sentimientos.
* START (Proyecto del MIT) - START, web basada en un sistema de respuestas. A diferencia de los sistemas de recuperación de información, tales como los motores de búsqueda, START tiene como objetivo facilitar a los usuarios "la información correcta", en lugar de limitarse a proporcionar una lista de hits. En la actualidad, el sistema puede responder millones de preguntas Inglesas acerca de lugares, películas, personas y definiciones del diccionario.
* Swingly - Swingly es un motor de respuesta diseñado para encontrar respuestas exactas a preguntas sobre los hechos. Sólo es necesario hacer una pregunta en inglés - y Swingly podrá encontrar la respuesta (o respuestas) que está buscando (de acuerdo al sitio en el que se encuentra).
* Yebol - Yebol es una “decisión” vertical de motor de búsqueda, que habían desarrollado con una base de conocimiento, para crear una plataforma de búsqueda semántica. La inteligencia artificial humana de Yebol automáticamente utiliza la asociación, clasificación y agrupamiento de algoritmos para analizar las palabras claves relacionadas o páginas web. Yebol integra el procesamiento del lenguaje natural, sistemas de ingeniería abiertos y complejos de metasynthetic, y los algoritmos de la máquina con el conocimiento humano de cada consulta para establecer un directorio web que en realidad "aprende" el uso de algoritmos de correlación, el agrupamiento y la clasificación para generar automáticamente la consulta, que se mantiene y se regenera.
* Inbenta – El motor de búsqueda Inbenta es multilingüe, escalable, lingüístico y de semántica basada en el campo empresarial. Se basa en los últimos desarrollos de la Teoría Significado-Texto y proporciona experiencias intuitivas de búsqueda en lenguaje natural.
* Mnemoo - Mnemoo es un motor de respuesta que tuvo como objetivo responder directamente las preguntas planteadas en el texto (lenguaje natural), el cual se logra utilizando una base de datos de los hechos y un motor de inferencia(conclusión).