【干货】用大数据文本挖掘来看“共享单车”的行业现状及走势
温馨提示:若图片看不清,可点击图片,即可看到高清大图。
2016年底以来,国内共享单车毫无征兆的就火爆了起来,彼时一张手机截屏蹿红网络---在这张截图上,24个共享单车应用的图标霸满了整个手机屏幕,昭示着共享单车市场抢夺大战的激烈和残酷。
再看看一组来自易观千帆的数据:共享单车领域两大巨头---摩拜单车和ofo近一年的客户端用户增长数据,二者的用户增长曲线别无二致,都是一路高歌,共享单车领域的火爆势头在短时间内不会遏止。
同时,在全国各大城市,在街头巷尾,在居民小区和创业园区,排满了各种颜色的共享单车,仿佛一夜之间,共享单车如“千树万树”的梨花一般,盛开到了泛滥成灾的地步了。
与此同时,各种乱象也是接踵而至,触目惊心:人为肆意毁坏单车、车身乱贴小广告、街上随意停放…
对于当下共享单车在互联网界的火热状况,笔者想从大数据文本挖掘的角度来做一番分析,主要是从海量的文本数据中找到有价值的讯息和观察视角,透过文本挖掘了解共享单车相关的热门话题和潜在趋势。
同时,笔者也希望把一些常用的文本挖掘方法介绍给大家,以便大家在做产品和运营的过程中能派上用场。对于文本挖掘的相关知识在这里就不赘述了,可以参考笔者之前写的两篇文章:《数据运营|数据分析中,文本分析远比数值型分析重要!(上)》、《在运营中,为什么文本分析远比数值型分析重要?一个实际案例,五点分析(下)》。
以下是本文的行文路线图和所涉及的文本挖掘方法。
1 数据采集和预处理
在数据采集部分,笔者想采集跟共享单车关联性强的文本数据,笔者没有去写爬虫去爬取数据,而是用到了新浪微舆情“信息监测”中的“数据导出”功能,根据设置的关键词检索逻辑,将所有涉及到共享单车的各类媒体文章的标题、发布时间、媒体名称、正文及正文分词等数据下载下来,省去文本数据的清洗和预处理过程,直接进行文本挖掘部分。
在这里,笔者选取了市场上主流的25个共享单车品牌,再加上关键字“共享单车”,形成如下关键词检索逻辑:
共享单车+(永安行 |小鸣单车 |小蓝单车 |智享单车 |北京公共自行车 |骑点 |奇奇出行 |CCbike |7号电单车 |黑鸟单车 |hellobike |酷骑单车 |1步单车 |由你单车 |踏踏 |Funbike单车 |悠悠单车 |骑呗 |熊猫单车 |云单车 |优拜单车 |电电Go单车 |小鹿单车 |小白单车 |快兔出行 |摩拜单车 | 绿游GreenBike)
笔者选取2017-3-1~2017-6-30之间的数据,经由上面的检索关键词,可以得到我们想要的数据,为节省时间,笔者仅选取“新闻”这一信息来源的文本数据作为分析对象,因为这部分的数据比较符合要求,包含的噪音较小。结果显示如下:
导出数据之后,结果如下:
上面圈红的字段是比较重要的分析维度,注意,导出的文章正文数据已经经过系统分词和去停用词处理,直接省去了文本预处理所要耗费的时间。
笔者再对其中的数据进行去重处理---去掉“标题/微博内容”和“正文切词”相同的部分,再从“发布日期”中提取出“月份”字段(用于后面的按月份分类文本),最终得到如下结果:
由此,原先的数据量从30W+的数据量减少到88,291条数据。
2 常规描述性数据统计
在正式的文本分析之前,笔者再对上述预处理后的数据进行描述性分析,先从表层获得这些数据的直观印象。
首先是这4个月有关共享单车的文章数量的分布情况,如下图所示:
可以看到,中间两个月的发布文章数量最多,3月份的数量最少。
经统计,共有4056个媒体发布了跟共享单车有关的文章,在Excel中使用“数据分析-描述统计”对这些媒体发文数据进行描述统计,得出如下结果:
由此可见,在文章总数88,291篇、发文媒体4,056个的情况下,平均每个媒体的发文数约为22篇(21.66),其中的中位数为3篇,众数为1篇,最大发文数为4,815篇。结合下面的直方图,数量分布呈现明显的左偏态,主要集中在“0-300篇”这个区间内(其中绝大部分为1篇)。
再来展示发文数量TOP30媒体的情况。排名榜首的是突袭网,它是一个信息资讯“大杂烩”(上面有各类转载过来的信息和琳琅满目的广告,而且经常不标明信息来源。。。),其次是腾讯新闻、搜狐媒体平台、新浪和网易这样的综合信息门户网站。有点意外的是,汉丰网(www.kaixian.tv)的关于共享单车的发文量竟然排在第四位,它原名“开县新闻网”,原本是一个地方性质的媒体,于2010年成立,为把网站建设为报纸、电视、电台“三网合一”的网络媒体,汉丰网全面整合开县主流媒体资源,单从发文信息量这点来说,该网站发展着实迅猛。
3 关键词提取
在这部分,笔者除了对上述经分词处理的正文文本进行词频统计的同时,还用到了信息检索领域里的TF-IDF(Term Frequency–Inverse Document Frequency)关键词统计方法:它用以评估一字/词对于一个文件集或一个语料库中的其中一份文件的重要程度,字/词的重要性会随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
由此可见,在提取某段文本的关键信息时,关键词提取较词频统计更为可取,能提取出对某段文本具有重要意义的关键词。
根据上面的阐述,权重值大小与词频数不呈正比。对这88,291篇文章的关键词提取和词频统计如下。
从上表可以看出,提取出的关键词跟共享单车的关联性很明显,大致上有如下几类:
共享单车的品牌及其创始人:“小黄车”(ofo)、“摩拜单车”、“永安行”、“小鸣(单车)”、“胡玮炜”、“戴威”等。
投融资、资本运作:“资本”、“投资”、“融资”、“战略”、“资金”、“金融”、“商业”、“投资人”、“合伙人”等。
政府对共享单车行业的监管:"政府"、"规范"、"监管"、"车管"、'城管“、‘机动车"、"车道”、“秩序"、"政策"等。
共享单车运营相关(包括其中出现的问题):"投放"、"运营"、"停车"、"支付"、"手机"、"拥堵"、"街头"、"开锁"、"地铁站"、"环境"等。
然后根据这些词的词频大小制作出共享单车形状的个性化词云,显示如下:
4 LDA主题模型
如果小伙伴们觉得上面笔者用关键词划分主题的做法有点扯淡,表示不服,那么笔者将拿出LDA主题模型来“回击”你,操作之前,先来简单科普下LDA主题模型到底啥玩意。
由于LDA属于概率主题模型的子类,那就先从“概率主题模型”说起:
概率主题模型(Statistical Topic Models)是一类从文本文档中提取潜在语义信息的有效方法,近年来在文本挖掘领域得到了非常广泛的应用,在文本分类、信息检索等相关领域取得了非常好的应用效果。概率主题模型的基本原理认为文档是若干主题的混合概率分布,而每个主题又是一个关于单词的混合概率分布,可以看作是文档的一种生成模型。在概率主题的各项方法当中,潜在狄利克雷分配模型(LDA model)是最为有效的模型之一。
LDA是一种典型的无监督(也就是每段文本没有标签,我们事先不知道里面说的是啥)、基于统计学习的词袋模型,即它认为一篇文档是由一组词构成的一个集合,词与词之间没有顺序以及先后的关系。一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。主题模型通过分析文本中的词来发现文档中的主题、主题之间的联系方式和主题的发展,通过主题模型可以使我们组织和总结无法人工标注的海量电子文档。
类似Kmeans聚类,LDA模型的主题数也需要人工来确定,笔者在尝试了多个主题数之后,确定了最终的主题数,从下面的LDA可视化图形可以看出,主题数为6时,很多主题所涵盖的关键词出现严重的重叠,而分成10个主题后,情况得到好转。
下图“打印”出这10个主题及其下辖的20个关键词,以“权重值*词汇”的累加形式呈现,各个权重值其实是该词汇在指定主题下出现的概率大小,也可以理解为该词对该主题的“贡献”程度,比如TOP0中的“孩子”前的权重系数为0.008,表明在TOP0的话题下,“孩子”被“抽中”的概率为0.008。依次类推,各个词语w在主题T下出现的概率分布称之为词分布,这个词分布也是一个多项分布。
对于上图中的主题词列表(表示与各个潜在主题最为相关的一些词语),笔者还进行了可以点击交互的可视化展示,可以看到每个主题下的关键词在该话题下及总的文本中的占比情况,从中可以看出某个词对于该主题的重要程度如何。如下图中TOP1下的关键词“摩拜”,在该主题中出现的概率最大,重要性最高,红色条柱代表它在TOP1下的比重,而蓝色条柱的是它在整个文本(88,291篇文章)中的比重。某个词对该主题重要性最显著的情况是:蓝色条柱更短、红色条柱越长,这类词更能对主题进行区隔。
将上述TOP及其下辖的主题词进行整理,排除主题中的“噪音”(明显跟主题不相关的词汇异常点),根据其中的词汇构成(不仅仅是下列展示的20个关键词,还包含后续的若干主题关键词)及相关媒体报道,得出这10个主题的大致“内涵”:
主题对应的具体内容如下表所示:
5 文档聚类
接下来采用的是基于谱联合聚类算法(Spectral Co-clustering algorithm)的文档聚类,这部分的原理涉及到艰深的数学和算法知识,可能会引起小伙伴们的阅读不适感,如果是这样,请快速跳过,直接看后面的操作和结果。
先将待分析的文本经TF-IDF向量化构成了词频矩阵,然后使用Dhillon的谱联合聚类算法(Spectral Co-clustering algorithm)进行双重聚类(Biclusters)。所得到的“文档-词汇”双聚类(Biclusters)会把某些文档子集中的常用词汇聚集在一起,由若干个关键词构成某个主题。
在正式分析前,现将先前Excel中的正文分词文本按月份进行分类,将其单独放进所属的月份文件夹下,操作如下图所示。
最终的结果是,系统自动形成的几个文档簇群,以及每个簇群下面最重要的TOP30关键词。结果如下图所示:
翻译一下,说人话就是:
上面的每一个Bicluster类别都可以看做是一个话题,从中可以看到,3-6月这四个月间的若干文本在Biclusters下分为4个话题。可以看到,基于Biclusters聚类的话题区分度明显要好于上述的主题模型,而且很神奇的是,类别相近的词汇会自动剧集在一个话题下,横跨这8W多个文本!
上面四个话题可以很容易的得出:
Biclusters类别0:共享单车相关的创投、资本和竞争相关,行业的视角
Biclusters类别1:共享单车相关的行政监管、整治,政府的视角
Biclusters类别2:共享单车运营中出现的各种社会问题,社会的视角
Biclusters类别3:共享单车方面的负面信息,很多已经上升到违法违规,甚至触犯刑法的层面了,法律的视角
由上面的数据,还可以得到这4个话题在总文本中的占比情况。
从上图可以看出,Biclusters类别1的比重最大,也就是4个月间关于共享单车行政监管方面的文章较多,共享单车在市场运营过程中的各类问题已然引起社会和有关部门的高度重视,各种行业乱象亟待整治和肃清。
将话题和月份进行交叉分析,可以看到每个月份下关于共享单车报道的话题构成情况。
比如,4月份有关共享单车的各种社会问题的媒体报道较多,而6月份对共享单车行业方面的报道居多。
6 情感分析
笔者在新浪微舆情“信息监测”上观察到,3~6月间关于共享单车的负面信息的走势情况,显然,这段时间内的负面信息一直处于一个较高的水平,平均每天好几W的负面新闻报道量。
紧接着,笔者使用机器学习的方法,对这8W多条文章的标题进行本地的情感分析,以便获得媒体对共享单车报道的“情感倾向”的总体情况。
这里的“情感倾向”是以一个介于0~1之间的“情感极性值”来表征---如果某条评论的情感极性值越接近于0,说明它的负面情感倾向越明显,越接近于1,说明它的正面情感倾向越明显,而取值在0.5左右徘徊,这说明这种情感倾向不明显,是为“中性”。笔者将情感倾向值的取值区间0~1细分为3个子区间,分别对应不同的情感倾向。详细操作请参考《用数据全方位解读<欢乐颂2>》的2.1部分。
经整理,将其制作成直方图的形式呈现:
从上面的直方图可以看出,情感极性值绝大部分在0.2上的分布最多,而这个分值处在负面情感度的左端,很低的水平。根据上图显示,如果要给这段时间内共享单车的总体情感倾向评级(5个级别,“极其负面”、“比较负面”、“中性”、“比较正面”、“极其正面”)的话,那么这个评级接近于“极其负面”。
以下是关于共享单车“三元”情感倾向的占比情况。
由此,再次印证了这段时间内关于共享单车的各类负面报道不断。
不过,话又说回来,这些都是来自媒体的声音,而媒体有喜好报道负面讯息的传统,缺少了广大网民发声,对共享单车的舆情分析难免会存在信息失真。对此,笔者选择了社会化媒体中具有重大影响力的新浪微博作为分析对象,对上面的网民情绪进行总览。关于社会化媒体方面的大数据分析,小伙伴们可以参看《如何利用Social Listening从社会化媒体中“提炼”有价值的信息?》
下面几张图来自新浪微舆情的“情绪地图”部分,数据来源为新浪微博,为保持时效性,时间区间为近三日。
整体上看,与媒体的报道不同,绝大部分网民对于共享单车的“泛滥成灾”是持“喜悦”情绪的,由上面的LDA主题模型可以了解到,“便利出行”是形成这种赞许态度的原因之一。
7 LSI文本相似度索引
在上面的主题分析和文本聚类分析中,“融资”这个关键词出现了若干次,它成功的攫取了笔者的眼球。为此,笔者想通过“融资”这个关键词去找寻与其最相关的TOP20新闻标题。在这里,笔者不采用直接通过关键词查找的方法去寻找这些相关标题,而是通过语义上的关联性去寻找,也就是说,即使这些语句不包含“融资”二字,只要体现这个含义就是我要寻找的目标。
鉴于此,笔者采用了基于LSI(Latent Semantic Index,潜在语义索引)的方法去查找文本相似度最高的20个语句,大致上比较文本向量化后的余弦夹角值(介于0-1之间),值越大,就代表相似度越高。详细原理,小伙伴们可以自行Google脑补。
经过分析,找到了跟“融资”语义最相关的20条新闻。可以看到,里面很多没有包含“融资”二字,但意义上都有体现资本运作,比如“共享单车又掀起新一轮‘互掐’”这条新闻,里面有这样的论述:“公开资料显示,截至2017年4月,两家公司共计融资总额超过10亿美元,其中ofo刚刚完成D3轮融资,估值超过16亿美元”,第二个“…ofo共享单车获4.5亿美元”,也是讲的融资方面的新闻,剩下的相似语句以此类推。
从这些新闻标题来看,共享单车领域的竞争不仅出现在用户获取和地盘争夺上,在资本领域的争斗也是刀光剑影。
由此可以看到,计算机通过LSI算法变得“聪明”了不少,在某种程度上,能“理解”自然语言了!
8 Word2vec
最后进行的是基于Word Embedding的Word2vec词向量分析,将正文分词文本直接进行词向量模型训练,然后用来进行关联词分析。
Word2vec是Word Embedding(词嵌入)中的一种,是将文本进行词向量处理,将这些词汇映射到向量空间,变成一个个词向量(WordVector),以使这些词汇在便于被计算机识别和分析的同时,还具有语义上的关联性,而不仅仅是基于词汇之间的共现关系。类似的例子可以参看笔者之前的文章《用数据全方位解读<欢乐颂2>》、《以<大秦帝国之崛起>为例,来谈大数据舆情分析和文本挖掘》。
首先,笔者对共享单车的2大巨头---摩拜单车、ofo(小黄车)及其各自CEO的相关词汇感兴趣,分析结果如下:
从上图可以看出,跟“胡玮炜”、“摩拜”最相关的词汇是“陈伟鸿”,是中央电视台的主持人、记者、编辑、制片人,而胡玮炜毕业于浙江大学城市学院新闻系,在《每日经济新闻》、《新京报》、《商业价值》等媒体做过记者和报道,也就是说,他们有着类似的从业经历,而且在6月25日的央视《对话》节目中,作为主持人的陈伟鸿与作为嘉宾的胡玮炜有了交集。排在第二位的是她的对手ofo的CEO戴威。值得注意的是,出现在关联词列表中的 “(王)晓峰”,曾任职Uber上海城市总经理,是摩拜单车大股东李斌“邀请”来担任摩拜CEO一职的,理由是媒体出身的胡玮炜在经营层面缺乏经验,由此业界传闻“王晓峰是资本派来的管家”不胫而走。“晓峰”后面紧随“昆仑决”,根据语境来讲,这里的“昆仑决”应该不是实指青海卫视的那项世界职业搏击赛事,而是用以隐喻共享单车行业竞争激烈的现状,而且这种具有画面感的语义联想在媒体的报道中比较频繁。
而ofo及其创始人最相关的词依次是摩拜单车、胡玮炜、(王)晓峰、CEO、小蓝单车、悟空(单车)这些词,多是对手。也涉及了其海外扩张战略的相关词汇,如“全球”“海外”“投放”等。
而跟“摩拜”和“ofo”相关的词多是反映这个行业现阶段的特征,如“(圈地)投放”“(争抢)用户”、“入驻(城市、小区和国外等)”、“公司”、“数量”、“市场”和“大战”等,还有它们的对手“小蓝单车”“小鸣(单车)”、“哈罗单车”等。
加入“大战”之后预测出来的关联词汇,就更能反映共享单车这个行业竞争的硝云弹雨了,在用户和资本领域竞争的火药味十足。
结语
在上面的各类文本挖掘中,反复出现一些关键词和主题,如“乱象”“监管”“愈演愈烈”等,给笔者一个最直观的印象是“山雨欲来风满楼”,共享单车这个行业已经到了“洗牌”的时间了:
经过几个月的火热期,共享单车领域硝烟弥漫,竞争的号角此起彼伏,在共享单车将触角伸向城市各个角落的同时,各类社会乱象、人性考验和法治问题接踵而至,政府也被迫由先前的大力倡导到谨慎的规范引导,行业的集聚特征也越来越明显,或许可以大胆猜想一下,像之前的团购、拼车和外卖这些领域,由资本推动,从“千团大战”到“百团大战”,再是“三足鼎立”,最后“三家归晋”?
欲知后事如何,我们姑且看之。
参考资料及分析工具:
1. 新浪微舆情,信息监测、情绪地图(数据采集及来源,情绪分析)
2. 易观千帆(APP用户数据)
2.Gensim官网,https://radimrehurek.com/genism
3.PiotrBojanowski,EdouardGrave, Armand Joulin ,TomasMikolov,Enriching Word Vectors with Subword Information
4.劳鑫,马宝君,张楠,万岩,基于概率主题建模和深度学习的公众舆情分析
5.YoavGoldberg,wordembeddings---what, how and whither
6.AnnaHuang,SimilarityMeasures for Text Document Clustering
7.Python(jieba、snownlp、gensim、sklearn、wordcloud)