- A+
一、情感分析
情感分析也称观点挖掘(opinion mining),是机器学习中自然语言处理(NLP)领域一个非常流行的分支,它主要是分析文档的情感倾向。
二、下载数据
请自行准备一个电影信息(或者直接使用你和女神的聊天信息)
1、预计处理总时间
2、统计处理总时间
3、python实现代码
我们还需要知道将文本转换为特征向量前的一些准备工作,主要内容包括:
1、清洗文本数据2、标记文档3、词袋模型
我们还需要做什么呢?
1、将单词转换为特征向量2、TF-IDF计算单词关联度
在之前,我们已经知道一些文本的预处理和分词。这篇文章中,主要介绍如何将单词等分类数据转成为数值格式,以方便我们后面使用机器学习来训练模型。
其中tf(t,d)表示单词t在文档d中的出现次数,idf(t,d)为逆文档频率,计算公式如下
其中,nd表示文档的总数,df(t,d)表示包含单词t的文档d的数量。分母中加入常数1,是为了防止df(t,d)=0的情况,导致分母为0。取log的目的是保证当df(t,d)很小的时候,不会导致idf(t,d)过大。
通过sklearn的TfidfTransformer和CountVectorizer来计算tf-idf
可以发现"is"(第二列)和"the"(第六列),它们在三个句子中都出现过,它们对于文档的分类所提供的信息并不会很多,所以它们的tf-idf的值相对来说都是比较小的。
注意:sklearn中的TfidfTransformer的TF-IDF的计算与我们上面所定义TF-IDF的公式有所不同,sklearn的TF-IDF计算公式
下面通过一个例子来说明sklearn中的TfidfTransformer的tf-idf的计算过程,以上面的第一句话"The sun is shining"为例子
1、计算原始词频
a、单词所对应的下标
b、计算第三句话的原始词频tf(t,d)
c、计算逆文档频率idf(t,d)
注意:其他的词在计算tf-idf都是0,因为原始词频为0,所以就不需要计算idf了,log是以自然数e为底。
d、计算tf-idf
所以,第一个句子的tf-idf特征向量为[0,1,1.29,1.29,0,1,0]
e、tf-idf的L2归一化
在下一篇文章中将介绍如何使用这些句子的特征向量来构建一个模型进行情感分类。虽然在实际演示的是电影影评,但是训练好了可是可以用来处理你的聊天信息的哦~~~
想不想用来测试一下你的女神和你聊天时候的情绪呢?保你牵手成功!!!