Cannot extract email entity from intents

Hello,

I’m struggling to extract an email entity from my intents. I’ve tried to create a simple project to debug this issue, based on this repo Conversational-AI-with-RASA/Chapter02 at main · PacktPublishing/Conversational-AI-with-RASA · GitHub

I translated the messages, hoping that it could be an issue with my language, but if I try questions for the medicine intent, entities are correctly extracted: image

However, for email entity, it’s not detected, despite the intent being correctly classified: image

config.yml

language: pt

pipeline:
  - name: WhitespaceTokenizer
  - name: RegexFeaturizer
  - name: LexicalSyntacticFeaturizer
  - name: CountVectorsFeaturizer
  - name: CountVectorsFeaturizer
    analyzer: char_wb
    min_ngram: 1
    max_ngram: 4
  - name: RegexEntityExtractor
    case_sensitive: False
    use_lookup_tables: True
    use_regexes: True
    "use_word_boundaries": True
  - name: DIETClassifier
    epochs: 100

domain.yml

version: "2.0"

intents:
  - cumprimentar
  - despedir
  - remedio
  - dpto_medico
  - hospital
  - informar_email

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."

session_config:
  session_expiration_time: 60
  carry_over_slots_to_new_session: true

nlu.yml

version: "2.0"

nlu:
- intent: cumprimentar
  examples: |
    - olá
    - Ola
    - Oi
    - Prezados, bom dia
    - Prezado da DTIC, bom dia
    - Olá informática
    - Caros da DTIC
    - Olá
    - bom dia
    - boa tarde
    - boa noite
- intent: despedir
  examples: |
    - até mais
    - t+
    - despedir
    - até a próxima
    - ok
    - encerrar
    - adeus
    - tenha um bom dia
    - tenha uma boa tarde
    - tenha uma boa noite
    - agradeço
    - grato
    - grata
    - ok, tchau
    - tchau
    - valeu

- intent: remedio
  examples: |
    - Que remédio devo tomar para [resfriado](doenca)
    - Estou [constipado] (doenca), o que eu devo tomar?
    - Sinto uma [estomatite](doenca), que remédio devo tomar?
    - Que tipo de remédio é bom para [espirro o tempo todo](doenca)?
    - Meus pais tem [pressão alta](doenca), que tipo de remédio eu devo recomendar para eles?
    - Minha cabeça está quente e eu me sinto [febril] (doenca), que tipo de remédio eu devo tomar?
    - Existem recomendações de remédio para [perda de peso](doenca)?
- intent: dpto_medico
  examples: |
    - Para qual departamento eu devo ir quando eu tenho [resfriado](doenca)?
    - Eu tenho [constipação](doenca), para que departamento devo ir?
    - Estou [constipado] (doenca), para qual departamento devo ir?
    - Qual departamento eu devo ligar se eu continuar a [espirrar](doenca)?
    - Para que departamento ir se eu sentir [dores de cabeça](doenca)?
- intent: hospital
  examples: |
    - Para que hospital devo ir para olhar minha [estomatite](doenca)?
    - Estou doente e não sei onde ir para procurar um médico.
    - Quais os bons hospitais ou postos de saúde recomendados para [perda de peso](doenca)?
    - Qual o hospital com melhor preço para [exame físico](doenca)?
    - Meus pais tem [pressão alta](doenca), qual o melhor hospital para eles irem?

- intent: informar_email
  examples: |
    - O e-mail é [exemplo.sobrenome@trt3.jus.br] (email)
    - E-mail [f123456@trt3.jus.br] (email)
    - [apenasemail@trt3.jus.br] (email)
    - Meu email é [ciclano.sobrenome@trt3.jus.br] (email)
    - EMAIL [nomesobrenome@trt3.jus.br] (email)
    - FAVOR ENVIAR PARA [EXEMPLO@TRT3.JUS.BR] (email)
    - endereço de e-mail é [selpd@trt3.jus.br] (email)
    - o e-mail funcional é [f987654@trt3.jus.br] (email)
    - Minha caixa funcional é [beltrano@trt3.jus.br] (email)
    - O email funcional [ciclano@trt3.jus.br] (email)
    - e-mail institucional [nomeabrev@trt3.jus.br] (email)
    - email do usuário: [cat@trt3.jus.br] (email)
    - [nomesobrenome@trt3.jus.br] (email)
    - [umemaildacontagmail@gmail.com] (email)
    - [f123456@trt3.jus.br] (email)
    - [a123456@trt3.jus.br] (email)
    - [f023456@trt3.jus.br] (email)
    - [p123456@trt3.jus.br] (email)
    - [zzzzz@hotmail.com] (email)
    - [aaa_bv23@globo.com] (email)
    - [a1235.fadsfsda@yahoo.com.br] (email)
    - [maisumapenas-email@msn.com] (email)

- regex: email
  examples: |
    - \b\w+([.-]?\w+)@\w+([.-]?\w+)(.\w{2,3})+\b

For extract users information in text, i like to use rules + custom actions Maybe, this is will be an alternative

action example

def name(self) -> Text:
  return "action_get_email"

def run(self,
       dispatcher: CollectingDispatcher,
       tracker: Tracker,
       domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:

     dispatcher.utter_message("your email must be write like that example marysmith90@gmail.com")
     email= ((tracker.latest_message)['text'])
     regex_email =r"([A-Za-z0-9]+)@\S+"
     email_matched = re.findall(regex_email,email)

    if  email_matched is not None :
        dispatcher.utter_message("your email has been  accept:{}".format(email_matched))
    else :
        dispatcher.utter_message("your email has been not accept")
    return []

Rasa Forms is greet too