美文网首页
简易问答客服

简易问答客服

作者: playwolf719 | 来源:发表于2019-01-12 10:35 被阅读0次

写在前面

  • 为了学习,写了一个简易问答客服。主要是为了打通整个问答流程,数据主要来自一个家乡商会的册子(非常少),识别率、准确率等等等什么的,大家就权当笑话,望各位看官海涵。
  • 整个描述过程基本属于大白话,看官了解一下即可。


    image.png

问答客服步骤

  • 步骤依次
    分词——》再分词——》链接——》问句含义分析——》 图数据库——》反馈

原理和实现简单介绍

分词

  • 分词原理,主要是基于词性标注的n-gram算法。当然,不同场景,可能,用到的算法可能不一样。
  • 这块主要使用hanlp+jieba实现,主要就是识别实体、属性这些。

再分词

  • 这一步是为了根据上一步的结果(词性,句法依赖树)进行纠错。但实际上,如果想要分词效果真正提升,都应该在“分词”那一步进行,毕竟“再分词”属于补充环节,本质为trick。
  • 这一步使用的主要是各种字符串匹配+字典相关的算法。

链接

  • 链接也非常重要,说白了,链接就是给分出的词,找到确定的对应对象。比如,句子里是“姚明”,我们链接成“姚明(篮球巨星)”
  • 这一步使用的主要是各种字符串匹配+字典相关的算法。

问句含义分析

  • 带有链接的分词结果出来后,下一步就是理解该句子的意图了。
  • 目前,我用的low方法——正则匹配。不过,这里借助了工具refo。git链接 refo算是正则匹配里的高级工具,还不错,大家可以试用一下。

图数据库

  • 知道问句含义了,下一步就是根据分词结果+问句含义,生成“查询语句”了,对数据存储引擎进行查询。
  • 使用图数据库,是因为图数据库支持复杂的查询。推荐入门使用neo4j,如果需要开源且支持分布式的,可以学习下janusgraph。这个工具是基于titan的一个fork,据说很赞。

反馈

image.png
  • 毕竟,咱还没牛逼到什么问题都能回答。所以,问题回答不上来时,对应的给几条类似的反馈也是必须的。
  • 这块使用elasticsearch实现。简单来说,就是用带有ik和拼音插件的es来做,另外,es做搜索词提示,也是非常赞的,大家可以尝试一下。(注意下目前pinyin插件只支持到es6.3.0,其实大家可以改一下限制,重新生成下即可避免限制。)


    image.png
    image.png

其他

es pinyin插件安装

  • 下载插件插件地址
  • 使用ide或者其它途径,生成以下target内容,其中下图release里的zip,即为所需压缩包。(注意版本)


    image.png
  • 解压该压缩包的内容到对应版本es下的plugins的pinyin(这个可自行定义,但会影响后面的使用,比如这里叫pinyin, 那么该插件就得按pinyin作为关键词来用)文件夹下。
  • 重启es服务。

demo链接

体验链接

相关文章

网友评论

      本文标题:简易问答客服

      本文链接:https://www.haomeiwen.com/subject/wvvqdqtx.html