上一主题下一主题
级别: 总版主
UID: 2
精华: 1
发帖: 14751
威望: 14762 点
铜币: 1305217 枚
贡献值: 0 点
注册时间: 2022-03-21
最后登录: 2024-05-30
0楼  发表于: 2024-05-30 22:05
 | 编辑

手把手教你用Python分析豆瓣电影——以《我不是药神》《邪不压正》为例

  《我不是药神》是由文牧野执导,宁浩、徐峥共同监制的剧情片,徐峥、周一围、王传君、谭卓、章宇、杨新鸣等主演 。影片讲述了神油店老板程勇从一个交不起房租的男性保健品商贩程勇,一跃成为印度仿制药“格列宁”独家代理商的故事。
  该片于2018年7月5日在中国上映。上映之后获得一片好评,不少观众甚至直呼“中国电影希望”,“《熔炉》、《辩护人》之类写实影片同水准”,诚然相较于市面上一众的抠图贴脸影视作品,《药神》在影片质量上确实好的多,不过我个人觉得《药神》的火爆还有以下几个原因:
  后页时,url中的一个参数start会加20,但是如果直接赋予’start’每次增加10,网页也是可以存在的!
  通过分析页面发下,用户ID名称里隐藏着主页链接!所以我的思路就是request该链接,然后提取城市信息。
  因为有的用户虽然给了评论,但是没有给评分,所以score和date这两个的xpath位置是会变动的。
  2.5 获取电影名称从url上只能获取电影的subject的8位ID数值,引起需要自行解析网页获取ID号对应的电影名称,该功能是后期改进添加的,因此为避免现有代码改动多(偷个懒),采用了全局变量赋值给
  0]#list类型3. 数据存储因为数据量不是很大,因为普通csv存储足够,把获取的数据转换为pandas的DF格式,然后存储到csv文件中。
  一开始我不知道该库有城市列表资料(只找了官网,没看github)所以使用的方法如下,自己上网找中国城市字典,然后用excel 筛选和列表分割功能快速获得一个不包含省份和’市’的城市字典,然后匹配。后来去github上issue了下,发现有现成的字典文件,一个json文本,得到的回复如下(
  这样就方便了,直接和这个列表匹配就完了,不在里面的话,直接list.pop就可以了 但是这样还有个问题,就是爬取下来的城市信息中还包含着省份,而pyecharts中是不能带省份的,所以还需要通过分割,来提取城市,可能存在的情况有:
  xx.add()函数的报错,确定城市名不匹配,然后从list中把错误城市pop掉,另外注意到豆瓣个人主页上的城市信息一般都是是到市,那么县一级的区域就不考虑了,这也算是一种简化处理。
  5. 基于snownlp的情感分析snownlp主要可以进行中文分词(算法是Character-Based Generative Model)、词性标注(原理是TnT、3-gram 隐马)、情感分析(官网木有介绍原理,但是指明购物类的评论的准确率较高,其实是因为它的语料库主要是购物方面的,可以自己构建相关领域语料库,替换原来的,准确率也挺不错的)、文本分类(原理是朴素贝叶斯)、转换拼音、繁体转简体、提取文本关键词(原理是TextRank)、提取摘要(原理是TextRank)、分割句子、文本相似(原理是BM25)。
  由于snownlp全部是unicode编码,所以要注意数据是否为unicode编码。因为是unicode编码,所以不需要去除中文文本里面含有的英文,因为都会被转码成统一的编码上面只是调用snownlp原生语料库对文本进行分析,snownlp重点针对购物评价领域,所以为了提高情感分析的准确度可以采取训练语料库的方法。
  commit版本中,我最终只传入了电影的中文名字作为参数,因此相较于之前的版本,在路径这一块儿需要做写调整。由于python不支持相对路径下存在中文,因此需要做如下处理:
  \\,\\\\)6.1 评论来源城市分析调用pyecharts的page函数,可以在一个图像对象中创建多个
  北京、上海、南京、杭州、深圳、广州、成都、长沙、重庆、西安。而相对的《邪不压正》观影人群,排名前十依次为
  北京、上海、广州、成都、杭州、南京、西安、深圳、长沙、哈尔滨。电影消费是城市消费的一部分,某种程度上可以作为观察一个城市活力的指标。上述城市大都在近年的GDP排行中居上游,消费力强劲。
  但是我们不能忽略城市人口基数和荧幕数量的因素。一线大城市的荧幕数量总额是超过其他二三线城市的,大城市人口基数庞大,极多的荧幕数量和座位、极高密度的排片场次,让诸多人便捷观影,这样一来票房自然就比其他城市高出不少,活跃的观众评论也多。
  “力荐”、“推荐”、“还行”、“较差”、“很差”次序可能不一致,因此最后会有重复值出现,所以在拼接两个df时,需要duplicates()去重。
  从上述日评分投票走势图可以发现,在影片上映开始的一周内,为评论高峰,尤其是上映3天内,这符合常识,但是也可能有偏差,因为爬虫获取的数据是经过豆瓣电影排序的,倘若数据量足够大得出的趋势可能更接近真实情况。
  提前批的用户的评分均值,差不多接近影评上映后的大规模评论的最终评分 ,从这些细节中,我们或许可以猜测,这些能提前观看影片的,可能是资深影迷或者影视从业人员,他们的评论有着十分不错的参考价值。那么日后在观看一部尚未搬上大荧幕的影片前,我们是否可以通过分析这些
  十二、谁把心里话写日记里啊,日记这玩意本来就不是给外人看,要是给外人看了,就俩字下贱!《邪不压正》
  十五、“我要报仇!”“那你去呀!你不敢?”“我等了十五年了,谁说我不敢?”“那你为什么不去,你不敢”“对,我不敢”《邪不压正》
  抱有期望,支持和喜爱,期待他后续更多的精彩作品;程序刚跑完,词云里突然出现个爸爸,让我卡顿了(PS:难道程序bug了???),接着才想起来是影片中的姜文饰演的蓝爸爸,以此称呼姜导,可见铁杆粉丝的满满爱意~
  倘若是尚未观看本片的读者,仅从情感分析的角度看,我相信也可以下对本片下结论:值得去影院体验的好电影。正如我在文章开篇所说,《药神》的诞生,给中国当前的影片大环境带来了一股清流,让人对国产电影的未来多了几分期许。
☛ 1024社區区
上一主题下一主题
帖子浏览记录 版块浏览记录  电影2090 » 互动杂谈