microsoft / Cognitive-LUIS-Windows

Windows (.Net) SDK for the Microsoft Language Understanding Intelligent Service API, part of Congitive Services
www.microsoft.com/cognitive-services/en-us/language-understanding-intelligent-service-luis
Other
134 stars 78 forks source link

Facing issue with composite entities #58

Closed premchandpl closed 7 years ago

premchandpl commented 7 years ago

Hi

I am facing issues with composite entities. I have a utterance like this: get all contracts going to expire { [$datetimeV2 ]} (Composite entity) When I use the query: "get all contracts which are going to expire tomorrow", I am not getting composite entity in the response. I am just getting entity.

I am attaching the JSON response that I am getting from the LUIS

{ "query": "get all contracts that are going to expire tomorrow", "topScoringIntent": { "intent": "SearchContract", "score": 0.9933323 }, "intents": [ { "intent": "SearchContract", "score": 0.9933323 }
], "entities": [ { "entity": "tomorrow", "type": "builtin.datetimeV2.date", "startIndex": 43, "endIndex": 50, "resolution": { "values": [ { "timex": "2017-09-01", "type": "date", "value": "2017-09-01" } ] } } ] } As you can see above, I am not able to see the composite entity. This was used to work some time back and now I am not getting composite entities

stevengum commented 7 years ago

@premchandpl, can you provide your LUIS App ID? If you are using the Bot Builder SDK, which language and version of the SDK are you using?

premchandpl commented 7 years ago

@stevengum97 This is the LUIS App Id - https://www.luis.ai/applications/2da2e73c-a789-45d0-bb39-6623e7a05ade

premchandpl commented 7 years ago

@stevengum97 Any updates on this. This is very crucial for us and the composite entities are not returning in the LUIS response.

premchandpl commented 7 years ago

@stevengum97 We are using C# language with VS 2015 and the bot builder version is - 3.9.1.0

stevengum commented 7 years ago

@premchandpl sorry for the delay, just to verify, but does hitting the LUIS endpoint directly returns a composite entity? In your example utterance above, what is the composite entity that is supposed to be recognized? Is it just tomorrow?

stevengum commented 7 years ago

@premchandpl, when I send queries to LUIS with only one child of a composite entity, only the child entity is returned, or in other words I'm experiencing the same behavior that you are.

Can you test an utterance with more than one of the Composite Entity's children?

premchandpl commented 7 years ago

@stevengum97 I have one composite entity with multiple children called "PayableTotal" and I am giving the utterance as

Payable Total entity - PayableTotal consists of: [ComparisonExp, money, Than]

  1. get the top 5 contracts which are greater than $1k
  2. can you help me find top 5 contracts which greater than $500K

can you help me find top [ $contractcount ] contracts which { [ $ComparisonExp ] [ $Than ] [ $money ] }

I expect composite entities returned in the JSON response and I am just getting entities

Let me know if this information is going to be useful

stevengum commented 7 years ago

@premchandpl, when I tested my application it's working... Can you use your first example:

  1. get the top 5 contracts which are greater than $1k

in a query and then copy paste the results from a direct endpoint call (i.e. taking the endpoint generated from when you publish your app and pasting it into your browser with the query string after the endpoint)?

premchandpl commented 7 years ago

@stevengum97 I tried with this rest api

https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/xxxxx?subscription-key=xxxx&timezoneOffset=0&verbose=true&q=get the top 5 contracts which are greater than $1k

and this is the response I got

{ "query": "get the top 5 contracts which are greater than $1k", "topScoringIntent": { "intent": "SearchContract", "score": 0.9956526 }, "intents": [ { "intent": "SearchContract", "score": 0.9956526 }, { "intent": "Agent", "score": 0.0281225722 }, { "intent": "FAQ", "score": 0.006074053 }, { "intent": "Feedback", "score": 0.00301649864 }, { "intent": "Help", "score": 0.000517861568 }, { "intent": "None", "score": 0.0004114331 }, { "intent": "Greeting", "score": 9.141475E-06 } ], "entities": [ { "entity": "5", "type": "contractcount", "startIndex": 12, "endIndex": 12, "score": 0.95680964 }, { "entity": "$1k", "type": "builtin.currency", "startIndex": 47, "endIndex": 49, "resolution": { "unit": "Dollar", "value": "1000" } }, { "entity": "than", "type": "Than", "startIndex": 42, "endIndex": 45, "score": 0.998694539 }, { "entity": "greater", "type": "ComparisonExp", "startIndex": 34, "endIndex": 40, "resolution": { "values": [ "greater" ] } }, { "entity": "than", "type": "ComparisonExp", "startIndex": 42, "endIndex": 45, "resolution": { "values": [ "than" ] } } ] }

As you can see, there are no composite entities in that json response.

premchandpl commented 7 years ago

@stevengum97 In the "Interactive Testing" mode it is recognizing the composite entities

image

But through REST api, composite entities are not getting returned

stevengum commented 7 years ago

Thank you for providing this, I'm assuming your train and published models are the same as your endpoint suddenly stopped providing the composite entities?

premchandpl commented 7 years ago

@stevengum97 We are training and publishing the same model. Our model id is - 2da2e73c-a789-45d0-bb39-6623e7a05ade and when calling the rest api, I am providing the same model id. Let me know if we are doing something wrong?

premchandpl commented 7 years ago

@stevengum97 Exporting and importing the luis model has solved the issue. Thanks steven for all the help