手把手|用Python端对端数据分析识别机器人“僵尸粉”

识别

原文作者:Erin Shellman

导读:不仅微博,在twitter中也存在大批的“僵尸粉”。Twitter中的“僵尸粉”不仅能够在无人干预下撰写和和发布推文的程序,并且所产生的推文相当复杂。如何识别这批“僵尸粉”或者说“机器人粉丝”?下面我们将通过Python的Pandas库、自然语言处理学习NLTK和scikit-learn创建分类器对Twitter机器人进行识别。

在本文中,我想要讨论一个互联网现象:机器人,特别是Twitter机器人。

我之所以一直关注Twitter机器人主要是因为它们有趣又好玩,另外也因为Twitter提供了丰富而全面的API,让用户可以访问到Twitter平台信息并了解它们是如何运作的。简而言之,这让Python强大的数据分析能力得到了充分地展示,但也暴露了它相对薄弱的环节。

对于那些不熟悉Twitter的人, 我们先简单介绍一下。Twitter是一个社交媒体平台,在该平台上用户可以发布140字以内的恶搞笑话,称之为“推文”。Twitter根本上区别于其它的社交媒体是因为推文默认是公开的,并且在Twitter上互相关注的人实际上不一定彼此认识。你可以认为Twitter不单单是个人信息流,更像是一个想法交易市场,流通的货币则是粉丝和推文转发。

推文

Twitter另外一个显著的特点是它自身内容的“嵌入式能力”(见上图的搞笑例子)。如今,将推文作为新媒体的一部分是稀疏平常的一件事。主要是因为Twitter开放式的API,这些API能让开发者通过程序来发推文并且将时间轴视图化。但是,开放式的API让Twitter在互联网广泛传播,也对一些不受欢迎的用户开放了门户,例如:机器人。

Twitter机器人是能够在无人干预下撰写和和发布推文的程序,并且所产生的推文相当复杂。其中一些机器人相对不活跃,只是用来增加粉丝和收藏推文的。而另一些会借助复杂的算法来创建具有说服力的推文。所有的Twitter机器人都可能变得让人讨厌,因为它们的出现破坏了Twitter分析的可信度和商业价值,最终甚至会触及底线。

那么Twitter能对这些机器人做些什么呢?首先,要做的是去识别它们,以下是我的方法。

创建标签

核心目标是创建一个分类器来识别哪些账号是属于Twitter机器人的,我是通过监督学习来实现的。“监督”意味着我们需要已有标注的样本数据。例如,在最开始的时候,我们需要知道哪些账号属于机器人,哪些账号属于人类。在过去的研究中,这个费力不讨好的任务已经被研究生的使用(和滥用)完成了。例如:Jajodia 等人通过手动检测账号,并且运用Twitter版本的图灵检测来判断一个账号是否属于机器人,判断推文是否由机器人发布的。问题是我已经不再是个研究生了并且时间宝贵(开玩笑)。我解决了这个问题多亏我的朋友兼同事Jim Vallandingham 提出的绝妙建议,他向我推荐了fiverr,一个花5美元就能获取各类奇特服务的网站。

创建标签

花了5美元,等待24小时之后,我有了5500个新粉丝。因为我知道在机器人关注之前,我的粉丝都有哪些,所以我可以有效地识别哪些是人类,哪些是一夜激增的机器人粉丝。

创建特征

由于Twitter有丰富的REST API(REST指一组架构约束条件和原则,满足约束条件和原则的应用程序设计——译者注),创建特征集是几乎不违反服务条约的行为。我使用Python-twitter模型去查询两个终端指标:GET users/lookup(获取用户信息)和 GET statuses/user_timeline(获取用户状态、时间轴信息)。获取用户信息的终端会返回JSON文本,这些文本中包含了你所希望得到的用户账号信息。例如:用户是否使用了默认的模板配置,关注者/被关注者的数量,发布推文的数量。从获取的用户时间轴信息中,我抓取了数据集中每个用户最新的200条推文。

问题是,Twitter官方不允许你直接大量地收集你所想要的数据。Twitter限制了API的调用频率,这样意味着你只能在需求范围内获取少量的样本数据进行分析,因此,我使用了以下美妙的方法(blow_chunks)来获取数据:

用户喜欢...

数据分析是如何推动游戏行业发展的?

2018年,电子游戏行业收入达到434亿美元,再创新高,同比增长18%。这一蓬勃发展的领域孕育了更为复杂和广泛的游戏格式,包括桌面、移动、控制台、VR等。事实上,数据分析师和BI开发人员正...


数据分析的一些常见问题

文|西湖小霸王 数据分析和数据挖掘,是大数据应用的核心技术,也是大数据应用的关键所在。 数据分析重要,但是...


基于时空算法研究的商业决策分析

作者:康维珊、刘际洲、和常盎 常言道:...


大数据洞察报告的变现困境,到底要怎么走出

作者:傅一平 “虽然我也如一个囚徒,正寻找着大数据洞察报告的光明“,这是我上篇《为什么没人愿意为大数据洞...


如何让热点图支持大数据

作者:funkgiser 所谓的热点图,是图1)构建一张灰度图,图2)在每个热点的位置上绘制并叠加形成灰色的热点图,图3)根...


黑科技:利用python的theano库刷kaggle mnist排行榜

背景 theano 是一个python语言的库,实现了一些机器学习的方法,最大的特点是可以就像普通的python程序一样透明的使用...


如何将枯燥的大数据呈现为可视化的图?

作者:哈士奇不姓哈 将数据转化成可视化图表/形,其实一个工具就能完成,碍于工具太多,按照使用场景,暂且将已...


数据流程图和数据结构是需求分析中不可缺少的一环

作者:王小双 需求分析活动要完成4项任务,分别是: 问题识别 评价和综合 形成规格说明 评审规格说明 这4项任务中...


使用R语言预测泰坦尼克号乘客生存率

作者:SeeU 导语: 1912年4月10日,号称 “世界工业史上的奇迹”的豪华客轮泰坦尼克号开始了自己的处女航,从英国的...


做数据分析时,你的方法论是什么?

作者: 杜王丹 这是一篇方法论。是的,没有实际案例。在知乎、woshipm、pmcaff、产品100等搜索了大量的数据分析相关...


我分析了6.5W字的歌词 看到了这样的周杰伦

作者:冬鑫 前一段时间分析民谣歌词的那边文章特别火,刚好在研究使用python处理数据,就也想弄个类似东西练练手...


零基础搭建运营数据分析知识体系

文 | TalkingData 对于数据分析,我发现很多运营都有这样一些困惑: 不知道从哪里获取数据; 不知道用什么样的工具;...


LinkedIn CEO眼中最好的数据分析师谈大数据运营

在她加入LinkedIn市场营销部门之前,他们很多市场部经理加大数据专家,做了快1年的内容运营,CTR才2%。她去了以后,...


苹果2亿美元收购“暗数据”机器学习公司Lattice Data

据TechCruch报道,苹果最近以2亿美元的价格收购了Lattice Data,该公司旨在将诸如文本和图像这样的非结构化的“暗数据...


银行与互金都在谈大数据,相比之下有何不同?

作者:薛洪言 在《大数据在金融业中的应用》发布之后,便有朋友留言问,“银行的大数据和互金的大数据应用有没...


如何利用Excel中进行高级数据分析(下)

上篇博文已经介绍了如何安装Excel的高级数据分析功能,并且介绍了回归分析,说实话篇幅有点长,主要是安装那块截...