Synonyms for Form Entities

I am diving into the forms/slot filling feature of rasa, and I am wondering how one can use synonyms within the filled slots.

In the rasa form example, “cuisine” is a slot entity (maybe I shouldn’t call this an entity? I am not sure):

cuisine:
  type: unfeaturized
  auto_fill: false

However, the inputs by the user are checked in the form action to a list of values:

@staticmethod
def cuisine_db() -> List[Text]:
"""Database of supported cuisines"""
    return [
        "caribbean",
        "chinese",
        "french",
        "greek",
        "indian",
        "italian",
        "mexican",
    ]

Is there a way that we can specify synonyms for the allowed values, and those synonyms would be mapped back to the accepted value. For example, if a user said “france” instead of “french”, the rasa form example as is would not allow “france” as a value. I am wondering if we can use the synonym feature to map france to french for this slot filling example. Thank you!

Hello @ttlekich,

Rasa offers a function of defining synonyms to your entity. Any synonym detected will be assign the specified value. Something like this:

# intent:cuisine
- get me some [france](cuisine:french)'s restaurants

In this case, if the bot detected “france”, it will assign “french” to the slot cuisine.

Read more about synonyms here: Training Data Format