2010-11-30 505 views
1

我正在为MATLAB格式的文本分类任务寻找可靠的数据集。 我想运行一些实验,不想花太多时间来预处理文本和创建特征向量。我需要准备好一些东西,以便将其插入到我的算法中。我在这里找到了路透数据集的MATLAB文件:link textMATLAB的文本分类数据集

在这里一切都准备好了,但我想使用这个的一个子集。在这个“fea”中包含每个文档的特征向量。但是,它似乎不是一个正常的矩阵。我想要例如在此“fea”中选择前1000个文档。如果你只是下载它并将其加载到MATLAB中,你会明白我的意思。 所以,如果有可能,我需要一个解决方案为上述数据集或任何其他数据集。 在此先感谢。

+0

我在这台电脑上没有Matlab,所以`如果你只是下载它并将它加载到MATLAB中,你会明白我的意思.`对我(对你来说不是很有帮助)。你能描述一下当你试图选择前1000个文件时会发生什么吗? – 2010-11-30 14:43:37

回答

2

它被存储为sparse matrix。提取的第1000个文档(行),如果你有足够的空间,你可以将它转换为完全稠密矩阵:

load Reuters21578.mat 
TF = full(fea(1:1000,:)); 

让检查我们有变数:

>> whos 
    Name    Size     Bytes Class  Attributes 

    TF   1000x18933   151464000 double    
    fea   8293x18933    4749196 double sparse  
    gnd   8293x1     66344 double    
    testIdx  2347x1     18776 double    
    trainIdx  5946x1     47568 double   

所以你可以看到TF现在大约150MB。

除此之外,其余是不言自明:

  • fea:术语频矩阵,行文件,列术语
  • gnd:每个文档的类别,其中numel(unique(gnd)) == 65
  • trainIdx/testIdx:用于分类目的的实例(文档)拆分,包含行索引,用作:tr = fea(trainIdx,:); tt = fea(testIdx,:);