您正在使用IE低版浏览器,为了您的雷锋网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
此为临时链接,仅用于文章预览,将在时失效
人工智能开发者 正文
发私信给AI研习社
发送

0

能理解聊天记录的微信机器人 (三)

本文作者:AI研习社 2017-04-13 16:56
导语:如何搭建一个能理解聊天记录的微信机器人?

雷锋网按:本文作者 grapeot,原载于知乎,雷锋网获授权转载。

聊天机器人部署了一周了。花了几个小时的时间做了一些改动,有意思的部分主要有:

  • 和ElasticSearch和Kibana连了起来,现在有了实时监控和可视化了。能看到每小时平均有多少次自动回复,多少次看群里话唠,多少次看标签云。令我意外的是已经过去一周了,可是大家的热情仍然没有消退。尤其是最简单的自动回复功能,你提到“鸭哥”机器人就会自动回复“嘎?”。这么简单的功能我以为用户会玩玩就腻了。但数据显示,直到今天还有每小时30多次的峰值调戏量。甚至有个群一晚上刷了几百个鸭哥。。真是不能随便猜用户喜欢什么东西啊。。

能理解聊天记录的微信机器人 (三)能理解聊天记录的微信机器人 (三)能理解聊天记录的微信机器人 (三)

  • 第二个改动就是把标签云的算法从TF换成了TF-IDF。TF (Term-Frequency)就是最简单的数词频,这是最简单可靠的算标签云的方法,但有一个缺陷,如果没有对一些无意义的虚词做特殊处理的话,会很容易出现一些巨大但没啥意义的词。比如这个例子,“这个”,“就是”,“可以”等等。占据了大量的空间,但没啥信息量。


能理解聊天记录的微信机器人 (三)

而 IDF(Inverse-Document Frequency)则可以解决这个问题。它基本上代表了每个词的信息量。IDF的基本思想是,如果一个词在好多群里面都有出现(比如“的”),那么就对这个词施加惩罚,让它的权重变小。如果这个词只在几个群里面出现(比如“社会主义”),那就让它变大。这样就能保证,面积最大的几个词不仅是大家经常说的,而且是最有信息量的。经过算法的这个更改以后,我们对同一个群计算标签云,结果就变成了这样:

能理解聊天记录的微信机器人 (三)

这个群最有特色的几个词一下就出来了。

  • 此外,我还试着把标点符号也加入到了计算里面,结果很有意思。大多数的群的标签云里面都是没什么标点符号的。原因很简单。第一,聊天的时候以短句为主,后面本来就很少加标点,TF不高。第二所有群基本上用标点的频率都差不多,所以标点的IDF也差不多。因此不会有标点特别大的情况出现。但我看到了两个群有很大的标点出现。

能理解聊天记录的微信机器人 (三)

上面这个图是科大的AI群。因为里面经常进行一些大段的深入的讨论,所以逗号,句号和顿号都非常明显。而下面这个群,则是因为在聊买房,贷款,所以出现了百分号%。又因为这个符号在其他群里都没有出现,所以IDF巨大。一下就抢占了很大的空间。这也是为什么里面出现了房子,地主婆等关键字的原因。。

能理解聊天记录的微信机器人 (三)

所以在某种程度上,这个机器人已经可以理解大家说话的内容了。比如可以区分内容中独特的部分。这对于分类,聚类等等进一步的应用都是非常有帮助的。如果你有什么有意思的应用,也可以在评论中提出来,我们来帮你实现。

编者注:关于本文的后续内容,我们后面几天将在雷锋网(公众号:雷锋网)陆续刊登,敬请关注。

雷锋网相关阅读:

能理解聊天记录的微信机器人 (一)

能理解聊天记录的微信机器人 (二)

雷锋网版权文章,未经授权禁止转载。详情见转载须知

能理解聊天记录的微信机器人 (三)

分享:
相关文章

文章点评:

表情

编辑

聚焦数据科学,连接AI开发者。
当月热门文章
最新文章
请填写申请人资料
姓名
电话
邮箱
微信号
作品链接
个人简介
为了您的账户安全,请验证邮箱
您的邮箱还未验证,完成可获20积分哟!
请验证您的邮箱
立即验证
完善账号信息
您的账号已经绑定,现在您可以设置密码以方便用邮箱登录
立即设置 以后再说