电影《无问西东》讲述了四代人清华人,在矛盾与期待中不断找寻自我、砥砺前行的故事。上映后得到了广泛的关注,也引发了强烈的讨论。本文首先通过爬虫技术,从豆瓣上获得相关短评内容与打分,然后观察打分分布,划分正负偏好,最后进行分词与关键词提取,观察正向、负向偏好之间关键词差异。
爬取豆瓣短评
寻找链接
首先在浏览器打开豆瓣主页,搜索无问西东电影,可以看到下面的短评板块,点击“更多短评”可以进入短评的专属页面,此页面是一个GET类的url:“https://movie.douban.com/subject/6874741/comments?start=0&limit=20&sort=new_score&status=P&percent_type=”,点击“后页”,观察url的变化情况,可以发现每一页显示20条短评,通过改变url中start取值,可以转换到不同的页数,即第二页短评url中start参数取值为20,因此,我们就找到了需要爬取的内容链接。
定位标签
使用Chrome开发者工具,发现短评的内容在
标签中,打分信息较为复杂,首先要找到class_=comment-item的div标签,再找到里面class=rating的span标签,并根据标签内容进行分数对应。
代码实现
豆瓣做了相关限制,非登录状态下只能获取每个电影的前220条。因此这里以抓取前220页短评内容为例,获取短评内容及打分。
将文本与打分信息生成dataframe,并保存为csv文件,方便后续使用。
打分分布情况
得到了220条短评的打分数据,首先通过绘制柱状图,观察各分数的比例分布。
可以看到,打2分的最多,其次为4分。这里我们假设,4分、5分为正向偏好,1分、2分为负向偏好,3分为中立,下面分别对正向偏好和负向偏好做关键词提取,观察两者间差别。
分词与关键词提取
分词
中文分词分为基于规则和基于统计两大类,jieba分词包结合了两类方法,可以较方便的实现分词。在分词的同时,进行删除停用词的操作。
关键词提取
jieba实现了TF-IDF和TextRank两种关键词提取算法,指定关键词个数、词性,可返回关键词和相应权重。
第一列代表了负向偏好的关键词和权重,第二列代表了正向偏好和权重。可以看到,正负向偏好的关键词有一定差异,负向偏好关键词有“难看”,“看不下去”,“可惜”,“不行”等明显否定倾向的词,而正向偏好关键词有“喜欢”,“好看”等可以反映出正向评论的词。
后续操作
如上只是对于评价内容做了简单的分析,自然语言分析分为许多方向并用广泛应用。后续还可以进行如下操作丰富对此文本的分析:
画词云,直观看出正负向偏好关键词的差异。
对正负向评论分别进行文本相似性分析。
通过机器学习算法,训练此向量,进行情感分析。
后台回复“ 无问西东”,可获得本例代码
领取专属 10元无门槛券
私享最新 技术干货