NLP文本情感分析入门

Posted OOOCaptain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NLP文本情感分析入门相关的知识,希望对你有一定的参考价值。

话说,Facebook最近出了个大事。英国的数据分析公司Cambridge Analytica(剑桥数据分析)非法获取了近5000万Facebook的用户信息,并将该信息用于在美国大选中为川普服务。这个新闻一经报道,吃瓜群众对于Facebook的信任跌到谷底,加之与政治敏感话题挂钩,Facebook的股票一顿暴跌,两天市值蒸发将近500亿美元(好可怜,好几个小目标没有了)。


扎克伯格3月22号在Facebook上发表声明,向公众致歉。但是,网友说,哼!

NLP文本情感分析入门(1)


那么,瓜吃完了,问题来了哦。

这5000万用户数据和2016年的川普竞选总统有关?到底是怎么帮助川普赢得了大选的呢?!

Duangduangduang~NLP文本情感分析入门(1)有一个方法——Sentimental Analysis 自然语言的情感分析。

文本情感分析是对文本中的某段已知文字的两极性进行分类,判断出此文字中表述的观点是积极的、消极的、还是中性的情绪。

NLP文本情感分析入门(1)


假设有一个人,他在Facebook上发表过超级喜欢小动物,或者为保护动物的文章疯狂点赞。那么Cambridge Analytica通过该用户文本的挖掘和情感分析,就知道他对于保护动物的情感状态是积极的。通过对该用户推送川普的各种保护动物的新闻,让他觉得川普和我的价值观一样啊,这一票不给他我给谁!

(这种广告的精准投放如果是放在枪支,大麻合法化上,是不是意义很不一样了。。。)

这样一来,Cambridge Analytica就是川普的大功臣啊喂!

NLP文本情感分析入门(1)



言归正传,

文本情感分析!

对于人类来说,要想看懂一段文字到底是消极的还是积极的,很容易。但是想要教会电脑看懂并且对文字进行情感的分类,还是有很多事情要做的。

要想要电脑看懂,就要要把文字转化为数字,每一段文字用等长度(便于计算)向量表示。

举一个栗子~~

NLP文本情感分析入门(1)

这里的两句话,我们来教机器学习和处理一下它们。



1,Tokenizer

首先,我们先认字!--把文本拆分成单个单词。在英文的文本中,简单的拆分的方法是,每一个空格之后是一个新的单词,逗号,句号,感叹号,问号这一类的标点符号隔开的也是新的单词。对所有的文字这样做之后,就可以得到文本中用到的所有的单词啦。对每一个单词都建立索引,词典get!

NLP文本情感分析入门(1)



2,Vectorizer

然后,我们可以把句子转变为:

NLP文本情感分析入门(1)

现在有一个问题,不同句子的向量长度必然不同,怎么变成等长度呢?简单的方法可以用text padding,加0补长。另外一个办法是,建立与词典长度等大小的向量,句子中单词出现的频率决定向量数值,是不是很机智!但是有一个问题是,这样做,句子的单词顺序就不见了。单词顺序对于表达文本含义很重要,那怎么办呢。留一个悬念,下次告诉你。NLP文本情感分析入门(1)

NLP文本情感分析入门(1)

当然,向量需要归一化,便于后续数据的处理方便,让程序运行时收敛加快。



3,Training

接下来,就是训练模型的时候了。你需要为机器建立自己的学习模型,在这个例子中,就是分类器--判断句子的情感。

机器学习中,运用不同原理,有很多分类器。我最喜欢的是SVM(Support Vector Machine),多数情况下它的表现都是最好的NLP文本情感分析入门(1),当然,是不和深度神经网络比的。

简单来说,SVM会建立一个向量空间,每一个向量在这个空间中都对应一个位置。那么我们可以找到一个最优的超平面hyperplane,这个超平面可以最大化的区分积极的,和消极的两个类的边界。 找到这个最优的超平面,模型也就建好啦。

NLP文本情感分析入门(1)



4,Testing

最后,机器就可以拿训练好的SVM模型做判断,测试文本的情绪到底是积极的,还是消极的。简单粗暴,机器认为,文本的向量在模型空间中,如果在临界平面的这边就是积极的,辣边就是消极的。

好的,提问:SVM判断就是对的吗?它会出错吗?

这个,下期文章你就知道了!


好啦,这一期的就到这里结束了,不然太长了。如果你有兴趣的话,欢迎关注我~~ 下一期我们来聊聊它们的代码实现。还有如果是神经网络的话,又是怎么实现的!

See you  O(∩_∩)O  ~~


————————The End————————


感谢Dr. Annamalai,基本上NLP的入门就是他带我的,感谢~。这期Sentimental Analysis的理解,就是刚入职Moscato Project的时候,他对我的一次小测试,他介绍完了之后,就对我说,你去实现吧!。。。在这之前,我啥都不知道。。。尴尬。不过他说的非常清楚,所以我自我感觉入门很快。希望我也说清楚了~~


我接下来的每一篇文章,都是我的成长(主要是在Deep learning的路上)。希望,它们也能变成你的成长~!


少年,要记得以梦为马,要记得抖腿吃瓜,要记得关注我哦~~~


      

以上是关于NLP文本情感分析入门的主要内容,如果未能解决你的问题,请参考以下文章

Cemotion 基于NLP的 中文情感倾向分析库

NLP进阶,Bert+BiLSTM情感分析实战

NLP进阶,Bert+BiLSTM情感分析实战

深度学习项目五:利用LSTM网络进行情感分析(NLP)

情感分析入门demo《Real-World Natural Language Processing》 chap2:Your first NLP application

NLP文本情感分类