我们在学数据挖掘,有个实验是从DBLP上的一个数据集来查找最常合著的作者。这个数据集是xml格式的,但是weka不能识别这个格式,而且这个xml文件很大,有1.2G,超过100万条记录。该怎么把这个xml文件格式转换成weka能识别的csv格式呢?
可否通过java程序来读取这个xml文件,然后用java把它写成csv格式?或者是否可以直接写成arff格式呢?
但是这个xml文件很大,如果直接读入的话,可能会让机子卡死,该怎么办呢?
Java读XML有两种 方式SAX和DOM,用SAX做流式处理读一条就输出一条,不要一次性全部load到内存再处理,不会有问题的。你用着两个当关键字搜索便知
######
才处理1G 的文件,没多大。这种情况用 SAX 没问题,用 DOM 就要看机器内存够不够大了。
######建议用sax,java读取xml的库很多,直接用就行。第二个方案是直接解析xml文件,根据文件本身的特点进行字符串分析和处理。csv本身也是一种本地数据库格式,支持sql操作,你可以用第三方库进行操作,比如ado或支持csv的odbc驱动。######请问数据格式该怎么组织呢?对于DBLP数据集,我只要每条记录的作者,别的信息都不需要。但是很多记录有是多个作者合著,把它该写成什么格式才能让weka识别这是一条记录里的多个项啊?也就是说,怎么在csv文件里组织合著作者信息呢?######才处理1G 的文件,没多大。这种情况用 SAX 没问题,用 DOM 就要看机器内存够不够大了。
才处理1G 的文件,没多大。这种情况用 SAX 没问题,用 DOM 就要看机器内存够不够大了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。