We are trying to extract product from the user input, The problem is that it only extracts the products that are predefined in the intent. Is there a way to extract the entities that are not present in the intent, we have given around 30 examples in the intent. Sometimes it does extract the product which are not mentioned in the intent but it is very rare.
When i give example as " i want computer" it doesnt recognise.
Config.yml
language: en
pipeline:
- name: SpacyNLP
model: "en_core_web_md"
case_sensitive : False
- name: SpacyTokenizer
- name: SpacyFeaturizer
- name: SklearnIntentClassifier
- name: LexicalSyntacticFeaturizer
- name: CountVectorsFeaturizer
- name: CountVectorsFeaturizer
analyzer: "char_wb"
min_ngram: 1
max_ngram: 4
- name: DIETClassifier
epochs: 100
- name: EntitySynonymMapper
- name: ResponseSelector
epochs: 100
nlu.yml
- intent: inform
examples: |
- [milk]{"entity":"product"}
- types of [pulses]{"entity":"product"}
- [water]{"entity":"product"}
- [Chips]{"entity":"product"}
- intent: request_grocery
examples: |
- Add [Chips]{"entity":"product"} to my cart.
- Could I have some [biscuits]{"entity":"product"}
- Do you have [noodles]{"entity":"product"}
- Can i have [onion]{"entity":"product"}
` - I want [phone]{"entity":"product"}`
(Have given more examples these are for the reference)
Rules.yml
version: "2.0"
rules:
- rule: Say goodbye anytime the user says goodbye
steps:
- intent: goodbye
- action: utter_goodbye
- rule: Say 'I am a bot' anytime the user challenges
steps:
- intent: bot_challenge
- action: utter_iamabot
- rule: activate grocery
steps:
- intent: request_grocery # intent that triggers form activation
- action: grocery_form # run the form
- active_loop: grocery_form # this form is active
- rule: submit form
condition:
- active_loop: grocery_form # this form must be active
steps:
- action: grocery_form # run the form
- active_loop: null # the form is no longer active because it has been filled
- slot_was_set:
- requested_slot: null
- action: utter_submit # action to take after the form is complete
- action: utter_slots_values # action to take after the form is complete
- active_loop: null
- action: action_restart
Domain.yml
version: "2.0"
intents:
- greet
- goodbye
- affirm
- deny
- bot_challenge
- request_grocery
entities:
- product
forms:
grocery_form:
product:
- type: from_entity
entity: product
slots:
product:
type: text
auto_fill: false
influence_conversation: false
responses:
utter_greet:
- text: "Hey! How are you?"
utter_cheer_up:
- text: "Here is something to cheer you up:"
image: "https://i.imgur.com/nGF1K8f.jpg"
utter_did_that_help:
- text: "Did that help you?"
utter_happy:
- text: "Great, carry on!"
utter_goodbye:
- text: "Bye"
utter_iamabot:
- text: "I am a bot, powered by Rasa."
utter_submit:
- text: "All done!"
utter_slots_values:
- text: "I am going to run a shopping search using the following parameters:\n
- product: {product}"
session_config:
session_expiration_time: 60
carry_over_slots_to_new_session: true