Kris NVS on Thu, 23 Jun 2016 12:18:21

Hello MS,

The LUIS has been a great tool. We started to set out to write a chatbot and we wanted to consume LUIS services. We want LUIS to identify various Microsoft Products from a given text. Let's say, I want LUIS to identify "sharepoint 2010", "sharepoint 2013", "visual studio 2013", visual studio 2010" etc as Technology Products. We tried adding "Products" feature and added coma separated values as shown above. However the model sticks to only "sharepoint", "visual" - basically single word. It is not able to identify the "phrase". After training with some data, it is able to identify "shaerpoint" and "visual" as Technology (entity) however, the whole phrase as needed is not working.

Then we switched over to simple RegEx also with this "(SharePoint)\s*(2013|2007|2010)" very straight forward. it is still not able to identify it as a single phrase. 

I bought the service on my Azure Subscription and we are losing time.

Can somebody help me with this ?

Thank you for your time.





Kris NVS on Thu, 23 Jun 2016 15:31:27

Quick update...I am able to get the logic right to make the model understand that "SharePoint 2013" on its whole is a Product. However, after giving the same context it is not able to predict any other Products that are not in the "Phrase list Features".

I have been training with "I worked on BizTalk", 'I worked on SQL" .... (all single letter words), once it starts predicting the single letter "Technology/Product" properly. I gave the Utterance as "I worked on Sharepoint 2016", then it predicted only "SharePoint" as Product. Then I added all the success-single-word Products and along with them I gave "SharePoint 2016" and bingo... it worked.

So far so good...

Here is the tricky thing, now that the model is pretty much stabilized about the pattern of the context and also the way various Products are named, I wanted it to predict "I worked on Exchange 2016" unfortunately it didn't work. It only predicted "Exchange" alone as a Product.  Then I trained a lot with the same context ("I worked on <product> YYYY") with a few items. At least now, the pattern matching algo should have understood the pattern. When gave the Utterance as "I worked on Visual Studio 2016" it failed to predict that "Visual Studio 2016" is the product. It only predicted "Visual Studio" as a Product. Now please note that in the phrases I also added "Visual Studio", "Visual Studio 2013", "Visual Studio 2010" and trained and are being predicted successfully. Howcome it is now not able to predict "Visual Studio 2016" is a Product ????  How many such products should I add to the Phrase list ? How is it AI now ?

Idea is based on the context and with a few patterns it should be able to predict rest of the 'Products' with ease. What am I missing ???

Carol Hanna (msft) on Thu, 10 Nov 2016 17:36:57

An exchangeable phrase list feature are serves as single feature to the LUIS underlying training algorithm. It is used as a lexicon lookup feature where its value is 1 if the lexicon contains a given word or 0 if it doesn’t. A non-exchangeable phrase list feature has all the phrases in the list serve as separate features to the underlying training algorithm. So, if your phrase list feature contains 5 phrases, they will be mapped to 5 separate features. You can think of the non-exchangeable phrase list feature as an additional bag of words that you are willing to add to LUIS existing vocabulary features.

So adding phrase to a a phrase list and retraining affects the learner predictions