php做简单网站教程视频,萍乡市建设局网站王丽,wordpress安装图片不显示,wordpress模板怎么修改页面内容文章目录1.前言2.爬虫1.1 整体思路1.2 网页爬取和解析1.3 数据存储反爬虫对抗2 探索性分析与文本数据预处理2.1 探索性分析2.2 数据预处理2.3词云展示3 文本的情感分析3.1 先上结果3.2 文本特征提取#xff08;TF-IDF#xff09;3.3 机器学习建模3.4 最后输出的准确率1.前言 …文章目录1.前言2.爬虫1.1 整体思路1.2 网页爬取和解析1.3 数据存储反爬虫对抗2 探索性分析与文本数据预处理2.1 探索性分析2.2 数据预处理2.3词云展示3 文本的情感分析3.1 先上结果3.2 文本特征提取TF-IDF3.3 机器学习建模3.4 最后输出的准确率1.前言今天应同学要求介绍一篇关于大数据处理的毕业设计基于大数据挖掘分析的大众点评评论文本挖掘。毕设帮助开题指导资料分享疑问解答(见文末)选题指导, 项目分享见文末2.爬虫1.1 整体思路爬取大众点评十大热门糖水店的评论爬取网页后从html页面中把需要的字段信息顾客id、评论时间、评分、评论内容、口味、环境、服务、店铺ID提取出来并存储到MYSQL数据库中。1.2 网页爬取和解析链接格式为http://www.dianping.com/shop/ shopID “/review_all/” pi如http://www.dianping.com/shop/518986/review_all/p1 一页评论有20条。我们使用for循环构造链接URL使用requests库发起请求并把html页面爬取下来通过BeautifulSoup和re库解析页面提取信息。我们发现完整的评论都存储在’div’,main-review’中且部分页面口味、环境、服务并不是每一页都有因此需要使用try…except…防止程序中断BeautifulSoup部分代码如下foriteminsoup(div,main-review):cus_iditem.find(a,name).text.strip()comment_timeitem.find(span,time).text.strip()comment_staritem.find(span,re.compile(sml-rank-stars)).get(class)[1]cus_commentitem.find(div,review-words).text.strip()scoresstr(item.find(span,score))try:kouweire.findall(r口味([\u4e00-\u9fa5]*),scores)[0]huanjingre.findall(r环境([\u4e00-\u9fa5]*),scores)[0]fuwure.findall(r服务([\u4e00-\u9fa5]*),scores)[0]except:kouweihuanjingfuwu无1.3 数据存储我们使用MYSQL数据库安装教程参考菜鸟教程python连接MYSQL数据推荐使用pymysql同样是推荐菜鸟教程菜鸟教程。我们需要先建立一个数据库和表然后连接并定义游标然后写对应的sql语句最后执行事务存储部分的代码如下#连接MYSQL数据库dbpymysql.connect(localhost,root,,TESTDB)cursordb.cursor()#存储爬取到的数据defsave_data(data_dict):sqlINSERT INTO DZDP(cus_id, comment_time, comment_star, cus_comment, kouwei, huanjing, fuwu, shopID) VALUES(%s,%s,%s,%s,%s,%s,%s,%s)value_tup(data_dict[cus_id],data_dict[comment_time],data_dict[comment_star],data_dict[cus_comment],data_dict[kouwei],data_dict[huanjing],data_dict[fuwu],data_dict[shopID])try:cursor.execute(sql,value_tup)db.commit()except:print(数据库写入失败)return反爬虫对抗修改请求头中浏览器信息使用fake_useragent第三方库修改request中的headers参数用法如下:fromfake_useragentimportUserAgent uaUserAgent()headers{User-Agent:ua.random}设置跳转路径在访问评论时一般的浏览行为是从某一页跳转到下一页这样的而不是直接通过连接访问为了更好的伪装成一个正常的访问我们需要设置一下跳转的路径修改headers中的Referer参数headers{User-Agent:ua.random,Cookie:cookie,Referer:http://www.dianping.com/shop/518986/review_all}设置Cookies评论数据需要登录后才能获取下面介绍一种非常简单方便的绕过登录的方法。在网页上进行登录使用Chrome浏览器的开发者工具查询当前请求的cookie复制浏览器中的cookie使用此cookie对我们的请求进行伪装使用IP代理池这里使用西刺代理的免费代理构建一个爬虫爬取西刺代理的ip然后进行验证筛掉不可用的ip构建出ip池供后续调用代码来自网络。但是经过测试大众点评对一个账号不同ip访问监控非常严格使用IP代理池不更换账号的话死的更快封你账号然而构建账号池比较麻烦我们先暂缓。降低爬取频率一个简单又有效的方法就是降低爬取频率毕竟高频率的爬取对服务器也是一个考验如果对速度的要求不是很高的话建议把频率放慢一点你好我好大家好importrandomimporttime time.sleep(6*random.random()4)2 探索性分析与文本数据预处理2.1 探索性分析查看数据大小以及基础信息 浏览数据样本分布各店铺评分分布点评数的的时间分布查看评论长度对结果影响2.2 数据预处理去除非文本数据可以看出爬虫获取的数据非常多类似“\xa0”的非文本数据而且都还有一些无意义的干扰数据如结尾的“收起评论”data[cus_comment]data[cus_comment].str.replace(r[^\u4e00-\u9fa5],).str.replace(收起评论,)中文分词中文文本数据处理怎么能离开中文分词呢我们使用jieba库简单又好用。这里我们把文本字符串处理为以空格区隔的分词字符串importjieba data[cus_comment]data[cus_comment].apply(lambdax: .join(jieba.cut(x)))去除停用词文本中有很多无效的词比如“着”“和”还有一些标点符号这些我们不想在文本分析的时候引入因此需要去掉因为wordcloud和TF-IDF都支持停用词因此就不额外处理了2.3词云展示3 文本的情感分析3.1 先上结果模型的效果还可以的样子yeah~接下来我们好好讲讲怎么做的哈我们通过爬虫爬取了大众点评广州8家最热门糖水店的3W条评论信息以及评分作为训练数据前面的分析我们得知样本很不均衡。接下来我们的整体思路就是文本特征提取(TF-IDF)—机器学习建模—模型评价。我们先不处理样本不均衡问题直接建模后查看结果接下来我们再按照两种方法处理样本不均衡对比结果。3.2 文本特征提取TF-IDF模型不能直接处理文本数据因此需要先把文本数据转为向量方法有词库表示法、TF-IDF、word2vec等3.3 机器学习建模这里我们使用文本分类的经典算法朴素贝叶斯算法而且朴素贝叶斯算法的计算量较少。特征值是评论文本经过TF-IDF处理的向量标签值评论的分类共两类好评是1差评是0。情感评分为分类器预测分类1的概率值。3.4 最后输出的准确率#从大众点评网找两条评论来测试一下test1很好吃环境好所有员工的态度都很好上菜快服务也很好味道好吃都是用蒸馏水煮的推荐超好吃#5星好评test2糯米外皮不绵滑豆沙馅粗躁没有香甜味。12元一碗不值。#1星差评print(好评实例的模型预测情感得分为{}\n差评实例的模型预测情感得分为{}.format(ceshi(classifier,test1),ceshi(classifier,test2)))好评实例的模型预测情感得分为0.8638082706675478差评实例的模型预测情感得分为0.7856544482460911 项目分享:大家可自取用于参考学习获取方式见文末!