mysql 文本挖掘_GitHub - tansencode/dianping_textmining: 大众点评评论文本挖掘,包括点评数据爬取、数据清洗入库、数据分析、评论情感分析等的完整挖掘项目...

该项目涉及大众点评十大热门糖水店评论的爬取、数据清洗与存储到MySQL,以及评论情感分析。通过BeautifulSoup和re提取信息,使用pymysql存储数据,面对反爬虫采取了多种策略。在情感分析部分,使用了TF-IDF和朴素贝叶斯模型,发现样本不均衡问题影响了模型效果,通过过采样方法改善了预测准确性。
摘要由CSDN通过智能技术生成

大众点评评论文本挖掘

[TOC]

一、爬虫

整体思路

爬取大众点评十大热门糖水店的评论,爬取网页后从html页面中把需要的字段信息(顾客id、评论时间、评分、评论内容、口味、环境、服务、店铺ID)提取出来并存储到MYSQL数据库中。

网页爬取和解析

链接格式为"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部分代码如下:

for item in soup('div','main-review'):

cus_id = item.find('a','name').text.strip()

comment_time = item.find('span','time').text.strip()

comment_star = item.find('span',re.compile('sml-rank-stars')).get('class')[1]

cus_comment = item.find('div',"review-words").text.strip()

scores = str(item.find('span','score'))

try:

kouwei = re.findall(r'口味:([\u4e00-\u9fa5]*)',scores)[0]

huanjing = re.findall(r'环境:([\u4e00-\u9fa5]*)',scores)[0]

fuwu = re.findall(r'服务:([\u4e00-\u9fa5]*)',scores)[0]

except:

kouwei = huanjing = fuwu = '无'

数据存储

我们使用MYSQL数据库,安装教程参考菜鸟教程,python连接MYSQL数据推荐使用pymysql,同样是推荐菜鸟教程菜鸟教程。我们需要先建立一个数据库和表,然后连接并定义游标,然后写对应的sql语句,最后执行事务,存储部分的代码如下:

#连接MYSQL数据库

db = pymysql.connect("localhost","root","","TESTDB" )

cursor = db.cursor()

#存储爬取到的数据

def save_data(data_dict):

sql = '''INSERT INTO DZDP(cus_id, comment_time, comment_star, cus_comment, kouwei, huanjing, fuwu, shopID) VALUES(%s,%s,%s,%s,%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值