Language Understanding (LUIS) allows your application to understand what a person wants in their own words. Azure LUIS uses machine learning to allow developers to build applications that can receive user input in natural language and extract meaning from it. A client application that converses with the user can pass user input to a LUIS app and receive relevant, detailed information back.
Several Microsoft technologies work with LUIS:
A LUIS app is a domain-specific language model designed by you and tailored to your needs. You can start with a prebuilt domain model, build your own, or blend pieces of a prebuilt domain with your own custom information.
A model starts with a list of general user intentions such as “Book Flight” or “Contact Help Desk.” Once the intentions are identified, you supply example phrases called utterances for the intents. Then you label the utterances with any specific details you want LUIS to pull out of the utterance.
Prebuilt domain models include all these pieces for you and are a great way to start using LUIS quickly.
After the model is designed, trained, and published, it is ready to receive and process utterances. The LUIS app receives the utterance as an HTTP request and responds with extracted user intentions. Your client application sends the utterance and receives LUIS’s evaluation as a JSON object. Your client app can then take appropriate action.
Intent | Sample User Utterance | Entities |
---|---|---|
BookFlight | “Book a flight to Seattle?” | Seattle |
StoreHoursAndLocation | “When does your store open?” | open |
ScheduleMeeting | “Schedule a meeting at 1 pm with Bob in Distribution” | 1 pm, Bob |
LUIS has two ways to build a model: the Authoring APIs and the LUIS.ai web app. Both methods give you and your collaborators control of your LUIS model definition. You can use either LUIS.ai or the Authoring APIs or a combination of both to build your model. This management includes models, versions, collaborators, external APIs, testing, and training.
Once your model is built and published, you pass the utterance to LUIS and receive the JSON object results with the Endpoint APIs.
Note
Begin your LUIS model with the intents your client app can resolve. Intents are just names such as “BookFlight” or “OrderPizza.”
After an intent is identified, you need sample utterances that you want LUIS to map to your intent such as “Buy a ticket to Seattle tomorrow.” Then, label the parts of the utterance that are relevant to your app domain as entities and set a type such as date or location.
Generally, an intent is used to trigger an action and an entity is used as a parameter to execute an action.
For example, a “BookFlight” intent could trigger an API call to an external service for booking a plane ticket, which requires entities like the travel destination, date, and airline. See Plan your app for examples and guidance on how to choose intents and entities to reflect the functions and relationships in an app.
Entity identification determines how successfully the end user gets the correct answer. LUIS provides several ways to identify and categorize entities.
Once your application is published and real user utterances are entered, LUIS uses active learning to improve identification. In the active learning process, LUIS provides real utterances that it is relatively unsure of for you to review. You can label them according to intent and entities, retrain, and republish.
This iterative process has tremendous advantages. LUIS knows what it is unsure of, and your help leads to the maximum improvement in system performance. LUIS learns quicker and takes the minimum amount of your time and effort. LUIS is an active machine learning at its best.
Source: About Language Understanding (LUIS) in Azure | Microsoft Docs