反正我已经准备好节后吃土了说起网上购物,一般的,我会在买之前看一下买家留言,综合判断该物品的好坏。同样的,在看一部小说之前,我也会去看一下读者留言,在看之前就大致判断该小说的质量,以决定是否花时间阅读。
但有时候,小说评论会多达成千上万条,如何快速得到这些评论里的信息,知道读者对这部作品喜爱与否呢?这就要提到本文要介绍的利器-----文本挖掘。(1)什么是文本挖掘作为信息挖掘的一个分支,希望通过智能算法等手段对于文本信息进行发现、抽取、标记、分析(分类、相关关系等)。(2)文本挖掘所需手段有人总结说,文本挖掘大致需要数据挖掘技术、信息抽取、信息检索,机器学习、自然语言处理、计算语言学、统计数据分析、线性几何、概率理论甚至还有图论等发面的知识。
咋一看上去着实有一些吓人,在一鱼看来只需要对于文本分析的热忱加上前人们无私分享的资源,再来一点点自己软件的动手能力,你就已经步入文本挖掘的圈子了。(3)文本挖掘的价值文本数据的数据量是非常之巨大的,在基础数据中算是占比很大的数据类型了。
文本中所包含的信息的重要性也就不言而喻,往小了说可以节约时间快速获得信息,往大了说往往会更有商业价值。1.文本挖掘在情感分析的应用情感分析简而言之就是用户的态度分析,利用机器提取人们对某人或事物的态度,从而发现潜在的问题用于改进或预测。
现阶段主要的情感分析方法主要有两类:基于词典的方法和基于机器学习的方法,本文重要是通过基于词典的方法(使用的词典是大连理工大学所建立的情感词典)。
主要通过制定一系列的情感词典和规则,对文本进行词语的拆借分析,情感计量,最后通过情感值来作为文本的情感倾向依据。大致步骤如下:(1)分解分解段落的句子、分解句子的词汇(2)搜索搜索情感词并与词典匹配、搜索情感词前的程度词,根据程度大小,赋予不同权值、搜索情感词前的否定词,赋予反转权值(-0.5)(3)计算得分为了更加清晰明了的说明,我举一个简单的例子。2.目标从起点中文网共爬取1000条评论,通过文本挖掘技术得到对小说《圣墟》的情感评价。3.工具:Jieba包ieba包是python中常用的用来分词的包,在中文分词方面有着自己的优势。jieba中文分词涉及到的算法包括:(1) 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG);
(2) 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合;
(3) 对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法。jieba中文分词支持的三种分词模式包括:(1) 精确模式:试图将句子最精确地切开,适合文本分析。用参数cut_all=False来控制。
(2) 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义问题 。 用参数cut_all=True来控制。
(3) 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词,同时结巴分词支持繁体分词和自定义字典方法。用函数jieba.cut_for_search实现。
这里我们采用默认形式的方法。我们开始吧!(3.1)数据的读入(3.2)分好的词汇要进一步清洗
初步分好的词中可能存在着没有意义的词汇,如:开始、现在等等,过滤掉这样的词汇简了后续的分析
同时希望过滤掉词频低于30的词汇,即保留对于评论有显著关系的用于分析的词汇,排除偶然情况。将最后的结果写入wordlist.txt文件。4. 情感计量现在以一条数据为例,来进行情感计量.我们按照大连理工大学的情感分析词体库。将情感分为三个方向:
正面积极方向:happyness和wellness
负面消极方向:sadness和fea
即可有正面又可有负面的方向:angry和astonishment5.分析结果对于情感的三个方面,正面积极方面:负面消极方面=3766.25:519=7.26,可以发现对于这部小说,人们还是很喜欢的。这与《圣墟》在起点中文网很受欢迎相符,其总点击率已达到1564.06万次。正面的情绪是否与总点击率等衡量作品受欢迎程度的变量呈现正比的关系,我们在后续会去探索。
接下来仔细分析一下上述的情感分析模型结果:分别用暖色表示正面积极方面的情感,用深色表示负面消极的色彩,可以从柱状图中明显看出正面积极情绪的优势。
同时可以看到angry的情绪的分数最高,因其可能即表示正面又有可能表示负面的情绪,选择选择词频前100的词汇做词云图来进一步观察。