要使用weka进行聚类分析,必须先将文本数据转换成weka可识别的arff格式。Instances类是weka可识别的数据类,其toString方法即可转换为arff格式的数据。在文本聚类中,arff格式的示例如下:
@relation patent
@attribute text string
@data
'第一篇文章的内容'
'第二篇文章的内容'
......
经过摸索,主要有三种方式将文本转换成Instances类。
(1)连接数据库。weka对数据库连接的支持很差,需要将weka的jar解压,再修改里面的参数重新打包才可以正常使用。修改参数的示例百度上有许多,现在送上一个链接,是修改完参数后的java调用教程。这种方式特别麻烦,不实用。
(2)调用TextDirectoryLoader。此类是weka自带的Loader,能够读取一个文件夹下的文本,并转换成arff格式。其调用非常简单,但是有几个需要注意的点。首先是文本的摆放格式,一篇文本用一个文件保存,但是主文件夹下不能直接放置文本文件,需要建立不同的文件夹放置不同种类的文本文件。举个例子,如在“d:\\text"目录下,应该建立多个子文件夹,如“class1”,"class2",在两个子文件夹下再放置文本文件。本次使用主题是用weka进行文本聚类,因此,