LUIS 用户话语后面的感叹号

Exclamation mark behind LUIS' user utterance

假设我的机器人名字是 Eva。 我有以下 GoodBye Intent 话语。

-Bye Eva
-Cya Eva
-Goodbye

如果我用"Bye Eva!"测试,分数很低。 这种情况下如何正确处理感叹号?

谢谢

标点符号确实会影响 LUIS 模型的预测。有时差异很小,但我看到了相同的差异,甚至是添加标点符号时的错误预测。我没有尝试解决这个特定问题,但我确实有一个代码片段,用于在将活动发送到 LUIS 之前拦截这些活动,您可以使用它来过滤掉不太可能与意图预测相关的标点符号。这是代码(nodejs):

async onTurn(context) {
    if (context.activity.type === ActivityTypes.Message) {
        context.activity.text = context.activity.text.replace(/!|\?|\./g,'')

        const dc = await this.dialogs.createContext(context);
        const results = await this.luisRecognizer.recognize(context);

在这种情况下,我使用正则表达式过滤掉“!”、“?”和“。” (?和 . 必须转义)。当然,您可以删除任何您想要的字符。这是基于 core-bot 示例,但无论您使用什么基本代码,您都应该能够在将话语发送到 LUIS 之前插入类似的替换语句。

当然,您始终可以使用标点符号变体来训练 LUIS 模型。我自己并没有做过太多这样的事情,但我假设一旦你用包括标点符号在内的几个例子训练了一个意图,它就会增加带有相似标点符号的话语的得分。

请注意,如果您正在使用它,这可能会影响 LUIS 中的情绪分析,尽管在我刚刚对自己的 LUIS 应用程序进行的一些测试中,我从未发现情绪得分的变化超过 1% .