Cannot extract email entity from intents - Rasa Open Source - Rasa Community Forum
Cannot extract email entity from intents
post by otmarjr on Apr 9, 2022
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:
However, for email entity, it’s not detected, despite the intent being correctly classified:
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
post by itsjhonny on Apr 9, 2022
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