I am trying to produce a intent that will recognise a sentence such as
"I can't find the probate of a Will". Dialogflow does not seem to recognise 'will' in the sentence even when this sentence is in the training phrases and marked as an entity. Is there a way to get Dialogflow to recognise this word other than something like a proposition which can be ignored?
Related
We have an intent which catches a person's name and email. Below is how our training data looks.
The problem is with utterances which contain just name and email, without additional phrases around. As we are using it in SMS conversation, I guess that it could be quite often the case.
For example if user types in "Mark Randel gone#hotmail.com", we will get name: Mark and email: Randelgone#hotmail.com
I noticed that if we enter an exact phrase as it is in one of the utterances in training phrases, we will get the right result, but obviously, we can not add all possible combinations here.
Would it be expected that recognition will improve if we add additional 20-30 training phrases with various just name and email combinations? This would be kind of strange, because, what is the point of system entities in that case?
Has anyone had a similar issue?
In Dialogflow ES, default #sys.email entity allows empty string for extracting email. I think this cause the problem.
You use regexp entities with email regex, so that you might be able to extract only valid email string.
EDIT
In my environment, I created regex custom entity for extracting email.
Entity
regex : [\w-\.]+#([\w-]+\.)+[\w-]{2,4}
Test
input : Mark Randel gone#hotmail.com
output :
parameters
value
person
{'name': 'Mark Randel'}
regex-email
gone#hotmail.com
I am using dialogflow to make a chatbot.
In my scenario, the bot asks the name of user. If a user answers the name, then the bot call him using the name.
For example, if a user enters name as "I am Jack" then the bot extract Jack as given-name entity and
the answer became Thank you Jack. here, Jack, is from $given-name.
however, sometimes user insert the name as "akjdlfsa", some random words.
I hope this bot can recognize this random words as given-name. So I made 30000 random words using excel and put them in entity list.
So, some words in the list works, but it doesn't work for others. it means, bot does not recognize some random words as name entity.
How can I do more~??
Please help me~~
This is what I did to train entity~~~
The Training phrase only contains How to order but when I only type "order" it still shows or reply to me.
What can I do to make it reply to only very specific words?
image
If I didn't explain my problem well enough, here's a link on a guy that has the same problem and has better english compared to mine
https://www.reddit.com/r/Dialogflow/comments/dmy5x6/exact_match/
Click the option button (three dotted button) beside the save button inside the intent.
Click on 'disable ML'.
If Ml is disabled, The Intent will follow Rule-based grammar matching algorithm which means it will only match user expressions with the exact training phrases defined in the intent.
Add the keyword 'order' in the default fallback intent's training phrase and you should be fine. OR
You can also create a new Intent that handles only a specific keyword like 'order' in your case and add a quick reply saying did you mean how to order? Yes & No
Hope this helps :) If you have some queries do drop a comment.
#sys.email is sometimes returning extra parts of the user's input, including whitespaces. For instance:
input: "My e-mail is asdf#asdf.com"
And my #sys.email parameter is set as "is asdf#asdf.com"
I have around 150 training phrases in my intent on how to retrieve an email.
Like "My email is asdf#asdf.com" where the email is a parameter #sys.email:email, and a bunch which are email like examples, like "jsdnfknj#skjdnf.com".
I also added a template "My email is #sys.email:email".
I wonder if this is just a matter of more training needed or if there is something wrong with #sys.email.
When you say...
And my #sys.email parameter is set as "is asdf#asdf.com"
...do you mean that you've tagged "is asdf#asdf.com" as #sys.email? If so, make sure that you're only tagging the email address itself as #sys.email in your training phrases. Avoid tagging any extraneous words like "is".
Try cleaning up the entity tagging in your training phrases and see if that makes a difference.
I want to add ignore.lst in gate annie gazetteer so that the word in that list does not show while using NE. I see stop.lst inside annie gazetteer. What is the use of stop.lst for? I created ignore.lst and added it to list.def. How to make gate nlp not show names contain in ignore.lst?
I don't that it will work using only gazetteers. I think that the option will be to write a post-processing "cleanup" JAPE rule, which will delete all NE, which contains words from your stoplist.