python 豆瓣评论分析方法_基于Python的豆瓣影评分析——数据预处理
一、数据抓取
利用python软件,抓取豆瓣网上关于《向往的生活》的影视短评,进行网页爬虫,爬虫代码如下:import requests
import re
cookies=[cookie1,cookie2,cookie3]
url1='https://movie.douban.com/subject/26873657/comments?start=' #《向往的生活 第1季》豆瓣短评网址
url2='https://movie.douban.com/subject/27602222/comments?start='
#《向往的生活 第2季》豆瓣短评网址
url3='https://movie.douban.com/subject/30441625/comments?start='
#《向往的生活 第3季》豆瓣短评网址
urls=[url1,url2,url3]
comments=[]
for i in range(0,3):
print(urls[i])
for n in range(0,500, 20):
#获取目标网页
url = urls[i] +str(n) + '&limit=20&sort=new_score&status=P'
# print(url)
# print(n)
#打开目录,并获取内容
html =requests.get(url, cookies=cookies[i])
# print(html)
#print(html.text)
#筛选数据
data =re.findall('(.*?)', html.text)
for j inrange(len(data)):
comments.append(data[j])
print(comments)
with open('E:/热心市民与好好先生/me/毕设/数据/data.txt','w',encoding='utf-8')as f:
#f.writelines(comments)
for comment incomments:
f.write(comment+"\n")
由于豆瓣网设有爬虫限制频率,所以抓取《向往的生活》三季的1468条数据作为训练数据集,并保存为txt文件。训练集的部分数据如下:
部分训练集
二、数据预处理
由于原始的影评文本中可能存在与情感分析任务无关的内容以及软件无法识别的特殊字符表情,因此要对文本进行预处理操作。数据预处理分为中文分词和去除停用词两个步骤。
(1)中文分词
中文分词就是将一整句中文文本,经过切分形成单个单独词语的过程,本文采取的中文分词工具为jieba分词,词与词之间用空格隔开。import jieba #Python载入包
def preHandler(sentence):
seg_list=jieba.cut(sentence)
f_stop=open('stopwords.txt','r')
try:
f_stop_text=f_stop.read()
finally:
f_stop.close()
f_stop_seg_list=f_stop_text.split('\n')
words=[]
for word inseg_list:
ifnot(word.strip() in f_stop_seg_list):
words.append(word)
return words
fw=open('E:/热心市民与好好先生/me/毕设/数据/predata.txt','w', encoding='utf-8')
with open('E:/热心市民与好好先生/me/毕设/数据/data.txt','r', encoding='utf-8') as f:
for line inf.readlines():
line=line.strip()
word=preHandler(line)
fw.write("".join(i for i in word)+"\n")
fw.close()
(2)去除停用词
为有效提高运行时间,节省储存空间,我们将采取去除停用词的方法,本文采取的停用词都是感情色彩较弱或不具有感情色彩的词汇。数据在进行上述两个步骤之后,形成的txt文件部分内容如下:
数据预处理部分结果
三、描述性统计
将预处理得到的数据导入到Python中,手动去除几个出现频率高但不包含情感的词汇后,把文本中出现频率较高的关键词,在视觉效果上给予突出,形成关键词云层。绘制词云图Python代码如下:def random_color_func(word=None, font_size=None,position=None, orientation=None, font_path= None, random_state=None):
h = randint(0, 0)
s = int(0 * 0 /255.0)
l = int(0 *float(randint(60, 120)) / 255.0)
return"hsl({}, {}%, {}%)".format(h, s, l)
with open(r'predata.txt','r',encoding="utf-8") asfile1:
content ="".join(file1.readlines())
images = Image.open("ci.png") #读取背景图片,
maskImages = np.array(images)
wc = WordCloud(font_path="msyh.ttc",
background_color="white",
mask=maskImages,
max_words=1000,
max_font_size=300,
#color_func=random_color_func
).generate(content)
plt.imshow(wc)
plt.axis("off")
wc.to_file('laomao.png')
plt.show()
文本评论中“喜欢”、“综艺”和“生活”属于用户共同的话题,文字越大表明用户的情感越强烈,综合以上信息,可得大多数人认为《向往的生活》这一综艺是好看的,大多数用户是喜欢的,节目中的大华也得到了一致好评。但词云图中也出现了“抄袭”、“尴尬”这些话题,说明有一部分评论者认为节目存在抄袭现象,相处模式比较尴尬,这就为创作者提供了很好的改进来源。创作者在节目原创部分有待提高,剧本和嘉宾相处模式可以更加流畅。
影视评论词云图
python 豆瓣评论分析方法_基于Python的豆瓣影评分析——数据预处理相关推荐
- python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)
一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...
- 基于python爬虫技术的应用_基于Python爬虫技术的应用
办公自动化杂志 一.引言 本文主要是对 Python 爬虫技术进行阐述,基于 python 的爬虫与其他语言相比的有很多优势.通过爬去某个网站的所有新闻这个案例,来进一步阐释 Python 爬虫技术的 ...
- python 豆瓣评论分析方法_使用python抓取豆瓣top250电影数据进行分析
抓取豆瓣Top250电影数据的链接和电影名称 代码如下: import urllib.request as urlrequest from bs4 import BeautifulSoup impor ...
- python 赋值方法_基于Python List的赋值方法
Python中关于对象复制有三种类型的使用方式,赋值.浅拷贝与深拷贝.他们既有区别又有联系,刚好最近碰到这一类的问题,研究下. 一.赋值 在python中,对象的赋值就是简单的对象引用,这点和C++不 ...
- python数字识别kaggle论文_基于Python语言Kaggle的数据集分析
界 基于 Python 语言 Kaggle 的数 据集 分析 段 聪 聪 柴 世 一 * 渊 河 南 大 学 计 算 机 与 信 息 工 程 学 院 袁 河 南 开 封 475004 冤 揖 摘 要 ...
- python 情感分析实例_基于Python的情感分析案例
**情感分析 **又称为倾向性分析和意见挖掘 它是对带有情感色彩的主观性文本进行分析.处理.归纳和推理的过程 其中情感分析还可以细分为情感极性 倾向 分析 情感程度分析 主客观分析等. 情感极性分析的 ...
- python图书馆管理系统实验报告_基于Python的图书馆业务报表自动生成研究
龙源期刊网 http://www.qikan.com.cn 基于 Python 的图书馆业务报表自动生成研 究 作者:辛海滨 来源:<电脑知识与技术> 2016 年第 27 期 摘要:针对 ...
- 基于python的语料库数据处理电子版_基于 Python 自然语言处理工具包在语料库研究中的运用...
基于 Python 自然语言处理工具包在语料库研究中的运用 刘 旭 [摘 要] 摘要:国内当前以语料库为基础的研究,在研究工具方面,多以 AntConc . PowerGREP 为主,使用 Pytho ...
- python 线性回归 技术方案亮点_基于Python的线性回归实战
一.线性回归的理论 1)线性回归的基本概念 线性回归是一种有监督的学习算法,它介绍的自变量的和因变量的之间的线性的相关关系,分为一元线性回归和多元的线性回归.一元线性回归是一个自变量和一个因变量间的回 ...
- python网络爬虫的流程图_基于Python的网络爬虫的设计与实现
龙源期刊网 http://www.qikan.com.cn 基于 Python 的网络爬虫的设计与实现 作者:高祖彦 来源:<商情> 2020 年第 33 期 [摘要]一个爬虫从网上爬取数 ...
最新文章
- 多传感器融合技术简介
- .net 获取字符串中的第一个逗号的位置_用EXCEL合并同列字符串
- 星系炸弹-2015省赛C语言A组第二题
- 《以前工作中的三大痛点,只因他们没学Python》
- “make -n”和 “+command”的解释
- 平台游戏中走与跳的实现
- 写在SDOI2016Round1前的To Do List
- 中文版Visual Studio 2008 SP1 智能提示为英文的补丁发布
- 现在好多打工的都说月薪有八九千甚至过万,真有那么高工资吗?
- Vue学习笔记之14-Vue-CLI脚手架
- 如何制作BAT(Windows批处理文件)病毒
- cad与连接mySQL数据库,如何连接CAD与ACCESS数据库或excel表格?
- 使用Simian工具扫描重复代码
- LTE-OA系统架构图
- c语言diy杀毒程序源代码,C语言作品→杀毒程序(原始版)
- 在VirtualBox Linux 7u2 中安装Oracle RAC 12.2.0.1.0
- 为了看Google IO 2019大会使用的工具
- 台式机win7连接蓝牙耳机
- 银河麒麟V10 SP2 搭建tftp服务
- 很经典的600句人生至理格言
热门文章
- 小程序 跳转到腾讯文档小程序
- PCS7符号计算机名称,pcs7中的符号表
- k2运营商服务器无响应,【求救】K2提示“等待PPP客户端连接”拨号失败
- ionic—alert弹出框
- 计算机ps图片在哪里看,如何在Photoshop中查看照片的EXIF信息如何删除照片的exif信息...
- 项目管理第九章项目资源管理
- RDKit | 处理RDKit分子Mol对象
- 苹果cms内核H5网页漫画小说系统
- 软考-系统分析师-论文写作-备考总结笔记
- 数学模型——人口增长模型(基于python)