Python文本分类数据加载 sklearn.datasets.load_files
机器学习过程中我们对英文文本进行分类研究重要的一步就是数据提取特征,并将其向量化。本文主要讲解sklearn.datasets.load_files该函数加载数据分类文本,加载txt
1、数据准备
Python的sklearn.datasets支持从目录读取所有分类好的文本。不过目录必须按照一个文件夹一个标签名的规则放好。目录如下所示:
官方解释:
方法总概况:sklearn.datasets.
load_files
(container_path, description=None, categories=None, load_content=True, shuffle=True, encoding=None, decode_error='strict', random_state=0)-
Load text files with categories as subfolder names.
加载的文本文件的分类类别就是二层文件夹的名字。这个意思二层文件夹是用分类进行命名的
Individual samples are assumed to be files stored a two levels folder structure such as the following:
文件结构就是二层文件结构
- container_folder/
- category_1_folder/
- file_1.txt file_2.txt ... file_42.txt
- category_2_folder/
- file_43.txt file_44.txt ...
The folder names are used as supervised signal label names. The individual file names are not important.
下面有个简单的例子解释:我通过A,B,C,D,E为类别对数据进行下载txt结构
1、首先建立一个总的文件夹,用于访问。对数据分类没有影响
2、二级结构文件夹就是将类别命名二层文件夹,每个文件夹里面是我们这类别的txt总的数据量,里面的txt是等待划分的数据。
综上就是对数据准备的下载和整理。接下来第二部就是数据访问加载
二、数据加载
首先展示代码:
# -*- coding: utf-8 -*-
import scipy as sp
import numpy as np
from sklearn.datasets import load_files
#导入使用的包
data1 = load_files('yang')
#装载文件夹的路径,第一层的文件
print data1.target
#返回数据的目标变量,这里的目标变量是整数的形式。ABCE 转化成了0123
# -*- coding: utf-8 -*- import scipy as sp import numpy as np from sklearn.datasets import load_files from sklearn.cross_validation import train_test_split from sklearn.feature_extraction.text import TfidfVectorizer data1 = load_files('yang') print data1.target
注意数据加载
红线加载的txt中含有多行数据,但是目标target赋予一个类别符号,就是一个txt对应一个类别。将txt作为每一条数据进行处理。