客户支持问答聊天机器人

数据挖掘 机器学习 nlp
2021-10-01 19:43:03

我想构建一个聊天机器人,作为零售网站上的一线客户支持。我有大量可以使用的客户和支持专业人员之间的聊天会话日志。我想知道构建这个聊天机器人的最佳方法是什么。

以下是我研究过的一些想法;

  • 我做的第一件事是将聊天记录分解为问答对。将每个问题视为一个文档,计算一个术语-文档矩阵,并在客户提出问题时使用它来检索最相似的问题。这个想法是然后简单地选择人类给出的问题的答案(进行一些修改)。然而,这给出了非常糟糕的结果,并且与之前的问题不太匹配。即使我让这种方法运作良好,我们也将仅限于已经提出的问题。
  • 我想到的另一件事是修改 ALICE 之类的东西,并为客户支持相关的 QA 编写一些 AIML。然而,这需要大量非常精确的 AIML 文字才能正常工作。该解决方案将无法扩展到其他语言,这是我想做的事情。
  • 我的另一个想法是尝试对客户支持人员给出的答案进行聚类(与客户提出的问题相比,它们更有可能保持一致)。这会让我了解哪些问题是相似的。然后我可以在问题上使用 LSA 之类的东西,然后回到第一种方法。
  • 还有一种方法是建立领域特定知识的本体,并给定一个问题来决定该问题属于哪个类别。然后可以将聊天日志中的问题映射到本体,我可以训练分类器将问题映射到不同的知识领域。一旦我到达叶节点,我就可以给出预定义的答案。但是,我的保留是,将聊天日志映射到本体会非常繁琐。有没有将现有 QA 映射到本体的好方法?
1个回答

这是为了作为评论。

我认为这个问题没有得到足够的重视,因为如果不先尝试几种方法就很难回答。

您的第三个想法是一个不错的想法,但 LSA 很可能无法帮助您选择具有必要粒度的集群。例如,您可能会得到一组“损坏的东西”,但没有达到对客户有帮助所需的特殊性。类似的方法是使用 Hierarchical Dirichlet Processes,但同样,您可能无法获得所需的集群。

我不会那么急于尝试您的第四个选项,因为它需要大量工作,而且我不确定您是否会获得很好的结果,除非您的客户支持处理非常明确的问题,在这种情况下,您'将不得不从头开始构建自己的本体。

在您的情况下,如果我能获得有关 Watson 内部运作的信息,我会很好奇(显然,目的只是对一些足够明智的步骤有一个大致的了解。)这是一个描述性图像,可能是来自维基百科的帮助:

在此处输入图像描述

主要思想是将问题分成其组成部分(使用常规分块),然后提出问题可能涉及的几种可能性(假设生成)(也许此步骤可以作为聚类来实现)。第三阶段是根据现有信息对先前的假设进行评级。最后,您选择更有可能的假设。在此过程中使用示例问题及其答案提供反馈。看看是否可以根据贝叶斯或增量方法对评级阶段进行建模以允许反馈,这将是一件有趣的事情。