Actually the role would be of Natural Language Processing. What you are asking is that, if you have an expression and the user types something semantically similar then the intent should be given higher confidence score.
Well, this is exactly the sole purpose of the NLP engine of Oscova. That is, to find similarities between developer created expressions and user submitted requests.
Here's an example:
- I love Pizza -> Your expression
- I like Pizza -> User request
Both the above sentences are very similar as they reflect the user's likeness towards pizza and may possibly belong to a single intent. However, in reality the 2 expressions aren't exactly the same so the intent score should be slightly less when the user types "I like pizza". This is by design as if similar sentences were given exactly the same confidence score then it would become impossible to compute any sort of differentiation.
From 2.6.0 Oscova always uses ML algorithms and only when you explicitly select Deep processing mode Oscova will forcefully create deeper neural network layers that take a lot of memory and may not always gives extremely higher confidence, as this is the case with any bot architecture. For performance critical applications we recommend using the Standard
To enhance the NLP, developers can provide additional information to Oscova. For which we've built in multiple APIs. You can either load WordNet lexical database
or load Word Vectors
, in Machine Learning Word Vectors are vector representations of words as words cannot be directly fed into Neural Networks.