任务: 使用Weka完成一个简单的文本分类试验,原始数据是文本,训练文本和测试文本的内容都描述了篮球运动和谷歌地球的情况,分类标签要求关于篮球运动为yes,谷歌地球的标签为no。
训练文本:train.txt测试文本:test.txt
一:准备工作####
1.首先,我用文本编辑器(EmEditor)分别打开训练文本和测试文本,将其另存为csv格式.
2.用Excel打开刚刚csv后缀的两个文件...在训练集train中插入首行,加入两列的列名,分别为text和label.在训练集里根据描述内容判断其为yes或者为no...在测试集里只插入首行,填上第一列和第二列列名text与label...保存..
二:数据导入weka进行文本分类###
1.用weka分别打开处理好的csv文件...##如果打开为乱码,请用方法解决:打开weka文件,,找到RunWeka.ini,,将其里的fileEncoding修改为fileEncoding=cp936...###
2.将文件打开后,我们发现属性类型为Nominal.第一步经过filter里的nominaltoString将其改变为String类型..
注意两点: (1)将第一列属性改变为String,
(2)下方选择noclass
附图
第二步再次经过filter,使用StringToWordVector过滤器,对其进行预处理.将文本分割...
3.将两个文件进行相同预处理后,保存成arff格式.打开train.arff,,使用classify算法对其分类.注意三点:
(1).我们用Supplied test set的方式加载测试集,点击set,然后open file,将test.arff加载进去,,在open file下方选择class为label.
(2)第一步完成之后,,在start上方选择label.最后点击start..
(3)在result list中将鼠标放在刚刚出现的分类名称上,右击,然后选择visualize classifier errors ,将其保存成arff格式,(我保存为graph.arff)
附图:
三:呈现结果###
将上面保存的graph.arff用weka打开,点击editor,即可看到我们对测试文本进行分类的结果.
附图: