欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!
对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tsaiedu,并注明消息来源,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。
天善学院2018年度SVIP 998特惠即将结束!https://www.hellobi.com/svip一众一线名企名师,一波数据分析+人工智能+商业智能绝对好课!
作者:挖数 腾讯数据产品经理 & 段子手
个人微信公号:washu66
我们读一篇文章时,很容易感受到作者的情绪,作者是悲伤的,笔下的文字可能字字泣血,作者是快乐的,笔下的文字也会跳舞。
小时候读鲁迅的《纪念刘和珍君》,只觉得作者的愤怒和绝望喷涌而出。
可是我实在无话可说。我只觉得所住的并非人间。四十多个青年的血,洋溢在我的周围,使我艰于呼吸视听,那里还能有什么言语?长歌当哭,是必须在痛定之后的。而此后几个所谓学者文人的阴险的论调,尤使我觉得悲哀。我已经出离愤怒了。我将深味这非人间的浓黑的悲凉;以我的最大哀痛显示于非人间,使它们快意于我的苦痛,就将这作为后死者的菲薄的祭品,奉献于逝者的灵前。
这种字里行间的激烈情感,来自文章里一些关键词语,这些关键词语可以是形容词,比如“阴险”,“悲哀”,“愤怒”,“悲凉”,“哀痛”;可以是名词,比如“血”,“苦痛”,“死者”,“祭品”;可以是动词,比如“哭”。
那有没有可能有一种情感分数,可以来量化一篇文章的情感?
文本分析有一种场景,是通过大量的语料训练一个情感词库,这个词库有每一个词语对应的情感分数,分数>0且越高,表示情感越积极,分数<0且越低,表示情感越消极。
在网上一番搜刮,真的找到这样一个词库,这个词库有11万多个词,每个词都有其对应的情感分数,比如 红红火火 这个词,它的情感分数高达 5.73,是一个非常正面积极的词语,而像 新加坡 ,黑猩猩 这种名词,他们是中性词,基本不含情感,他们的分数在0到1之间,一些比较消极的形容词,比如孤苦伶仃,它的分数是-2.58,或者一些消极的动词比如发飙,它的分数是-2.62。
把一篇文章进行分词,然后挨个匹配情感词库对应的分数,再求个均值,于是一篇文章的情感就量化粗来了!
挽起袖子,说肛就肛!用Python分词并匹配情感词库的分数
article=open('d:/python/xx.txt','r').read()
words=pd.DataFrame(jieba.cut(article))
words=words.rename(columns={0:'word'})score=pd.read_table('d:/python/score.txt',encoding='utf8',sep=' ',names=['word','score'])
finish=pd.merge(left=words, right=score, how='left', left_on='word', right_on='word')
finish=finish[finish.score.isnull()==False]
print finish.mean()
结果发现《纪念刘和珍君》虽然通篇有很多绝望,消极的词汇,但也有很多积极有力量的词汇,两者一中和,情感分数在中间的位置 (o゚ω゚o)
文章里边情感分数最消极的是:杀害-3.69,噩耗-3.41,血痕-3.39;
文章里边情感分数最积极的是:师友3.36,永存3.03,奉献2.83。
我给迅哥的几篇文章都输出了情感分数,有以下的分布:
看到《药》的负分,脑海中浮现出那个人血馒头,那种压抑,悲凉和血雾弥漫的画面感,55,不敢看,相对来说《从百草园到三味书屋》行文还是较为轻松的。
在那个时代,除了拿着匕首投枪,横眉冷对千夫指的鲁迅,也有骑着云中鹤,逛着窑子的徐志摩,我们来看看摩哥的行文,会不会跟迅哥有很大的不同呢?
以下是摩哥文章的情感分布:
果然,摩哥积极的娱乐精神也渗透在他的行文里。
有趣的地方来了,我们知道文章有时可以变为音乐,比如一些曼妙的诗词,配上旋律,那种画面感会更明显,像邓丽君的《清平调》,王菲的《明月几时有》,或者王海玲唱的那首《忘了我是谁》(李敖的诗),还有那首《只爱一点点》,也是李敖的诗。
那么,文章是不是也可以变成一幅画?
把文章的每个词作为一个色块,跟情感分数关联,情感越积极颜色越亮,情感越消极颜色越深暗,这样不就形成了一副图画?我把它称为文章的“情感地图”。
朱自清的《背影》分词后是794个词,把这794个词变成一个28*28的矩阵,矩阵的排列跟文章从左到右,从上到下的行文是一致的,再把这些矩阵的颜色跟每个词的情感分数关联,Python代码如下:
article=open('c:/python/hot/beiying.txt','r').read()words=pd.DataFrame(jieba.cut(article))
words=words.rename(columns={0:'word'})score=pd.read_table('c:/python/hot/score.txt',encoding='utf8',sep=' ',names=['word','score'])
finish=pd.merge(left=words, right=score, how='left', left_on='word', right_on='word')
finish=finish[finish.score.isnull()==False] finish=finish[0:784]finish=finish['score'].reshape(28,-1)
plt.matshow(finish, cmap=plt.cm.hot, vmin=-0.5, vmax=4)
plt.colorbar()
plt.show()
生成的《背影》的“情感地图”
图中的黑色块,是情感分数在-0.5以下的词,颜色越亮黄的词,情感越积极,可以看到在文末,有1个情感很积极的词,看看是什么词
在晶莹的泪光中,又看见那肥胖的、青布棉袍、黑布马褂的背影。唉!我不知何时再能与他相见!
清哥,我们知道您爱您的父亲 Q_Q
这是徐志摩的《翡冷翠山居闲话》生成的31*32的“情感地图”
满眼都是欢快的黄色。
文学很美,鲁迅的文章读来让人警醒,徐志摩的诗歌读来让人心情愉悦,读他们的文章,你能感受到他们的精雕细琢和他们的脉脉情感,你能感受到那个年代的抱负,那种拳拳的赤子心。
反观现在,充斥着各种情感公众号,24小时霸占你的时间,有一些还有毒(说的就是你,咪蒙),这些文章左一个“小奶狗”,右一个“出轨”,无时不刻煽动你的情绪,给你喂毒,你还甘之若饴,我真想说一句呜呼哀哉!!
同意的请转发 (╬ ̄皿 ̄)凸
End
一套SVIP课程,15选8,每套课程均价112!知识付费的时代,一次旅游的钱便能收获8大全方位、多体系的课程!
更有全场六折优惠课程,为你加油助力!
网友评论