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

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

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

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

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

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

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

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

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

本文作者:AI研习社

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-09-20 08:34:28

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

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

花了几个小时用Caffe撸了个最简单的斗图机器人,现在逐渐可以理解聊天的内容了.大概的思路是用随便什么网络把表情库都抽出来一个feature,然后形成一个内容数据库.如果有人在群里发图的话,抽feature,在数据库里面找最近邻,做一些简单的dedup.然后把最像的图发回去.效果意外地好.在一些不知情的群里面跟人直接斗起来了.. 但这个模型也有自己的缺点.一个因素是没有自己训练/fine tune,直接用的是在ImageNet上面训练的模型,所以在一些真实的照片上面表现的很好,尤其是对猫和狗认得

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

根据(一)的一些思路,今天把一些简单的统计功能给做了出来,部署在了个人微信号上.主要的功能是: ● 如果群里有人发 /tagcloud,就统计群里最近500条消息的标签云,然后发上去 ● 如果群里有人发 /mytag,就统计这个人最近500条消息的标签云,然后发上去 ● 如果群里有人发 /activity,就统计这个群最近一天的发言情况(每小时有多少条消息,每个人讲多少话等等),把图片发上去 大家都蛮感兴趣的,在我的个人号上部署了两个小时,收到了 400 多个请求.也来了不少黑客开始玩这个系统,

企业规划微信的三个误区

摘要: 这些日子,接触了一些想创建或优化企业微信的相关负责人.在和他们的聊天中,我总结了三个值得思考的现象,且称为企业规划微信的三个误区吧,来和大家聊聊. 现象一:现在微博 这些日子,接触了一些想创建或优化企业微信的相关负责人.在和他们的聊天中,我总结了三个值得思考的现象,且称为"企业规划微信的三个误区"吧,来和大家聊聊. 现象一:"现在微博不火了,大家都在玩微信.我们要改为在微信上做'信息推送'!" 是的,不止一家企业,做微信的目的很明确,就是"信息推送

手把手教你编写-微信机器人

一. 引言       我们都知道微信提供了多种登录的方式包括手机端.电脑端以及web端.       web端的登录我们用Python程序完全可以模拟出来~~如果你不知道那也没关系稍微了解下Python request session即可       而所谓的机器人实际上就是后台一个智能的程序类似"微软小冰""iPhone siri".今天我们要用的是一个开放的机器人API"图灵机器人"       下面就让我们一步步分析如何通过模拟web端微

获取用户手机号、qq号、微信号三大件

问题描述 获取用户手机号.qq号.微信号三大件 eclipse在开发java web的时候,页面上获取用户手机号.qq号.微信号三大件,有什么做法?有没有视屏教学?谢谢! 解决方案 http://www.cnblogs.com/zyw-205520/p/3581088.html 解决方案二: 还真的不会,用户不输入怎么获得?除非共享. 解决方案三: qq号是什么手机号我都知道

WordPress中实现微信机器人回复图解

WordPress 博客联系起来,搜索到和用户发送信息匹配的日志,并自动回复用户,让你使用微信进行营销事半功倍. 微信机器人这个插件使用非常简单,首先将其上传到插件目录下并激活,然后登录微信公众平台(https://mp.weixin.qq.com) > 点击高级功能菜单 > 开启开发模式 > 编辑公众平台消息接口: 然后返回插件设置界面,设置你上面填写的Token以及其他信息: 主题"> 设置完成之后,随意发送一个关键词给你的公众账号既可以实现自动回复了: 后台插件安装

转眼间微信就快三岁半了

转眼间微信就快三岁半了,在这三年的时间里,微信迅速地从一个嗷嗷待哺的婴儿成长成了一个会走路的孩子.就是这么一个小孩每前进一步就会受到几亿人的瞩目,对于大多数人而言,人们对他的褒奖大于争议.备受各种争论和批评,张小龙领着这个"孩子"一路向前.其中,伴随这个"孩子"一起成长起来的还有一批人--微信第三方开发者.时光荏苒,大浪淘沙.笔者就目前比较有代表性的第三方做一下分析,群雄逐鹿的微信市场,谁主沉浮?各种模式齐头并进,微信市场可谓百花齐放. 微盟,负面新闻缠身,影响力依

用 Tensorflow 搭建能理解语境的聊天机器人!

想掌握对话沟通,语境为王. 我们将使用Tensorflow构建一个聊天机器人框架,向大家示范如何实现上下文的语境处理. 有没有想过为什么大多数聊天机器人缺乏会话语境? 我们将创建一个聊天机器人框架,为一个小岛上的轻便摩托车租赁店建立一个对话模型.这家小店的聊天机器人需要处理营业时间,预订选项等简单问答.我们也希望它能处理客户根据上下文提出的问题,例如关于同一天租金的查询.体验能做好的话,可以让客户的假期留下美好回忆! 这将通过三个步骤实现: 将对话意图的定义转换为Tensorflow模型 接下来

深入理解Java内存模型(三) 顺序一致性

数据竞争与顺序一致性保证 当程序未正确同步时,就会存在数据竞争.java内存模型规范对数 据竞争的定义如下: 在一个线程中写一个变量, 在另一个线程读同一个变量, 而且写和读没有通过同步来排序. 当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此).如果一 个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序. JMM对正确同步的多线程程序 的内存一致性做了如下保证: 如果程序是正确同步的,程序的执行将具有顺序一致性(sequentially consisten