【发布时间】:2016-06-05 12:49:16
【问题描述】:
我正在尝试在我的网站上构建一个聊天助手,它应该可以回答诸如“你能跟踪我的订单吗?”、“XXX 的表现如何”之类的问题。大部分工作在于理解用户的查询。
我正在使用“命名实体识别器”和“文本解析器”来处理查询。在此之前,我通过“拼写检查器”传递查询以减少错误,例如,
Can you track my ordr?
到
Can you track my order?
它在大多数情况下都有效,但在以下情况下失败,
Can you track my water?
在这种情况下,拼写校正器不会更正单词“water”,NER 无法将实体识别为“order”。
问题是“你能追踪我的水吗?”在其他上下文中可能是正确的句子,但在我的上下文(域)中绝对是错误的。所以我应该可以纠正这句话。
我被困在这里了。
我是否可以使用预定义的查询和/或用户输入查询的统计数据来更正这些句子?
【问题讨论】:
-
如果您有一个非常具体的域,您可以创建一组“接受词”来测试成员资格。但也许最好让用户明白“水”没有意义?
-
“水”在其他句子中可能是一个公认的词,例如。 “这款手机防水吗?”。但是在这个特定的句子中是不正确的。所以按照你的想法,也许我应该为每种句子定义词汇......?如果是这样,我该怎么做?
-
我真诚地建议不要自动更正“正确”的单词。当然,您可以使用概率模型来建议某些在特定上下文中可能不常见的单词“bigrams”/“n-grams”,但我认为您过于复杂了。