Digital Assistant and Mobile

Get Involved. Join the Conversation.


    Sharath Chandra Gavini
    Entity Resolution is not so Relevant
    Topic posted February 7, 2019 by Sharath Chandra GaviniBronze Medal: 1,250+ Points, last edited February 7, 2019, tagged Bots 
    113 Views, 9 Comments
    Entity Resolution is not so Relevant
    Seeing Irrelevant Entity matches for the data provided

    Hello developers,
    I have a requirement where there are a lot of products. The name of the product should be resolved from the user input.
    I am using entity matching technique to resolve the data. The matched entities are not as expected. 
    I don't understand what I am missing. Any suggestions and information on achieving this are much appreciated.
    Attaching the data I used to train the bot with and the response from the bot. Please let me know your inputs.

    My Entities:

    PRODUCTNAME,AutoCAD Map 3D 2014,AutoCAD Map 3D 2014: AutoCAD Map: AutoCAD
    PRODUCTNAME,AutoCAD Map 3D 2014 (x64),AutoCAD Map 3D 2014 (x64): AutoCAD Map: AutoCAD
    PRODUCTNAME,AutoCAD Map 3D 2015,AutoCAD Map 3D 2015: AutoCAD Map: AutoCAD
    PRODUCTNAME,AutoCAD Map 3D 2015 (X64),AutoCAD Map 3D 2015 (X64): AutoCAD Map: AutoCAD
    PRODUCTNAME,AutoCAD Plant 3D 2018,AutoCAD Plant 3D 2018: AutoCAD
    PRODUCTNAME,AutoCAD Home License,AutoCAD Home License:  AutoCAD
    PRODUCTNAME,AutoCAD Inventor,AutoCAD Inventor:  AutoCAD
    PRODUCTNAME,AutoCAD 2012,AutoCAD 2012: AutoCAD
    PRODUCTNAME,AutoCAD 2014,AutoCAD 2014: AutoCAD
    PRODUCTNAME,AutoCAD 2014 (x64),AutoCAD 2014 (x64): AutoCAD
    PRODUCTNAME,AutoCAD 2017,AutoCAD 2017: AutoCAD
    PRODUCTNAME,AutoCAD 2018,AutoCAD 2018: AutoCAD

    When the user types AutoCAD, all the products should be displayed in the result list but if the user types Autocad Map, only the Autocad Map products should be displayed but every AutoCAD product is displayed even in this case. I am using the Machine Learning model for the training. 
    I am using the System.ResolveEntities component and the bot response is attached in the below screenshot.

    The image was not showing up for me in the topic so I posted it in the comment below to make sure it is there.

    Sharath Chandra Gavini.




    • Sharath Chandra Gavini
    • Grant Ronald

      "AutoCAD, all the products should be displayed in the result list but if the user types Autocad Map, only the Autocad Map products should be displayed but every AutoCAD product is displayed even in this case."

      The problem you have is that "Autocad Map" is resolving to Autocad since Autocad is in that string!

      • Sharath Chandra Gavini

        Yeah, that seems logical. Thank you.
        I have another question for you.

        When I associate entities with the intents, only 5 entities are resolved if I see the nlpresult.entityMatches even though there are many possibilities (I tried AutoCAD). Why is it so? Should I configure anything to increase the range? 

    • Grant Ronald

      Doesn't sound right - I've certainly resolved more than that before - can you test in a simple test case

      • Sharath Chandra Gavini

        I also remember it working sometime ago but I now see it resolving only five entities. I tried modifying the utterances and I also tried with another use case where the possibilities are 6 but only 5 are being matched. Attaching the screenshots hoping that may help you detect my problem.

        Here I modified the utterances and added AutoCAD to it:


        When I tested as you can see, only 5 entities are resolved while there are many. 

        Screenshot 3

        This is another test case where I added India as an utterance to all the values that belong to India: 

        Screenshot 4


        Here, there are 6 values that resolve to India and yet, only 5 are shown:

        Screenshot 5

        Please correct if I did anything wrong.

    • Grant Ronald

      So what does choosing option 1 do?  If you are showing me what entities are being extracted but you are not showing me what user input was.

      Also, are you comfortable with your design - all your values have the same synonyms - which means if you say "AutoCad" it is going to match every single value - why do you want to do that?

      • Sharath Chandra Gavini

        Actually, choosing the option is not a part of the conversation that I want to achieve. I added the component to a bot that I use to try features so please ignore the conversation flow.

        In the above screenshots, buy AutoCAD/ call AutoCAD resolve the entities and I wanted to show you the resolved entities. Please see the resolved entities in the screenshots and that's what I am more concerned about. 
        The value list entities that I included in the screenshot are just a part of very large set of data. There are many other categories of data and what I want to achieve is to display all the AutoCAD products when the user types buy AutoCAD. I am planning to clean up the data to just ask for the version number but my primary concern is why aren't all the entities getting resolved. Please check the resolved entites in the JSON viewer in the above screenshots.
        There should be many but only 5 are being resolved.

    • Grant Ronald

      This is really confusing.    You say "only 5 are being resolved".   Resolved from what sentence?  Entities are extracted from a user input - what is that input sentence?

      • Sharath Chandra Gavini

        I typed "buy AutoCAD" (please ignore the bot's response but the JSON with EntityMatches is valid) where AutoCAD should resolve into the values that I put in the entity "PRODUCTNAME".
        But only 5 values are being resolved. That is my issue. 

        In the other instance, I typed "call India" and India should resolve 6  values but somehow only 5 are being resolved. I don't understand why. Please take a look at the above screenshots. What I typed is relevant, the JSON data is relevant but the bot's response is not related to the context it is another bot where I didn't implement the conversation fully.