我有一个具有以下设置的作曲家文本输入任务。我正在制作一个机器人来测试 Luis 与机器人集成的功能。我面临的问题不是实体识别本身;而是对实体的输入任务进行实体验证。我只在使用文本输入任务并且实体验证适用于其他任务(特别是日期时间)时才注意到这一点。
为了说明我的问题,以下是机器人的两种当前行为:
WAI: 我会说“我想预约,我的联系电话是 (800)-234-5678”。这不仅会触发我的意图模型并跳过我询问用户电话号码的用户输入问题(因为他们已经提供了一个),并且 conversation.phoneNumber 变量是 (800)-234-5678
不是 WAI: 我会说“我想预约,我的联系电话是 abc”。这会根据需要触发我的意图模型,但会跳过我询问用户电话号码的用户输入问题(因为它认为他们已经提供了一个)并且 conversation.phoneNumber 变量是 abc。理想情况下,这是我认为会发生验证的地方,它会问“什么是我们办公室的好电话号码......”因为 abc 不是电话号码。
作为参考,这是我正在关注的文档: https ://docs.microsoft.com/en-us/composer/how-to-define-advanced-intents-entities
我考虑使用正则表达式验证器作为一个选项,因为电话号码是一个可以轻松定义的微不足道的实体,但是更复杂/多样化的东西(例如地理位置、货币等)将更好地由 Microsoft 提供的任何字典处理内置实体。当我输入一个显示没有实体被拾取的话语时,我可以看到原始数据(所以有些东西在后台工作)。我只是好奇我是否可以在机器人作曲家任务中使用该功能。
正如我之前所说,这在验证用户是否在单独的任务中输入了日期/时间时工作正常;我希望机器人作曲家中的其他内置的、基于文本的实体有一个功能。
我假设微软在此处https://docs.microsoft.com/en-us/azure/cognitive-services/luis/luis-reference-prebuilt-entities对其内置实体的任何内置实体识别都非常重要优于我能想出的任何正则表达式,并且某种类型的内置验证对于更复杂的机器人来说会很方便。