¿Qué es Language Understanding (LUIS)?What is Language Understanding (LUIS)?

Language Understanding (LUIS) es un servicio de API basado en la nube que aplica inteligencia de aprendizaje automático personalizado a una conversación o un texto de lenguaje natural de un usuario para predecir el significado global y extraer información pertinente y detallada.Language Understanding (LUIS) is a cloud-based API service that applies custom machine-learning intelligence to a user's conversational, natural language text to predict overall meaning, and pull out relevant, detailed information.

Una aplicación cliente para LUIS es cualquier aplicación conversacional que se comunique con un usuario en lenguaje natural para completar una tarea.A client application for LUIS is any conversational application that communicates with a user in natural language to complete a task. Entre estas aplicaciones cliente se encuentran, por ejemplo, aplicaciones de redes sociales, bots de chat y aplicaciones de escritorio habilitadas para voz.Examples of client applications include social media apps, chat bots, and speech-enabled desktop applications.

Imagen conceptual de 3 aplicaciones cliente que trabajan con Language Understanding (LUIS) de Cognitive ServicesConceptual image of 3 client applications working with Cognitive Services Language Understanding (LUIS)

Uso de LUIS en un bot de chatUse LUIS in a chat bot

Una vez que la aplicación de LUIS está publicada, la aplicación cliente envía expresiones (texto) a la API del punto de conexión de procesamiento de lenguaje natural de LUIS y recibe los resultados como respuestas en formato JSON.Once the LUIS app is published, a client application sends utterances (text) to the LUIS natural language processing endpoint API and receives the results as JSON responses. Una aplicación cliente común para LUIS es un bot de chat.A common client application for LUIS is a chat bot.

Imagen conceptual del trabajo de LUIS con el bot de chat para predecir el texto del usuario con reconocimiento de lenguaje natural (NLP)Conceptual imagery of LUIS working with Chat bot to predict user text with natural language understanding (NLP)

PasoStep .Action
11 La aplicación cliente envía la expresión del usuario (el texto en sus propias palabras), "I want to call my HR rep" ("Quiero llamar a mi representante de recursos humanos")The client application sends the user utterance (text in their own words), "I want to call my HR rep." al punto de conexión de LUIS como una solicitud HTTP.to the LUIS endpoint as an HTTP request.
22 LUIS aplica el modelo entrenado al texto en lenguaje natural para proporcionar reconocimiento inteligente sobre la entrada del usuario.LUIS applies the learned model to the natural language text to provide intelligent understanding about the user input. LUIS devuelve una respuesta con formato JSON con una intención principal, "HRContact" ("Contacto de recursos humanos").LUIS returns a JSON-formatted response, with a top intent, "HRContact". La respuesta en formato JSON del punto de conexión contiene como mínimo la expresión de consulta y la intención con mayor puntuación.The minimum JSON endpoint response contains the query utterance, and the top scoring intent. También puede extraer datos, como la entidad Tipo de contacto.It can also extract data such as the Contact Type entity.
33 La aplicación cliente usa la respuesta JSON para tomar decisiones acerca de cómo responder a las solicitudes del usuario.The client application uses the JSON response to make decisions about how to fulfill the user's requests. Estas decisiones pueden incluir algunos árboles de decisión en el código de Bot Framework y llamadas a otros servicios.These decisions can include some decision tree in the bot framework code and calls to other services.

La aplicación de LUIS proporciona inteligencia para que la aplicación cliente pueda tomar decisiones inteligentes.The LUIS app provides intelligence so the client application can make smart choices. LUIS no proporciona estas opciones.LUIS doesn't provide those choices.

Procesamiento de lenguaje naturalNatural language processing

Una aplicación de LUIS contiene un modelo de lenguaje natural específico de un dominio.A LUIS app contains a domain-specific natural language model. Puede iniciar la aplicación de LUIS con un modelo de dominio creado previamente, crear el suyo propio o combinar partes de un dominio creado previamente con su propia información personalizada.You can start the LUIS app with a prebuilt domain model, build your own model, or blend pieces of a prebuilt domain with your own custom information.

  • Modelo creado previamente LUIS tiene muchos modelos de dominio creados previamente, entre los que se incluyen intenciones, expresiones y entidades creadas previamente.Prebuilt model LUIS has many prebuilt domain models including intents, utterances, and prebuilt entities. Puede usar las entidades creadas previamente sin tener que utilizar las intenciones y expresiones del modelo precompilado.You can use the prebuilt entities without having to use the intents and utterances of the prebuilt model. Los modelos de dominio creados previamente incluyen todo el diseño y suponen una excelente manera de empezar a usar rápidamente LUIS.Prebuilt domain models include the entire design for you and are a great way to start using LUIS quickly.

  • Entidades personalizadas LUIS ofrece varias maneras de identificar sus propias intenciones y entidades personalizadas, como las entidades de aprendizaje automático, las entidades específicas o literales y una combinación de aprendizaje automático y literal.Custom Entities LUIS gives you several ways to identify your own custom intents and entities including machine-learned entities, specific or literal entities, and a combination of machine-learned and literal.

Creación del modelo de LUISBuild the LUIS model

Cree el modelo con las API de creación o con el portal de LUIS.Build the model with the authoring APIs or with the LUIS portal.

El modelo de LUIS comienza con categorías de intenciones del usuario llamadas intenciones .The LUIS model begins with categories of user intentions called intents. Cada intención necesita ejemplos de expresiones del usuario.Each intent needs examples of user utterances. Cada expresión puede ofrecer una gran variedad de datos que se deben extraer con entidades .Each utterance can provide a variety of data that needs to be extracted with entities.

Expresión de usuario de ejemploExample user utterance IntenciónIntent EntidadesEntities
"¿Reservar un vuelo a Seattle?""Book a flight to Seattle?" BookFlightBookFlight SeattleSeattle
"¿Cuando abre su tienda?""When does your store open?" StoreHoursAndLocationStoreHoursAndLocation openopen
"Programar una reunión a la 1 p.m. con Bob de distribución""Schedule a meeting at 1pm with Bob in Distribution" ScheduleMeetingScheduleMeeting 1 p.m., Bob1pm, Bob

Consulta de un punto de conexión de predicciónQuery prediction endpoint

Después de que el modelo está creado y publicado en el punto de conexión, la aplicación cliente envía expresiones a la API del punto de conexión de predicción publicado.After the model is built and published to the endpoint, the client application sends utterances to the published prediction endpoint API. La API aplica el modelo al texto para su análisis.The API applies the model to the text for analysis. La API responde con los resultados de la predicción en formato JSON.The API responds with the prediction results in a JSON format.

La respuesta en formato JSON del punto de conexión contiene como mínimo la expresión de consulta y la intención con mayor puntuación.The minimum JSON endpoint response contains the query utterance, and the top scoring intent. También puede extraer datos como la siguiente entidad Tipo de contacto.It can also extract data such as the following Contact Type entity.

{
  "query": "I want to call my HR rep.",
  "topScoringIntent": {
    "intent": "HRContact",
    "score": 0.921233
  },
  "entities": [
    {
      "entity": "call",
      "type": "Contact Type",
      "startIndex": 10,
      "endIndex": 13,
      "score": 0.7615982
    }
  ]
}

Mejora de la predicción del modeloImprove model prediction

Una vez que un modelo de LUIS está publicado y recibe expresiones de usuario reales, LUIS ofrece varios métodos para mejorar la precisión de la predicción: aprendizaje activo de expresiones de punto de conexión, listas de frases para la inclusión de palabras de dominio y patrones para reducir el número de expresiones necesarias.After a LUIS model is published and receives real user utterances, LUIS provides several methods to improve prediction accuracy: active learning of endpoint utterances, phrase lists for domain word inclusion, and patterns to reduce the number of utterances needed.

Ciclo de vida del desarrolloDevelopment lifecycle

LUIS proporciona herramientas, control de versiones y colaboración con otros autores de LUIS para integrarse en el ciclo de vida de desarrollo completo en el nivel de la aplicación cliente y del modelo de lenguaje.LUIS provides tools, versioning, and collaboration with other LUIS authors to integrate into the full development life cycle at the level of the client application and the language model.

Implementación de LUISImplementing LUIS

LUIS, como una API REST, se puede usar con cualquier producto, servicio o marco de trabajo que realice una solicitud HTTP.LUIS, as a REST API, can be used with any product, service, or framework that makes an HTTP request. La lista siguiente contiene los principales productos y servicios de Microsoft que se utilizan con LUIS.The following list contains the top Microsoft products and services used with LUIS.

La principal aplicación cliente para LUIS es:The top client application for LUIS is:

  • Bot de aplicación web para crear rápidamente un bot de chat habilitado para LUIS para hablar con un usuario mediante entrada de texto.Web app bot quickly creates a LUIS-enabled chat bot to talk with a user via text input. Usa Bot Framework versión 4.x para una experiencia de bot completa.Uses Bot Framework version 4.x for a complete bot experience.

Herramientas para usar de forma rápida y sencilla LUIS con un bot:Tools to quickly and easily use LUIS with a bot:

  • CLI de LUIS: paquete NPM que proporciona creación y predicción mediante una herramienta independiente de la línea de comandos o como importación.LUIS CLI The NPM package provides authoring and prediction with as either a stand-alone command line tool or as import.
  • LUISGen LUISGen es una herramienta para generar código fuente de C# y de TypeScript fuertemente tipado a partir de un modelo de LUIS exportado.LUISGen LUISGen is a tool for generating strongly typed C# and typescript source code from an exported LUIS model.
  • Dispatch permite que una aplicación primaria utilice varias aplicaciones de LUIS y QnA Maker mediante el uso de un modelo de distribuidor.Dispatch allows several LUIS and QnA Maker apps to be used from a parent app using dispatcher model.
  • LUDown LUDown es una herramienta de la línea de comandos que ayuda a administrar los modelos de lenguaje para el bot.LUDown LUDown is a command line tool that helps manage language models for your bot.

Otros servicios de Cognitive Services que utilizan LUIS:Other Cognitive Services used with LUIS:

Ejemplos de uso de LUIS:Samples using LUIS:

Pasos siguientesNext steps

Cree una nueva aplicación de LUIS con un dominio creado previamente o personalizado.Author a new LUIS app with a prebuilt or custom domain. Consulte el punto de conexión de predicción de una aplicación de IoT pública.Query the prediction endpoint of a public IoT app.