Since bots are evolving, you need a mechanism to better understand what user wants from his/her language and take actions or respond to user queries appropriately. In the days of increasing automation, bots can certainly help provided they are backed by tools to understand user language both naturally and contextually.
Azure Cognitive Services has an API that can help to identify what user wants, extracts concepts and entities from a sentence (user input) using an intelligent service name Language Understanding Intelligent Service (LUIS). It can help process natural language using custom trained language models and can incorporate Active learning concept based on how it was trained.
In this blog post, we will be building a LUIS app that can be utilised in a Bot or any other client application to respond to the user in a more meaningful way.
Create a LUIS app
- Go to https://www.luis.ai/ and sign up.
- You need to create a LUIS app by clicking ‘New App’ – this is the app you will be using in Bot Framework
- Fill out a form and give your app a unique name
- Your app will be created, and you can see details as below (page will be redirected to Overview)
- You need to create entities to identify the concept, and is very important part of utterances (input from a user). Let’s create few simple entities using the form below
- You can also reuse pre built entity like email, URL, date etc.
- Next step is to build intent which represents a task or an action from utterance (input from a user). By default, you will have None which is for irrelevant utterances to your LUIS app.
- Once you have defined the series of intents, you need to add possible utterances against each intent which forms the basis of Active Learning. You need to make sure to include varied terminology and different phrases to help LUIS identify.You can build Phrase list to include words that must be treated similarly like company name or phone models etc.
- As you write utterances, you need to identify or tag entities like we selected $service-request in your utterance.Remember: you are identifying possible phrases to help LUIS extract intents and entities from utterances.
- Next step is to train your LUIS app to help it identify entities and intents from utterances. Ensure you click Train Application when you are done with enough training (you can also do such training on per entity or per intent basis)
- You can repeat step 10 as much time as you like to ensure LUIS app is trained well enough on your language model.
- Publish the app once you have identified all possible entities, intents, utterances and have trained LUIS well to extract them from user input.
- Keep a note of Programmatic API key from MyKey section and Application ID from Settings menu of your LUIS app, you will need these two keys when integrating LUIS with your client application.
Now you are ready to go ahead and use your LUIS app in your Bot or any other client application to process natural language in a meaningful manner – Cheers!