适用于垂直媒体官方微信的智能答复系统设想

设想一个适用于垂直媒体官方微信的智能答复系统,分享下整体实现思路。

微信开放了公众平台的接口,很多网站和个人都接入了,包括我的老东家。不过大家好像都没有太大热情,也没投入多少技术实力,只把它当成微博外的另一个信息发布平台,每天定点发个手机报什么的。

我前一段读了《数学之美》,还看了《黑客与画家》,很想尝试下里面介绍的机器学习法。看到微信公众平台,觉得在合适不过,于是难免要YY一下:

  1. 首先是“分词”。好在已经有很多开源免费的分词工具,能够提供比较好的分词结果。对于垂直网站来说,还需要能人工添加新词,或修正分词结果。
  2. 收集语料。把用户发给官方帐号的消息收集起来,留待分析。
  3. 分析语料。找垂直媒体做实验的好处就在这儿。通用平台的用户诉求各种各样,什么都有,做语义分析会很难(参见各种半残废的“语音助手”);垂直媒体的用户相对来说诉求简单些,无非是“查询”、“问价”、“求推荐”等。所以可以先给消息定性,然后统计在每种类型的消息中每个词语出现的概率。
  4. 按照贝叶斯推断,当我们收到用户发来的消息时,可以根据消息中的词来判定他的诉求。
  5. 系统实战:
    1. 用户发来一条消息
    2. 系统对消息进行分词
    3. 按照分词结果,判断用户诉求
    4. 按照设定好的策略,给出答复

比如,用户发了一条“iPhone5水货多少钱”,那么会经历如下的过程:

  1. 分词结果为“iPhone5”,“水货”,“多少钱”
  2. 按照统计结果,出现“多少钱”的话,用户“问价”的概率是100%(实际肯定不是,这里当例子),所以系统判断这则消息是用户在问价
  3. 按照制定好的“问价答复”策略,我们找到产品名称“iPhone5”,限制“水货”,然后从经销商那里取出价格数据
  4. 按照“问价答复”模版,回填数据,发给用户,完成。

又比如,用户发了一条“什么电信手机比较好啊,真心实意求推荐”,那么:

  1. 分词:“什么”,“电信”,“手机”,“比较”,“好”,“啊”,“真心实意”,“求”,“推荐”
  2. 按照统计结果,出现“比较”,“好”,“推荐”这些词的消息,“推荐”的可能性是90%,系统即可确认
  3. 按照制定好的“推荐答复”策略,找到限制因素,“电信”,“手机“,从产品库中查出来
  4. 按照“推荐答复”摸板,回填数据,发送,完成。

似乎不复杂,对吧,哈哈?实际上应该会有一些技术门槛,不过大体上应该这样,有机会拿到数据的话,我就动手搞搞看。

作者: meathill

爱编程,爱旅游,爱吐槽。 今年的目标是完成并运营至少一个 Side Project。 《Electron + Vue 实战开发》龟速创作中……

欢迎吐槽,请勿装死

This site uses Akismet to reduce spam. Learn how your comment data is processed.