首页 > 代码库 > 虎扑论坛装备区到底有没有李宁水军?——论坛水军发现实践

虎扑论坛装备区到底有没有李宁水军?——论坛水军发现实践

目录

1 易建联脱鞋事件
2 传说中的网络水军
  2.1 网络水军是什么?
  2.2 网络水军发现技术
3 基于同贴率的网络水军发现
4 基于情感分析的网络水军发现
5 总结


1 易建联脱鞋事件

技术分享

(图片来自网络,侵删)

  2016年11月2日,刚刚从NBA回归的易建联没想到搞了个大新闻!过去4年来,李宁公司作为CBA联赛赞助商总是有些尴尬:其与篮协签订的合约中明确要求比赛中所有球员不得穿戴竞争对手的运动鞋服(包括袜子),可是外籍球员与一些国手仍获得了“特例”。今年是5年20亿合约的最后一年,李宁“突然”要求篮协严格执行合约,不着赞助商装备的球员将面临警告甚至禁赛的处罚。11月2日,易建联重新回到CBA的第一场比赛,由于事先的申请没有获得批准,作为中国篮球第一人的易建联一登场却让广大的吃瓜群众“失望”了。他似乎是妥协了,穿着的是李宁的闪击3代球鞋进行了热身,并开始了比赛。可是,比赛进行到第2节,在没有暂停的情况下,易建联在场上脱下了球鞋,并留在了场上。之后,其穿上其代言的耐克球鞋,欲再次上场,却没有获得裁判的批准。此前,同样作为耐克代言人的新疆队的周琦,也因同样的情况被禁止出场。可能是迫于现场观众的压力,易建联在第3节比赛中获得再次上场的机会,这时其已穿着自身代言的耐克球鞋。

  一时间,微博、虎扑论坛炸开了锅。目前主要有3种观点:

  1. 易建联是反抗强权的英雄!李宁与篮协狼狈为奸对球员进行了剥削。该种观点在微博上尤其多,并有网友发起了#脱鞋声援易建联的话题。
  2. 篮协是罪魁祸首,其僵化、贪婪等导致了中国篮球职业化的进程变慢,在财务上过度依赖赞助商只是其造成的恶果之一。
  3. 这仅仅是商业竞争。即使球鞋再不合适,易建联也缺乏职业素养,其被耐克利用了来搞这出戏,耐克很恶心。李宁背了个大锅,不管怎样,似乎都留下了产品被职业运动员“嫌弃”的印象(实际上,李宁和耐克这两双鞋都不同程度上被炒热了,淘宝第二日便出现了易建联同款)。

  但是,在虎扑装备论坛,却还有一种声音:李宁公司的水军又来洗白了!注意,这里用到了“又”字,可见这种声音已经不是第一次在该论坛中出现了。每隔一段时间,虎扑装备论坛中总有会起一些争执,有部分网友认为李宁公司请了水军在论坛中兴风作浪,这些水军或夸张地宣传李宁的商品好,或恶意地诋毁竞争对手的产品,或者容不得其他网友说李宁的不好。有网友甚至信誓旦旦地说,水军是肯定存在的,在某年某月他曾经见识过他们的厉害,就是固定的一群人。但是,终究没有人给出切实的证据来证明虎扑装备论坛存在李宁的水军,李宁水军成为了论坛中的一个传说!

  于是,我想了想,决定借此机会献个丑,利用数据挖掘技术来会会这个传说。网络水军发现我也是第一次做,并不是说要提出一种更优的网络水军发现技术,而是利用现在比较成熟的工具来做这样一个实践工作。所以这篇文章与之前相比,会更“娱乐”一些,相应也会更不严谨一些。


2 传说中的网络水军

2.1 网络水军是什么?

  要研究网络水军发现,我们首先得知道什么是网络水军,以下是节选自百度百科和维基百科的网络水军定义:

  百度百科:

网络水军即受雇于网络公关公司,为他人发帖回帖造势的网络人员,以注水发帖来获取报酬,有时候也可以指在网上通过大量水贴来制造娱乐搞笑气氛的网友;网络水军有专职和兼职之分;网络水军的存在是网络营销的进阶,但是网络水军是双刃剑,需要各个网络公司把握好应用角度。

  维基百科:

On the Internet in the People‘s Republic of China, an Internet Water Army or Wangluo shuijun (simplified Chinese: 网络水军; traditional Chinese: 網絡水軍; pinyin: Wǎngluò shuǐjūn; Wade–Giles: Wang-luo shui-chün) is a group of Internet ghostwriters paid to post online comments with particular content. 

  通过这两个定义,我们不难网络水军发现有这样一些特点:

  • 目的性:网络水军的发言通常是有目的性的,或直接“攻击”对手,或间接“分散”雇主遭受的攻击,高级的网络水军甚至可以“引导”舆论。采取不同的手段都是为了达成雇主给定的目标。
  • 组织性:顾名思义,网络水军必须具有一定的规模。通常来说,水军的规模相比言论的质量,与攻击效果更直接相关。但是,从成本上考虑,具有一定规模的网络水军,其发言的时机和内容具有相似性。也就是说,水军通常是在同一个时间段里(更普遍的情况是在同样的微博、话题、论坛板块或帖子中)进行集中攻击,并且发言的内容由模板生成。当然,更高级的网络水军可以“各说各话”,其隐蔽性非常高。

  论坛中的网络水军相比社交网络中的水军,其还有一些更特别的地方。论坛中基于关注的社交关系是意义不大的,社交网络中水军关注水军的现象在论坛中可能并不存在。所以,怎么建立用户关系网络是论坛网络水军发现工作的一个痛点。另外,论坛相对社交网络更加简单,管理维护工作也相对容易,发布相似内容的水军很容易被删贴,所以,论坛中可能存在高级水军。

2.2 网络水军发现技术

  基于其组织性,网络水军整体可看做网络中的社区,所以水军发现可借由网络社区发现技术实现。在对网络的抽象中,用户是网络中的节点,边被描述为用户之间的关系,而边的权值可描述为用户关系的紧密程度。简单来说,社区发现,就是在网络中对用户进行聚类,在一个类的内部,用户的关系是很紧密的,而在类与类之间,用户的关系是稀疏的。所以,最直观的社区发现算法就是最小割算法了。

  同样采用分裂的思想,改进的GN算法是社区发现技术中的最经典技术,其核心思想在于利用边介数来描述边的重要度。边介数是一个很好理解的概念,从网络中的任意节点最快地去往任意另一个节点,边被走过的数量则称为边介数。被走过次数越多的边对整个图来说越重要,如果切断这条边,就会导致越多的点要绕远路才能到达另一个点,甚至不能达到另一个点了。试想一下,网络中有两个社区,社区之间只有一条边,那么这条边的边介数是相当高的,如果切断这条边,那么剩下的就是我们要找出的这两个社区了。

  改进的GN算法的原理是直观的,而关键在于如何构建网络。在我们要探索的问题中,核心工作就是为虎扑装备论坛建立用户网络:用户之间有怎样的关系以及关系的强弱如何?接下来我将以虎扑装备区9月至今的贴子作为数据,来抽取用户关系,建立用户网络。


3 基于同贴率的网络水军发现

  之前也说道,论坛不同于社交网络,基于关注的用户关系意义不大。论坛,顾名思义是提供网友议论交流的网络场所,所以对同一个帖子进行过发帖回帖的网友是有关系的。所以,基于同贴率来构建用户网络是一种看似不错的思路。而网络水军作为一个社区,其成员很有可能彼此之间的同贴率很高!首先定义用户i和用户j的同贴率如下:

技术分享

  其中SPC[i,j]表示用户i和用户j共同所属的帖子数量,APC[i,j]表示用户i或用户j所属的帖子数量。在我们的数据中,共有19648名用户发生过发帖或回帖行为,若视同贴率大于0的用户为有关系的用户,则网络结构无比复杂,GN算法不知道要算到何年何月。所以,我武断地认为同贴率超过0.3的用户是有关系的,这样构成的网络仅剩了30条边,边的权值自然为同贴率。我们来看看GN算法的运算结果:

  技术分享

  我们可以看到,在网络中,红色框中的为具有一定规模(其实规模也不大)的社区。这个社区成员经常在同样的帖子中出现,高度可疑。放大后如下:

技术分享

  那这个社区到底是不是水军呢?暂时是无法判断的,所以对该社区中同贴率比较高的用户进行分析如下:

  用户A和用户B,同贴率=0.8750:

用户A 帖子编号 用户B
关键字 支持度 支持度 关键字
09,好看,后 0.5 17541856 0.5 2009,Jam”,“Space,VS.,...
  0.5 17298969 0.5 狗,风
好,不,Retro,哥们,完 0.5 17581318 0.5 碉堡,鞋盒,真,设计
...,吃,土,配色 0.5 17359112 0.5 耐克,节日,懂,不,墨西哥
  0.5 17348202 0.5 最,代,1,喜欢,4
两,症,不错,困难,双 0.5 17411787 0.5 大街,最,烂,控,迷彩
yeezy,好像,真,350 0.5 17220239 0.5 Explosive,Crazy,低,剁手,出
双,NMD,XR1,好,adidas 0.5 17320017 0.5 估计,血雨,腥风,...,一阵
帅,一个,配色,科蜜,气 0.5 17456982 0.5 毒液,脚,不,还行,感
塑料,满满,感 0.5 17442233 0.5 丑,jing,adidas,圈,....
31,“Shattered,Backboard”,Jordan,系列 0.5 17418490 0.5  
...,买不起,帅,原价,是帅 0.5 17418554 0.5 灰色,两,旧,个色,买
无,黑色,都,感,蓝色 0.5 17395707 0.5 发,不,才,国内,正事
骚,喜欢,肯定,韦,太, 0.5 17576317 0.5 买,过年,不错,双,穿,
明觉,概率,厉,渠道,炒作, 0.5 17251614 0.5 很,牛,帝,渠道,X,
月,10,号,OVO,改, 0.5 17372607 0.5 好好,放个,人,假,不,

  表中支持度表示对李宁公司及其产品的支持度,1为非常支持,0为非常反对,0.5为中立,该结果由情感分析生成,后文再提。由此可见,虽然这两个用户经常在同样的帖子出没,但是两者都是李宁中立的。实际上,这两个用户基本就没谈论过李宁。为什么这两个人同贴率这么高呢?不妨来看看这两个用户的头像吧:

用户A 用户B
技术分享 技术分享

  这位便是你女朋友也会认识的艾弗森科比了!!!所以,用户A和用户B都是科比的球迷,对耐克的鞋,对科比的鞋都很感兴趣,所以才会经常出现在同样的帖子中。当然还有一种可能性,一个是大号,另一个是小号。

  对其他同贴率较高的用户进行分析,大同小异,都没有对李宁表示出明显的倾向。所以,我们不能认为这个社区是李宁的水军。那这群人到底是何方神圣?我们暂且认为他们是“兴趣小组”吧,哈哈哈。是不是现在可以说虎扑论坛装备区没有李宁水军了呢?同样,我们暂时还不能这么说。考虑到可能有一种高级水军,他们只是在同一个时期(并不限定于在同一个帖子中)发表支持李宁的意见,基于同贴率的水军发现技术就搞不定了。


4 基于情感分析的网络水军发现

  根据上面的分析,我们知道要找出“高级”水军,关键在于判断帖子中用户发布的内容是否是支持李宁的,这便涉及到情感分析相关技术。在此,我使用了一个开源的自然语言工具SnowNLP。首先我们要计算出用户的每一条发帖或回帖对李宁的支持度,发帖和回帖对李宁的支持度由单句对李宁的平均支持度计算得出,而某个时期内用户对李宁的支持度由其发帖或回帖平均支持度计算得出。

  计算出支持度之后,我们便可以构建用户网络了。用户之间的关系定义为:用户在同一时间段内发帖或回帖,且都较支持李宁。那么网络中边的权值也相应定义为用户共同对李宁的支持度。同样通过改进的GN算法,可得结果如下:

技术分享

   上图对社区显示不友好,实际上有6个用户组成了一个社区,但是在这个社区内用户与用户边的权值较低,约0.14,且用户对李宁的支持度都在0.5左右。在该网络中,仍然没有出现总是同时发帖或回帖支持李宁的社区,即“高级”网络水军。

  这时,我们稍微有一点点底气可以说,虎扑论坛装备区是不存在李宁水军的。那么某些用户信誓旦旦说的李宁水军是什么呢?有种可能是李宁雇佣的网络写手或内部员工,独立作战;还有种可能是李宁的脑残粉,就像耐克的脑残粉一样。要如何区别两者呢?这涉及到更复杂的技术,以后再慢慢谈吧。


5 总结

  依着好奇心,斗胆聊了一回水军发现,忐忑得很。实际上,这篇得出来的结论:虎扑论坛装备区不存在李宁水军,还是有不小的局限性的。首先,数据量是不够的,才两个月的帖子数据。其次,虎扑论坛管理员删除或隐藏了一些帖子或回帖,这些有可能是水军的作为。第三,本文所使用的自然语言库的情感分析技术是基于词库的,训练数据来自于网络购物,并且没有使用语义信息,所以情感分析的结果存在一定的误差。

  好歹算一次实践吧。自从走进数据科学,大部分时候都是刷刷比赛,看看论文,久而久之思维反而固化了。解决实际问题,特别是自己感兴趣的问题,即使在一个陌生的学术分支上,从头到位做完还是感觉挺过瘾的。所以,我时常在想,数据挖掘技术不仅仅是互联网独享的,从发现真相的角度来说,用数据分析做新闻或许会衍生出一个新的传媒分支出来,比如有名的知乎专栏数据冰山正在做一些与我们生活息息相关的数据分析工作。但是,目前大部分的数据分析报告并没有使用较高级的数据挖掘技术,所以这方面的精彩是值得期待的。

虎扑论坛装备区到底有没有李宁水军?——论坛水军发现实践