若采用的是英文文本语料库,利用WEKA将英文文本数据转换到ARFF格式中,需要用到以下两个工具:TextDirectoryToArff和TextDirectoryLoader。
TextDirectoryToArff是一个JAVA类(Class),它负责将一个目录文件中的文本数据转换到一个ARFF文件中。
TextDirectoryLoader是一个转换器(Converter),它是基于TextDirectoryToArff类的,并且处于weka.core.converters包中。
在转换之前,我们需要将文本数据集按照TextDirectoryLoader转换器所要求形式布局:
-----------------------------------------------------------
...
|
+- example
|
+- class1
| |
| + file1.txt
| |
| + file2.txt
| |
| ...
|
+- class2
| |
| + another_file1.txt
| |
| + another_file2.txt
| |
| ...
-----------------------------------------------------------
按照上图所示的目录布局好文本数据后,将example文件夹放置在weka根目录下,我们利用WEKA的命令行界面(Simple CLI)输入以下命令:
java weka.core.converters.TextDirectoryLoader -dir example > example.arff
此时,可以发现在weka根目录下生成了一个example.arff文件,这说明文本数据已经成功转换成了WEKA需要的ARFF文件了。
example.arff文件内容下图所示,从图中可以发现example文件夹下的子文件夹名变成了每个文档的类标记。
-----------------------------------------------------------
@relation D__workspace_weka_example
@attribute text string
@attribute class {class1,class2,class3}
@data
‘文本内容’,class1
‘文本内容’,class3
‘文本内容’,class2
‘文本内容’,class1
‘文本内容’,class3
...
-----------------------------------------------------------
该方法对于中文文本数据不适用,生成的ARFF中的中文会变成乱码,需要修改WEKA的源码才能实现对中文文本数据的处理。