本人目前正在做一个为景点打标签的项目,项目数据来源是使用 八爪鱼从马蜂窝上爬取的景点评论数据,目前的想法是先从个别代表性的景点入手,先摸索清楚流程,然后再应用到其他景点,所以先爬取了“广州塔”、“广州长隆野生动物世界”,“广东省博物馆”三个景点的数据,情况如下:
下面我将详细的讲诉实现过程,因为是针对初学者所以有些啰嗦,不过也都是我自己填过的坑,希望对大家有帮助。
在开始之前我先交代下我的环境,我使用的是python3,编辑器为jupyter,以下内容都是基于此(python 2和3有些语法区别)。
由于涉及到中文内容,所以一定要设置好字符集编码,在程序开头加入:
1 数据准备
数据爬下来之后是存放成csv文件的,文件名为:comments.csv,以下将分两种情况来介绍如何读取数据。
1.1 当数据存放目录与工作目录一致时
这时读取数据是非常简单的,直接用read_csv就可以
1.2 当数据存放目录与工作目录不一致时
这时就复杂一些,需要手工指定文件路径,读取也有两种方式
a:就是先分别指定路径和文件名,然后拼接起来,用read函数读入表中,但是这样读取会有个问题,就是data类型为str,后续分析时需要转化为dataframe,转化过程中总出现数据溢出报错,个人觉得可能是有些中文句子比较长的原因吧,后来就放弃这种方式。
b:为了解决上述问题,用read_csv读取数据,这样出来的数据类型就是dataframe啦
总结:对于初学者数据类型问题还是挺烦人的。
2 数据清洗
2.1 字段选择及重命名
由于有些字段对分析无用,过滤掉,字段名为中文,重命名为英文
2.2去除评论中非[中文|英文|数字]字符
处理后的对比,可以看到文本中的标点及换行等字符都被清洗
2.3划分好评和差评
根据星级打分,将评论划分为好评和差评
2.4加载停用词并删除
python 自带的有停词库,当然你也可以根据需要自定义停用词典,这里我自定义字典为custom_stopwords.txt,里面放的是我认为无关紧要的词
3分词
python自带词库,但是对于个性化的需求是无法满足的,也需要根据实际情况构建词库(这个工作绝对是个苦力活),custom_dict.txt这是我构建的,后续还会不断更新优化。
这里我们使用的是jieba分词,先加载自定义词库
对评论数据进行分词
提取出来名词和形容词
4 词频统计
从词频靠前的词来看,长隆的特色是野生动物和小火车,当然这还是初步分词,还不能构建出特征标签,还需要结合段落和句子来分析,最终构建出标签(类似于园区大,适合小朋友之类的标签),这个后续再细讲。
5,词云
统计出词频后,可以构建词云,以下为汉溪长隆好评的词云
未完待续
领取专属 10元无门槛券
私享最新 技术干货