A message like I want to search document start with integration would get integration recognized as name entity. If “integration” does not occur in any training data, how I will extract the name of the particular entity value?
Just start by adding a list of several annotated sentences to your intent, and include integration.
Something like this, where I named the entity to extract topic:
## intent:search_document
- I want to search document start with [technical](topic)
- I want to search document start with [human](topic)
- I want to search document start with [classes](topic)
- I want to search document start with [ability](topic)
- I want to search document start with [locations](topic)
- I want to search document start with [integration](topic)
A few things to do as well:
You must add topic as an entity to your domain.yml.
It will be very good to use entity synonyms. For example, if some one uses integrate instead of integration, the entity extracted will always be integration.
You must make sure that the CRFEntityExtractor is used.
If you train the model, it will be able to extract the entity topic for the sentences given, and it will generalize so it will also pick up if the user spells the topics a little different.
Now, your users will never ask it exactly like this. They might ask Look up documents with technical info. So, you need to make sure that you have a lot of possible sentences in your training data, and that they are all correctly annotated.
It is impossible for you to come up with all the different ways your users will ask things. That is why you should first build a simple assistant to correctly handle some paths, using Rasa Open Source. Once that is kind of working, let others talk to your bot to collect more data, using Rasa X. Here is a nice blog post about that process.
Perfect, Arjaan. Thank you so much for this. I also want to quickly ask if in this sentence “I want to search document start with integration” instead of training ‘integration’, can I still extract the value from user input? I tried but in the log, it didn’t pick up as an entity. Is there a way to extract the entity which I haven’t trained? Thanks in advance. Looking forward to hearing from you.