智能客服打造系列(中)

拖延症晚期

距离 智能客服打造系列(上) 已经快半年过去了,现在这篇才迟迟动手。虽然本文中提到的解决方案也已经不再采用了,不过还是记录一下。

CNN 提取语言特征

CNN 全称为 Convolutional Neural Network,中文名叫卷积神经网络,常用于图像处理领域。CNN 具有结构较简单、特征提取能力强等特点,基本所有神经网络的课程都会优先介绍 CNN。

之前有看到一篇 文章,里面提到了用 CNN 实现问答机器人的思路。当时觉得这个思路很不错,借鉴并针对项目需求修改了下,效果还行。

它的整体结构如下图,对原实现方式感兴趣的可以看原文和作者的代码,我这里主要讲一下我的不同之处。

由于项目所建立的知识库有点特殊,问题比较简短,而答案又比较大而全,如果采用 Q 和 A 匹配的方式,A 的大部分会被截断,不利于特征提取。而且抛去业务背景,只观察 Q 和 A 很难看出来其中的关联。所以,我做了一点修改,将 QA 匹配改为 QQ 匹配,即问题和问题的匹配。

具体的代码可以看 WebQATest 仓库,原理什么的就不多说了。用的 WebQA 训练和测试,匹配准确率能有 60% 到 70%,和文献中说的差不多。