LUIS用户话语背后的感叹号

时间:2019-12-02 08:50:30

标签: luis

让我们说我的机器人名字叫Eva。 我有关于GoodBye Intent的话。

-Bye Eva
-Cya Eva
-Goodbye

如果我使用“ Bye Eva!”进行测试,则得分非常低。 在这种情况下如何正确处理感叹号?

谢谢

1 个答案:

答案 0 :(得分:0)

标点符号确实会影响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之前插入类似的replace语句。

当然,您始终可以使用标点符号变化来训练LUIS模型。我本人并没有做太多事情,但是我假设一旦您通过举几个例子(包括标点符号)来训练了意图,它就会以类似的标点符号增加话语的得分。

请注意,如果您使用的话,这可能会影响LUIS中的情感分析,尽管在某些测试中,我只是在自己的LUIS应用程序上进行了测试,但我的情感得分变化从未超过1%。 / p>