I wrote a small fuzzy-entity-extractor using RegexExtractor
as a reference and rapidfuzz.
My intentions were to be able to use the entities in the stories/rules e.g.
nlu:
intent: create-something
examples: |
- I want to create [what]
- Could you help me create [what]
- create [what]
stories:
- story: Use wants to create something we don't know how yet
steps:
- intent: create-something
- action: utter-create-something-fallback
- story: User wants to create a post
steps:
- intent: create-something
entities:
- what: post
- action: create-post
But it looks like this doesn’t work that way and one would need to create synthetic slots for this purpose. I feel that this is going to be tedious and harder to keep in sync so I’m exploring alternatives before commiting to the approach.
Entities can only direct a story based on the name , value is not taken into consideration.
I understand that this is because the available featurizer
(e.g. RegexFeaturizer) only tell’s rasa about the existence of an entity, but not about it’s value. i.e. The entity type is there or not.
Suppose I know how many values an entity can have at training time.
- Would it be possible to build a featurizer that would help the entities to drive the stories?
- What else would I need to provide (any changes in elements from the
policies
/pipeline
)?
Alternatively, would it be possible to automate with some pipeline
element the slot
creation/sync?
Thanks!