构建对话引擎或者聊天机器人所需的NLP流水线类似于某些问答系统。
聊天机器人需要4个处理阶段和一个数据库来维护过去语句和回复的记录。这4个处理阶段中的每个阶段都可以包含一个或多个并行或串行工作的处理算法。如下图所示:
1、解析:从自然语言文本中提取特征、结构化数值数;
2、分析:通过对文本的情感、语法合法度及语义打分,生成和组合特征;
3、生成:使用模板、搜索或语言模型生成可能的回复;
4、执行:根据对话历史和目标,规划相应语句,并选择下一条回复。
上述4个阶段中的每个阶段都可以使用框图中相应框中列出的一个或多个算法来实现。大多数聊天机器人将包含这5个子系统(4个处理阶段加上数据库)的所有元素,但是很多应用程序针对其中多个步骤只需要简单的算法。有些聊天机器人更擅长回答事实型问题,而其他一些则更擅长做出冗长、复杂、令人信服的像人一样的回复。上述提到的每一种能力都需要不同的方法。
此外,深度学习和数据驱动编程(机器学习或概率语言模块)使NLP和聊天机器人的应用迅速多样化。这种数据驱动的方法通过NLP流水线提供越来越多的期望得以应用的领域中的数据使其更加复杂。当一种新的机器学习方法被发现能够更好地利用这些数据进行更有效的模型泛化或正则化时,那么就有可能实现能力的巨大飞跃。
上图展示的聊天机器人NLP流水线包含了大多数NLP应用程序的所有构建模块。我们将流水线划分为4个主要的子系统或阶段。此外,我们还显式地调用了一个数据库来记录每个阶段所需的数据,并随着时间的推移保存这些阶段的配置和训练集。这可以在聊天机器人与外界进行交互时对每个阶段进行批量或在线再训练。我们还在生成的文本回复上给出了一个反馈循环,以便使用与处理用户语句相同的算法来处理我们的回复。然后,根据聊天机器人的对话规划或目标,将回复的得分或特征融合都按一个目标函数中,以评估和选择可能的最佳回复。
上述流水线在金融预测或商业分析方面的应用可能不那么明显,但是想象一下流水线分析部分生成的特征。这些从分析或特征生成中得到的特征可以针对具体的金融或商业预测任务进行优化。通过这种方式,就可以将自然语言数据输入到机器学习流水线中进行预测。
在上图中有一个处理要素通常不会用于搜索、预测或问答系统,这就是自然语言生成。而对聊天机器人来说,这是它的核心特征。尽管如此,文本生成步骤经常被合并到搜索引擎NLP应用程序中,这可以为这样的引擎带来巨大的竞争优势。对很多流行的搜索引擎来说,整合或概括搜索结果的能力是一项制胜特征。可以想象,如果一个金融预测引擎能够根据它从社交媒体网络或新闻源中的自然语言流中检测的金融业务活动生成语句、推文或整篇文章,那将非常有价值。