开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践:文本特征提取 2】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1067/detail/15502
文本特征提取 2
内容介绍:
一、评论时间分布情况
二、观测每周评论数据变化情况
三、分词去停用词
一、评论发布时间分布情况
数据转化,需要做一些基本操作,要把数据做些转化。创建时间就需要把它转化成一个日期的时间格式, panda 中有一个函数 to_datetime, 可以把 datatime 中的 creation_time 转化成标准的时间格式,一个是创建时间,一个是回复引用的时间,这是日期常用的一些属性。
二、观测每周评论数据变化情况
接下来做一个绘图,绘图会使用到一个函数即 subplots, 里面有参数可以设置图像的大小。反过来参数上的一个是图,另一个是画布。除此之外还会使用到 pandas 数据框里面的汇总函数 groupby 。按照两个字段进行汇总,汇总之后要进行计数,也就是对 groupby 汇总进行什么样的操作。
计数之后会给其一个名字 nickname, 最后用函数 unstack 分成行和列展开。
现在有两个码 ‘hour’ 和 ‘weekday’, 用 unstack 把它们分开一个做成行一个做成列。
在数据框 df 即 datafriend 当中,里面的前12条记录在 head 后面的数据框中可以填入12。也可以直接用数据框来绘图,数据框功能很强大,因为在 ax1 中绘图,图上面的线型就是一杠和一点(“—.”)代表线的一个风格,最后进行运行,得到数据框。
Hour 是汇总第一关键字, weekday 是第二汇总关键字, hour 作为行, weekday 作为列。
在图例当中,不同颜色代表0到6,也就是星期一到星期天,0表示星期天,横坐标表示的是小时。从图中可看出星期一到每周日用户评论情况趋势相同,用户活跃时间主要集中在8点到20点时段,深夜活跃度低可能大部分用户在睡觉。
评论长度于评分关系情况,评论长度可以单独给其起一个词段,在数据框当中很方便, content_learn 就是评论内容的长度,用 content 里面的 str 函数来处理长度,要注意数据框中强大的字符串处理函数。在做处理文本数据挖掘中,大量时间都在做文本处理,所以要掌握数据框中各种的简单处理函数提高效率。
以下是绘图结果,评分是1到5分,结果可以看出1星的用户评论长,说明不满意的用户提供更多信息。
三、分词去停用词
做文本特征处理需要进行分词,分词先获取停用词,下载停用词表。通过 open 打开停用词表,下载 word_list 变量,这是一个借表格式。
具体的分词过程中,先把 data 中的两个字段 “content” 和 “score” 单独拿出来放到一个 data1 的数据框当中。在 data1 里面就是两个字段。
用 jieba 进行分词,会使用到两个高级函数 “apply” 和 “lamba”。 在 data1 [‘content’]这一列评论内容中引用到一个 apply 函数, apply 函数括号中的参数中用到的是另外一个函数,此函数功能强大,效率非常高。括号里面应该用到一个快速函数方法 lamba 还有 lamba 中的参数。
参数处理中会有空格,把 “jion” 与 jieba.cut 连接起来。 Jieba cut 是分词,其后 x 是传进来的数据框 data1[‘content’],也就是每一行评论由 cut 进行分词,此外还会放到 data1[‘seg_words’] 这一列当中。
分词的结果有5条,每个词之间都会空格。