在前一篇文本分类基础之上,由于在文本分类过程中 需要分开测试集训练集,因此采用weka为过滤器配置的批量过滤BatchFiltering,网上资料很少,因此经过实验可以实现,对训练集 测试集分开。测试集按照训练集的特征进行下面的运算:
1.训练集和测试集生成向量空间
java weka.core.converters.TextDirectoryLoader -dir C:\Users\HP_xiaochao\Desktop\微博关键词搜索\segment > C:\Users\HP_xiaochao\Desktop\微博关键词搜索\weka\train_keyword_wb.arffjava weka.core.converters.TextDirectoryLoader -dir C:\Users\HP_xiaochao\Desktop\微博关键词搜索\test > C:\Users\HP_xiaochao\Desktop\微博关键词搜索\weka\test_keyword_wb.arff2.批量生成词向量实用过滤器的批量过滤命令 测试集 训练集统一java weka.filters.unsupervised.attribute.StringToWordVector -R first-last -W 1000 -prune-rate -1.0 -C -T -I -N 0 -stemmer weka.core.stemmers.NullStemmer -stopwords-handler weka.core.stopwords.Null -M 1 -tokenizer "weka.core.tokenizers.WordTokenizer -delimiters \" \\r\\n\\t.,;:\\\'\\\"()?!\"" -b -i C:\Users\HP_xiaochao\Desktop\微博关键词搜索\weka\train_keyword_wb.arff -o C:\Users\HP_xiaochao\Desktop\微博关键词搜索\weka\train_keyword_wb_vsm0.arff -r C:\Users\HP_xiaochao\Desktop\微博关键词搜索\weka\test_keyword_wb.arff -s C:\Users\HP_xiaochao\Desktop\微博关键词搜索\weka\test_keyword_wb_vsm0.arff 3.批量特征选择java weka.filters.supervised.attribute.AttributeSelection -E "weka.attributeSelection.InfoGainAttributeEval " -S "weka.attributeSelection.Ranker -T -1.7976931348623157E308 -N 500" -b -i C:\Users\HP_xiaochao\Desktop\微博关键词搜索\weka\train_keyword_wb_vsm0.arff -o C:\Users\HP_xiaochao\Desktop\微博关键词搜索\weka\train_keyword_wb_vsm0_as.arff -r C:\Users\HP_xiaochao\Desktop\微博关键词搜索\weka\test_keyword_wb_vsm0.arff -s C:\Users\HP_xiaochao\Desktop\微博关键词搜索\weka\test_keyword_wb_vsm0_as.arff
如果直接运行上面的命令会报错,因为weka并没有把词向量数据文件 中的第一个属性 当成类标签,因此需要把该属性变成类标签后再执行:在weka中打开数据文件,edit 把第一个属性 当作类属性,weka默认是把左右一个属性当作类标签的
4.分开测试 训练接下来的过程 就是通常的分类过程了。作者不贴出来了。