Language Understanding in Machine Learning is designed to identify valuable information in text such as user goals (intents) and key information from sentences (entities). These are often mapped (events) to methods that can preform more complex work on behalf of the intention.
This is a basic explanation of how this might work in an intelligent application.
When you receive text you need to parse the biggest question will always be, "What is the intent of this message?". This can be further compounded when multiple intents are expressed in the same message as, "What are all of the intents of this message?". Especially when speaking through speech to text were we often try and cram as much information as we can in a short period of time.
The illustration above shows extracting multiple intents from a single message. The first intent is a greeting. This indicates a polite person with a positive mood, it might mean returning a greeting in response. The second intent is the actual purpose of the message. In this case someone is requesting a status update for an order.
Once you have established intent for a message. You might find that you need to extract more detailed information that should otherwise exist. This might be an email, url, social handle, number etc.. These bits of information only have a clear meaning when attached to there supposed intent.
This illustration shows that the message has given us a "greeting" and is looking for an "order status" update. This establishes the intent of our message. The second intent, which is also the primary purpose of the message, and contains 2 parts of information we might need.
The first is a number which because we know the intent is to get a status update for an order, this number should be our order id.
The second part of the information is the location of that order. In this case the message is saying on a website we should know about.
Mapping a series of intent's to an event is a common way of dealing with "What to do" once you have extracted the intention of a message with it's corresponding entities. This can be done by tagging each intent with an easy to understand name which also represents the method(s) that should trigger when the matching intent is found.
The first intention we have found can be labeled as a "Greeting". This can be mapped to an "OnGreet" event which selects a proper greeting based on the current time of day. Such as, "Good morning", "Good afternoon", or "Good evening".
The second intention we have found can be labeled as "OrderStatus". This can be mapped to an "OnOrderStatus" event which then checks the matching API, using the extracted entities found in the intent. Then constructing a response with the correct order status information, or an error if the order, or status can't be found.