倒腾豆瓣电影短评情感分析也有一阵时间了,一直抓着这个不放也不是个事,得赶紧腾出时间去总结下KG。本文算是笔者对情感分析的进阶篇,也是关于情感分类模型覆盖最全的文章。首先,从传统的特征提取方面对比了BOW、TF-IDF、N-Gram技术,并使用不同的机器学习算法构建了不同的子模型,然后又采用了Stacking模型融合技术对短评情感进行了进一步的探索,最后进阶到深度学习,构建神经网络模型进行文本分类。全文各个模型并不是参数最优,但也有一定的参考价值,因为针对不同的数据集,模型的预测结果都是不尽相同的。言归正传,下面一起来看看电影短评情感分析的结果吧!

Read More »

前段时间国庆,回家休息了几天,每天熬夜玩手机,整个人算是有点颓废了。回来工作之后,渐渐地又过上了有规律的生活,说到底,还是自制力不够呀!本想着国庆的时候好好分析下影评数据,结果只是跑了个模型,其他啥也没干成,想想就真的有点浪费时间了。人生苦短,转眼间很多熟悉的人都结婚了,而自己却终究还是过不去那个坎。不过现在无所谓了,压力不是很大,抓紧时间不断学习和总结才是王道。言归正传,在国庆前,针对豆瓣的电影评论数据做了一个比较简单的情感分析,效果不是很好,最近又进行了进一步尝试,发现了一点点关于情感分析数据集的小门道,这里简单的总结下,后续做文本分析,或许还可以使用上。

Read More »

数据集概况

本数据集采集于豆瓣电影,电影与明星数据收集于2019年8月上旬,影评数据(用户、评分、评论)收集于2019年9月初,共945万数据,其中包含14万部电影,7万演员,63万用户,416万条电影评分,442万条影评,该数据集正好弥补下国内公开电影​数据集的空缺。数据已经过初步清洗,可用于推荐系统、情感分析、QA问答、知识图谱等多个领域。

Read More »

在八月上旬,爬取了13万电影数据和28万影评数据,并在后续的日子中对13万豆瓣电影做了系统的分析,并根据电影数据构建知识图谱,建立QA问答系统。近期,查看评论数据的时候发现,数据严重缺失,每个电影最多只有5条评论,同时缺少评论评分的字段,为此重新修改了爬虫模型,并重新爬取了350万的评论数据。本文,主要除了介绍评论的爬取方法以外,还对评论做了初步的分析,方便后续的实践工作。

Read More »

在前几篇文章,我们对豆瓣电影数据进行了一系列地处理、分析,并进行了QA问答建模等操作,有的童鞋可能对数据获取环节感兴趣。为此,本文将重点分享下我是如何构建豆瓣电影数据爬取模型,如何处理爬虫过程中遇到的问题,最终得到13w+电影数据加上28w+的影评数据。闲话少说,我们来看细节吧!

Read More »

在上一篇文章基于豆瓣电影数据构建知识图谱里面,讲到如何采用Neo4j来构建电影图谱,并且掌握了Neo4j里面的初级查询功能(搜索实体属性、实体间的关系等)。接下来,将进入电影图谱问答系统的学习,通过知识库和知识图谱来构建电影问答系统。针对QA问答系统,由于笔者当前能力有限,本文仅介绍基于模板的知识库问答,讲解过程中如果有阐述不周之处,还请读者指出!下面,我们来看看如何对问题进行解析,并将图谱应用到电影问答系统。

Read More »

在上一篇文章豆瓣13万电影数据统计与分析里面,笔者对豆瓣的电影数据进行了基本的统计和分析,通过数据我们对电影的整体情况有了初步认识。为了进一步利用好这份数据,本文将开启本博客新的知识领域——知识图谱。基于这13w豆瓣电影数据,提取出图谱数据,并以此建立图谱数据库,构建电影知识图谱。

Read More »

早在2016年,写过几篇关于爬虫的文章,并且针对新浪微博编写了一个小爬虫WSpider,用于爬取用户信息和评论内容,可惜的是相关数据没保留下来,有点遗憾。最近,为了完善和巩固自己的知识体系,于是又动了动手爬取数据的念头。又考虑在NLP、推荐系统、深度学习业余项目中也能使用,最终选择了豆瓣电影,总共从豆瓣里爬取了13w+的电影,外加28万+影评(截止2019年8月上旬),电影内容包括电影名称、上映日期、国家、语种、导演、演员、标签、豆瓣评分、投票数量等条目。看到这些数据,真是让人心潮澎湃,为了探索电影数据背后的意义,本文将从各个不同的维度对电影数据进行分析。关于爬虫相关的内容,后续有时间再分享出来吧!

Read More »

关于排序模型,可以采用传统的GBDT+LR模型,也可以采用FM系列算法,这两种模型笔者先前也有介绍,读者如有疑问,可花点时间前去回顾下。本文主要针对排序任务,介绍两种排序模型:Wide & Deep 和 DeepFM。原本打算将两个模型分开单独成文,后来考虑到内容上的相关性,就将这两种模型写在一起了。文章编写时间紧凑,文中如有不对的地方,还请读者指出。另外,本文的所有截图和数据均来自DeepFM的相关paper。

Read More »

在上篇文章Boosting模型:XGBoost原理剖析一文中,详细介绍了陈天奇等人于2014年发布的XGBoost的内在原理,同时阐述了其特有的几大优点。然时代变化之迅速,新技术如春笋般应运而生,与日俱进。继xgboost之后,2016年微软进一步发布了GBDT的另一个实现:lightGBM。据悉,与XGBoost相比,在相同的运行时间下能够得到更好的预测性能。同时,在multi-class classification、click prediction和排序(learning to rank)都有很好的效果。本文将基于lightGBM的原始paper,对其原理进行归纳总结,以供后续参详,温习之用。

Read More »

继前两篇文章Boosting模型:GBDT原理介绍CTR预估经典模型:GBDT+LR之后,本文将继续探究下一个Boosting模型:XGBoost,全称eXtreme Gradient Boosting。XGBoost,听着名子就觉得特霸气,给人一种威风四面、震慑八方的实觉。事实上,其在实际比赛和项目实践中的效果也绝不含糊,名副其实呀!具体的数据这里就不展开了,明白就行。XGBoost本身是GBDT的一个高性能的开源库,是陈天奇等人于2014年开发,即可用于分类,也可用于回归。本文主要是介绍XGBoost的原理,同时深入分析下其在GBDT的基础上做了哪些改进点。关于XGBoost的实践,可以参考A Beginner’s guide to XGBoost,是一篇很好的入门级应用教程。

Read More »

上一篇文章,提到了Facebook 2014年发表的一篇采用GBDT构建特征的论文:Practical lessons from predicting clicks on ads at facebook。为了深入学习GBDT,本文将重点分析这篇文章的思路,即CTR预估经典模型:GBDT+LR,一个曾风靡Kaggle、至今在工业界仍存有余温的传奇模型。同时采用scikit-learn里面的GBDT和LR来完成GBDT+LR的实验。

Read More »

说到GBDT,很多人都熟悉,那么我为什么还要在这里编写这篇文章呢?原因很简单,对我来说,在算法学习过程中,喜欢探究算法背后的公式推导,有时候自己也是一头雾水,但目的就是把每个步骤弄清楚,而每次重新回顾算法的时候,或多或少都会领悟到一些与之前不一样的东西,然后惊叹:噢,原来这里是这样,之前怎么就没领悟到,“书读百遍其义自见”大概就是这个道理!这篇文章其实很早之前就写了一部分,只是一直没有完整的整理出来,每次看到这篇文章放到draft里面,就总觉得有种有始无终的感觉。这回,在文章后面引入了实例解析部分,主要是希望后续回来温习的时候,能够快速地理解。

Read More »

在神经网络里面,会经常用到activation function,不管是CNN还是RNN亦或是其他带有神经元的网络,activation function都扮演着重要角色。刚接触神经网络的时候,脑子里总会浮现很多问题。为什么会有这么多activation function?为何这个函数就比另一个效果好?这么多函数,我们该使用哪一个?出于学习目的,本文将对activation function进行简要的归纳,旨在屡清各个函数的应用场景。

Read More »