Update Sep 20 2018: As pointed out in the comments, Dialogflow has recently introduced spell correction. Last I checked, though, since you don’t get the original text of the query, I would recommend you wait till they fix this. I have been asked many times if Dialogflow can automatically handle typos. The short answer is that it cannot. So how can we handle typos from our users? Here again, there are two types of typos* – typos in entity values and typos in regular words. I am not sure if there is any sensible way to handle typos in regular words, because Dialogflow’s pattern matching is quite broad. In other words, you cannot really anticipate all the possible variants that […]
Recently, on the Dialogflow Product forum, there was this question: There is also a reply by a Google employee, which you should go and read. There are two interesting things about this question: The asker is effectively trying to fit their entire chatbot into a single intent The asker thinks that everything should be an entity (which is probably a direct consequence of point 1) But I was more interested in why someone would think that the entire sentence is full of candidates for entities. In my opinion, you should actually try to use an entity only when you absolutely need to. So how can you decide what should and shouldn’t be an entity? Here are some ideas. Learn about […]
One of my clients had recently mentioned why she chose DialogFlow. “It just seemed to be at the right level of abstraction” That was a good way to put it, but actually I think there are four types of abstraction within DialogFlow with four corresponding types of users. For anyone who wants to work in Dialogflow, it is very good to know which type you are as you choose team members to work with. Type 1 The non-technical user This might be, for example, a business owner or a marketing person who just wants things to work. They are not interested in getting into the weeds of how Dialogflow works. For example, I got this very nice review on Amazon […]
In a recent coaching call, a client of mine had some difficulty capturing names using the @sys.given-name entity. In fact, the name which he tried and which failed, was mine 🙂 He replaced the name with @sys.any and was able to capture the name. So he got curious: why not just use @sys.any everywhere? It is not a good idea, and this article will describe why.