1

我正在尝试在我的网站上构建一个聊天助手,它应该回答诸如“你能跟踪我的订单吗?”、“XXX 的表现如何”之类的问题。大部分工作在于理解用户的查询。

我正在使用“命名实体识别器”和“文本解析器”来处理查询。在此之前,我通过“拼写检查器”传递查询以减少错误,例如,

Can you track my ordr?

Can you track my order?

它在大多数情况下都有效,但在以下情况下失败,

Can you track my water?

在这种情况下,拼写校正器不会更正单词“water”,并且 NER 无法将实体识别为“order”。

问题是“你能追踪我的水吗?” 在其他上下文中可能是正确的句子,但在我的上下文(域)中绝对是错误的。所以我应该能够纠正这句话。

我被困在这里。

无论如何我可以使用预定义的查询和/或用户输入查询的统计数据来纠正这些句子吗?

4

2 回答 2

1

我不知道您可以将“水”更改为“订单”的方法。

但是,如果您有一组预定义的问题,那么您可以在用户提交问题之前向他提供可供选择的建议。

NER 可能只识别/分类实体,它可能不用于替换部分句子,因为用户可能有意他所说的。你所做的是根据你的集合建议最概率的词。

参考:

找到最相似句子的最佳方法是什么?

查找语义相似的词

于 2016-06-05T13:16:37.433 回答
1

您可以使用n-gram模型找到最可能的单词,然后使用替换。在您的情况下,您将单词ordr替换为单词order。如果你想更深入,你可以使用机器学习模型来处理这个问题。

于 2016-06-08T12:33:08.433 回答