Extracting Entities from Intents

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