Welcome to the Forum!
yes you are right. Multiple side-by-side usage of @sys.text
entity recognizer is restricted as during ML such expression may result in imprecise intent scoring.
You may try the following Expression instead:
[Expression("GET MY INFO @sys.number.integer:AccountNumber @sys.text:AccountPassword")]
public void GetMyInfo(Context context, Result result)
var accountNumber = result.Entities.OfType("AccountNumber");
var accountPassword = result.Entities.OfType("AccountPassword");
//Do something with the entities...
I have successfully tested the above code in version 2.1.0-beta-004
Also please ensure that you are running the latest version of Syn.Bot framework (at the moment its version 2.1.0-beta-004
) as 2.1.0 comes with great improvements and bug fixes.
To get the latest version use the following command in NuGet Package Manager
under Visual Studio/Xamarin Studio.
Install-Package Syn.Bot -Pre
It is highly recommended that whenever and wherever possible you should try to use custom or pre-built entities instead of @sys.text
to eliminate ambiguity. In your example code, the account number
and the account password
(if stored in a database) can easily be converted into known entities. Please take a look at this sample project