首页 理论教育 Python文本分析:文本数据准备

Python文本分析:文本数据准备

时间:2023-11-06 理论教育 版权反馈
【摘要】:在文本分类过程中,需要模型训练和模型测试,需要对原始文本数据集进行分割,获得训练数据集和测试数据集。如果是浮点数,则在0.0和1.0之间,表示包含在测试分割中的数据集的比例。如果是整数,表示测试集样本的绝对数量。表8-3THUCNews数据集具体类别

Python文本分析:文本数据准备

1.数据集结构

在前面的分析中,给出了一些常用的文本数据集,包括一些现有的中文文本数据集库,同时还可以采用不同的方法获取网络文本数据集,最后形成原始数据集。

我们提供的原始数据集的目录结构和处理后的结果数据子集的目录结构如下:

为了便于后续的分析,我们对上述目录结构的文本数据集进行了处理,通过对文本数据的预处理,包括分词、删除特殊字符、去除停用词等,并对文本数据集的目录结构进行调整,最后转化成的数据集目录结构如下:

定义目录结构转换的函数如下:

参数:

openpath:原始数据集目录。

savepath:处理后的数据集存储目录。

在文本分类过程中,需要模型训练和模型测试,需要对原始文本数据集进行分割,获得训练数据集和测试数据集。

2.采用Scikit-learn工具包实现数据集分割

采用Scikit-klearn工具包实现数据集分割,首先要对原始文本数据集进行预处理,包括格式转换、文本分词等,然后再利用train_test_split()函数实现数据集分割。

1)获取数据集样本、数据集样本标签和样本类名称

定义函数如下:

参数:

trainsetpath:数据集存储路径。

返回值

corpus:获取样本数据集,以列表形式返回所有的样本数据。

class_labels:获取数据集样本对应的标签,以列表形式返回。

class_names:整个数据集中包含的样本类名称,以列表形式返回。

2)采用train_test_split()函数实现数据集分割

train_test_split()函数描述如下:

(www.xing528.com)

其功能是将原始数据集按照一定比例划分为训练集和测试集,并返回划分好的训练集和测试集、训练样本和测试样本标签。

参数:

corpus:原始数据集,其可为列表、数组矩阵类型。

corpus_labels:原始数据集样本标签。

test_size:获得测试集样本的比例。如果是浮点数,则在0.0和1.0之间,表示包含在测试分割中的数据集的比例。如果是整数,表示测试集样本的绝对数量。如果没有,则将该值设置为训练集大小的补数。

random_state:是用来产生随机数的种子。随机数产生依赖种子的选择,如果种子不同,则产生不同的随机数;如果种子相同,则产生相同的随机数。如果要做相同实验,为了保证结果的一致性,需要获取相同的随机数。

返回值:

x_train:返回训练集样本。

x_test:返回测试集样本。

y_train:返回训练集样本标签。

y_test:返回测试集样本标签。

3.自定义方法实现数据集分割

由于Scikit-learn包中的实现方法对原始数据集进行训练集和测试集划分,但有时需要对原始数据集实现多个类别划分,以满足不同的需求,因此,我们自己定义数据集分割方法,实现原始数据集分割,并可随机设置各个类别中的数据集大小。

我们提供了数据集分割接口如图8-2所示,并利用此接口实现清华大学自然语言处理与社会人文计算实验室提供的语料库THUCNews进行分割,需要分别输入训练集、测试集和验证集的条数。

图8-2 数据集分割的接口

相关参数分析:

(1)原始数据集路径。

(2)分割后数据集的存储路径包括训练集、测试集和验证集三类。

(3)给定三类数据集的样本数量,包括训练集、测试集和验证集三类。

例如,图8-2中是实现THUCNews数据集分割的相关参数,具体的类别见表8-3,从原始数据集每个类中分别选择5000条、2000条和1000条数据作为训练集、测试集和验证集。

表8-3 THUCNews数据集具体类别

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈