使用NLP进行句子矫正

使用NLP进行句子矫正,nlp,sentence-similarity,Nlp,Sentence Similarity,我正试图在我的网站上建立一个聊天助手,它应该能回答诸如“你能跟踪我的订单吗?”,“XXX的表现如何”之类的问题。大部分工作在于理解用户的查询 我使用“命名实体识别器”和“文本解析器”来处理查询。在此之前,我将通过“拼写检查器”传递查询,以减少以下错误: Can you track my ordr? 到 它在大多数情况下有效,但在以下情况下失败: Can you track my water? 在这种情况下,拼写更正器不会更正单词“water”,并且NER无法将实体标识为“order” 问题是

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

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

Can you track my ordr?

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

Can you track my water?
在这种情况下,拼写更正器不会更正单词“water”,并且NER无法将实体标识为“order”

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

我被困在这里了


我是否可以使用预定义查询和/或用户输入查询的统计数据更正这些句子

我不知道有什么办法可以把“水”改为“秩序”

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

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

参考资料:


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

如果你有一个非常特定的领域,你可以创建一组“公认的词”来测试成员资格。但也许最好向用户说明“水”毫无意义。“水”在其他句子中可能是一个被接受的词,例如“这款手机防水吗?”。但这句话不正确。所以按照你的想法,也许我应该为每一种句子定义词汇。。?如果是这样的话,我该怎么做呢?老实说,我建议不要自动更正“正确”的单词。当然,你可以使用一个概率模型,它表明某些单词在特定上下文中可能不常见“bigrams”/“n-grams”,但我认为你把它复杂化了。
Can you track my water?