1

我在这里玩 Luis 股票代码示例,GitHub MicrosoftBotBuilder Example,它运行良好,并且可以识别话语中的实体,但是世界上有些股票代码中有句点,例如bt.a

默认情况下,Luis 会预处理在标点符号周围插入断词的话语,因此“ bt.a 的价格是多少”的话语变为“ bt.a 的价格是多少”,因此 Luis 认为实体是“ bt ” “ bt.a ”的

有谁知道如何解决这个问题?谢谢

4

2 回答 2

3

这就是 LUIS 对话语进行标记的方式,我认为它在不久的将来不会改变。我认为您可以调查以下两种解决方案之一:

  1. 预处理话语并使用标点符号规范化实体(可能将它们保存在地图中),并在调用 LUIS 并提取实体时反转该过程。
  2. 使用短语列表功能并在其标记化形式中添加 LUIS 遗漏的实体,在话语中标记实体标记,然后重新训练模型(我建议您在应用程序的克隆中尝试这样做,这样您就不会丢失任何当前进度)
于 2016-07-31T11:37:41.870 回答
1

我需要处理带有网站地址的句子,所以我必须处理一些不同的符号。我找到了一种对我有用的技术,但它不是很优雅。

我在这里假设您有一个实体设置来表示“股票代码”

这是您的情况。

  1. 检测 LUIS 获取“股票代码”实体错误的情况。在您的情况下,这可能是在一段时间结束时。
  2. 当 LUIS 获取错误的实体时,使用空格作为分隔符对原始查询进行标记。通过查找与错误的部分标记匹配的内容来获取正确的标记。

所以对于你的例子....

“bt.a的价格是多少”

您会看到“bt”的“股票代码”实体。并且知道这是错误的,因为它以句号结尾。然后,您将对查询进行标记并查找包含“bt.”的标记。这会将“bt.a”标识为请求的符号。

它不漂亮,但在网站地址的情况下是可靠的。

于 2016-07-31T04:35:16.760 回答