如何让你的客服问答系统从“人工智障”到“人工智能”( 三 )


如何让你的客服问答系统从“人工智障”到“人工智能”

文章插图
3.0 上线后我以为项目总该庆功了吧,不料我还是太年轻 。吹毛求疵的客户又报了几个工单上来,虽然相比旧系统少了很多,但总得给人解决吧 。这次的问题是有些意图的区分度非常低,比如“查询张大庆负责的科室”和“查询科室负责的张大庆”这两个问句分别是要查“科室”和“张大庆”,但分类结果却是一样的 。我找了找资料,原来分类算法使用了一种叫词袋模型的方法建模文档 。词袋模型最大的问题是忽略了文档单词的顺序,也就是说,这两句话在词袋向量看来,都是下图的无序集合:
如何让你的客服问答系统从“人工智障”到“人工智能”

文章插图
我动脑筋想了想,解决办法有两个 。一是在分词的时候把相邻的两个单词组合起来形成一个“新单词”,这样就在一定程度上保留了文档的语序 。二是利用 HanLP 的句法分析得出问句的语法结构,把语法结构作为一种特征信息提供给分类器 。
比如“查询张大庆负责的科室”的语法结构如下:
如何让你的客服问答系统从“人工智障”到“人工智能”

文章插图
查询的宾语是“科室” 。
“查询负责科室的张大庆”的语法结构如下:
如何让你的客服问答系统从“人工智障”到“人工智能”

文章插图
查询的宾语是“张大庆” 。
我通过自定义 HanLP 的分词器和重载文本分类接口分别实现了两种方法,然后将语料划分为训练集和测试集 。结果在测试集上第二种方案的准确率更高,说明句法分析对这种短文本分类还是有一定疗效的 。至此,这个“智能客服机器人”项目基本一致好评,圆满庆功了 。
啊哈!是不是突然觉得自然语言处理还是很有趣的 。如果你问我是哪个师傅带我进门的,那可绝对不是老胡,是这本《自然语言处理入门》 。这大概是市面上最友好的 NLP 入门书了,都是白话讲解,没有故弄玄虚的数学公式,另外还配备产品级代码 。你不需要熬夜琢磨,地铁上也可以读懂,更重要的是对你的头发有好处 。
如何让你的客服问答系统从“人工智障”到“人工智能”

文章插图

如何让你的客服问答系统从“人工智障”到“人工智能”

文章插图
(点击封面,即可抱回家)
Java 与双实现
助你零起点上手自然语言处理
本书作者是自然语言处理类库 HanLP 作者何晗 。截至 2019 年 10 月初,该项目在上 Star 数已达 15 K,超过了宾夕法尼亚大学的 NLTK、斯坦福大学的 、哈尔滨工业大学的 LTP 。
作者汇集多年经验,从基本概念出发,逐步介绍中文分词、词性标注、命名实体识别、信息抽取、文本聚类、文本分类、句法分析这几个热门问题的算法原理与工程实现 。书中通过对多种算法的讲解,比较了它们的优缺点和适用场景,同时详细演示生产级成熟代码,助你真正将自然语言处理应用在生产环境中 。
呐!HanLP 1.7.5 发布了,最后我们就来一起回顾下它的成长的历程 。希望今天 1024 程序员节,大家能无 bug 早下班 。