干货推荐:基于 Spark 的文本情感分析

IBM 公司在 2015 年对外宣告了一个新的科技和商务时代的来临—认知时代

这个巨大的转变,来自 IBM 对技术和商业领域的三个重要的洞察力 [1]

第一,这个世界被数据所充斥

第二,这个世界通过代码被改造

第三,认知计算的出现

其中,认知计算可以: 通过感知与互动,理解非结构化数据 通过生成假设、评估、辩证、和建议来推理 从专家培训、每一次互动、及持续取得数据中学习

本文描述了一个基于 Spark 构建的认知系统:文本情感分析系统,分析和理解社交论坛的非结构化文本数据

基于 Spark 的文本情感分析 文本情感分析是指对具有人为主观情感色彩文本材料进行处理、分析和推理的过程

文本情感分析主要的应用场景是对用户关于某个主题的评论文本进行处理和分析

比如,人们在打算去看一部电影之前,通常会去看豆瓣电影板块上的用户评论,再决定是否去看这部电影

另外一方面,电影制片人会通过对专业论坛上的用户评论进行分析,了解市场对于电影的总体反馈

本文中文本分析的对象为网络短评,为非正式场合的短文本语料,在只考虑正面倾向和负面倾向的情况下,实现文本倾向性的分类

文本情感分析主要涉及如下四个技术环节

收集数据集:本文中,以分析电影《疯狂动物城》的用户评论为例子,采集豆瓣上《疯狂动物城》的用户短评和短评评分作为样本数据,通过样本数据训练分类模型来判断微博上的一段话对该电影的情感倾向

设计文本的表示模型:让机器“读懂”文字,是文本情感分析的基础,而这首先要解决的问题是文本的表示模型

通常,文本的表示采用向量空间模型,也就是说采用向量表示文本

向量的特征项是模型中最小的单元,可以是一个文档中的字、词或短语,一个文档的内容可以看成是它的特征项组成的集合,而每一个特征项依据一定的原则都被赋予上权重

选择文本的特征:当可以把一个文档映射成向量后,那如何选择特征项和特征值呢?通常的做法是先进行中文分词(­­­­本文使用 jieba
分词工具),把用户评论转化成词语后,可以使用 TF-IDF(Term Frequency–Inverse Document Frequency,词频-逆文档频率)算法来抽取特征,并计算出特征值

选择分类模型:常用的分类算法有很多,如:决策树、贝叶斯、人工神经网络、K-近邻、支持向量机等等

在文本分类上使用较多的是贝叶斯和支持向量机

本文中,也以这两种方法来进行模型训练

为什么采用 Spark 传统的单节点计算已经难以满足用户生成的海量数据的处理和分析的要求

比如,豆瓣网站上《疯狂动物城》电影短评就有 111421 条,如果需要同时处理来自多个大型专业网站上所有电影的影评,单台服务器的计算能力和存储能力都很难满足需求

这个时候需要考虑引入分布式计算的技术,使得计算能力和存储能力能够线性扩展

Spark 是一个快速的、通用的集群计算平台,也是业内非常流行的开源分布式技术

Spark 围绕着 RDD(Resilient Distributed Dataset)弹性分布式数据集,扩展了广泛使用的 MapReduce [5] 计算模型,相比起 Hadoop [6] 的 MapReduce 计算框架,Spark 更为高效和灵活

Spark 主要的特点如下: 内存计算:能够在内存中进行计算,它会优先考虑使用各计算节点的内存作为存储,当内存不足时才会考虑使用磁盘,这样极大的减少了磁盘 I/O,提高了效率

惰性求值:RDD 丰富的计算操作可以分为两类,转化操作和行动操作

而当程序调用 RDD的转化操作(如数据的读取、Map、Filter)的时候,Spark 并不会立刻开始计算,而是记下所需要执行的操作,尽可能的将一些转化操作合并,来减少计算数据的步骤,只有在调用行动操作(如获取数据的行数 Count)的时候才会开始读入数据,进行转化操作、行动操作,得到结果

接口丰富:Spark 提供 Scala,Java,Python,R四种编程语言接口,可以满足不同技术背景的工程人员的需求

并且还能和其他大数据工具密切配合

例如 Spark 可以运行在 Hadoop 之上,能够访问所有支持 Hadoop 的数据源(如 HDFS、Cassandra、Hbase)

本文以 Spark 的 Python 接口为例,介绍如何构建一个文本情感分析系统

作者采用 Python 3.5.0,Spark1.6.1 作为开发环境,使用 Jupyter Notebook [7] 编写代码

Jupyter Notebook 是由 IPython Notebook 演化而来,是一套基于 Web 的交互环境,允许大家将代码、代码执行、数学函数、富文档、绘图以及其它元素整合为单一文件

更多信息,请阅读原文



欢迎投稿 职场/创业方向. 邮箱wangfzcom(AT)163.com:王夫子社区 » 干货推荐:基于 Spark 的文本情感分析

点评 0

评论前必须登录!

登陆 注册