任务描述
本关任务:认识数据处理的基本流程,完成对数据的预处理程序。
相关知识
为了完成本关任务,你需要掌握:
数据预处理简介
对财经数据集进行处理
数据预处理简介
预处理数据是个必要的步骤,这是为了数据挖掘做准备。这会让提取信息和机器学习算法的处理变得简单。如果跳过这一步,那么很大概率你会碰上充满噪声和偏差的数据集。这一步的目的就是把那些噪声信息剔除掉,因为噪声信息对于情感分析没有什么贡献,比如那些标点符号,特殊字符,数字,以及对文本的权重贡献很低的内容。
在后续的步骤中,我们会从数据集中提取数字特征。这个特征空间是使用数据集中所有不重复的单词构建的。所以如果我们对数据预处理做得好,那之后我们也会获得一个品质更好的特征空间。
对财经数据集进行处理
下面我们来学习如何对支持向量机的财经新闻分类数据进行预处理。
我们仍然以本次使用的财经数据为例。首先,我们观察数据:
可以看到,数据包含两列,sentiment 是一个二进制数值,Message 包含了我们需要清理的评论内容。
看了表头数据之后,我们大概可以开始清理数据了,清理大概可以从下面几个方面入手:
去掉标点符号、数字甚至特殊字符。代码如下:
df['Message'].str.replace("[^a-zA-Z#]", " ")
大多数太短的词起不到什么作用,比如‘pdx’,‘his’,‘all’。所以我们也把长度小于3的词去掉。代码如下:
# 去除长度小于3的短词
df['Message'].apply(lambda x: ' '.join([w for w in x.split() if len(w)>3]))
接下来,我们把每一条评论切分成独立的单词或者符号了,这在所有NLP任务中都是必须的一步。
# 数据集符号化。符号