我在我的机器人中使用 MS LUIS。在一个意图中,我想识别数字。当用户输入包含逗号的数字时,例如“1,25”,LuisRecognizer 将“1,25”识别为数字。我使用这样的 RecognizeAsync 方法:
var luisresult = _recognizer.RecognizeAsync<MyLuisModel>(context, cancellationToken);
MyLuisModel 是使用 LUISgen 生成的:
public class M<LuisModel : IRecognizerConvert {
public enum Intent {
AnIntent,
....
}
[JsonProperty("intents")]
public Dictionary<Intent, IntentScore> Intents;
public class _Entities
{
// Built-in entities
public double[] number;
....
}
// More stuff
}
现在的问题是,当数字“1,25”被识别时,实体编号不包含 1.25 作为双精度值,而是 125。
我来自德国,我们使用“,”作为分数分隔符。
根据github上的这篇CultureInfo.CurrentCulture
文章,我尝试设置为德国文化:
CultureInfo.CurrentCulture = CultureInfo.CreateSpecificCulture("de-DE");
覆盖 double.TryParse() 使用的 CurrentCulture 但没有成功。
我怎样才能解决这个问题?