基于机器学习的NLP情感分析(一)---- 数据采集与词向量构造方法(京东商品评论情感分析)

基于机器学习的NLP情感分析(一)—- 数据采集与词向量构造方法

最近实习期间在做一个对新闻文本情感分析的项目。在此,用京东的商品评论练手,从数据采集到模型实现完整地写一遍,以备未来回顾所需。事实上,我采用的方法并不困难,甚至有点naive,所以权且作为练手吧。

数据采集

在这里为了避免人工标注的麻烦,使用的是京东iPad的用户评论。事实上,NLP情感分析中最花时间的就是人工标注。

仔细查看调试台可以很容易地发现商品的评论信息都是用json来传递的。如下:

https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv37157&productId=4675696&score=5&sortType=6&page=0&pageSize=10&isShadowSku=0&fold=1

这个URL其实还是比较容易看出设计者的思路的。productId是商品对应的ID,score为用户对商品的评分,pageSize应该是一个请求发回的评论数。在实践中发现这种pageSize一般是不可以无限大的,也就是你别想着把pageSize写得很大,然后就可以一个请求返回一大堆数据。我的做法就是把pageSize写得一般大(^-^),然后不断地递增page来不断地爬去数据。

score的规则如下:
* 1:差评
* 2:中评
* 3:好评
* 5:追评

把这个URL放在浏览器的搜索地址里就可以得到返回的相应JSON数据了。这里就不展示了,自己去看吧。一开始你可能会觉得这个json,但只要仔细看看就知道你想要的数据在哪了。你要知道写网站的程序员也是程序员而已,程序员都喜欢工整的东西,因为“简单源于工整”,所以你只要发现他实现工整的方法,你就可以很简单地获取相应的数据了。

事实上,京东对于网络爬虫是非常宽容的,就算不加任何的速度控制也可以毫无阻碍地完成数据的采集工作。这里建议使用Python3.5,因为3.5对中文的支持比较好,另外需要额外下载Request库。这就不再赘述了。

构造词向量的方法

TF-IDF

这里我采用的是,利用TF-IDF来计算词库中最具代表性的词。

概念

TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜寻引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,因特网上的搜寻引擎还会使用基于连结分析的评级方法,以确定文件在搜寻结果中出现的顺序。

原理

在一份给定的文件里,词频 (term frequency, TF) 指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被归一化(分子一般小于分母 区别于IDF),以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)

逆向文件频率 (inverse document frequency, IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语

TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TFIDF实际上是:TF * IDF,TF词频(Term Frequency),IDF反文档频率(Inverse Document Frequency)。TF表示词条在文档d中出现的频率(另一说:TF词频(Term Frequency)指的是某一个给定的词语在该文件中出现的次数)。IDF的主要思想是:

  • 14
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值