开发者社区> 问答> 正文

数据挖掘的预处理步骤,怎么把xml文件转换成csv文件?:报错

我们在学数据挖掘,有个实验是从DBLP上的一个数据集来查找最常合著的作者。这个数据集是xml格式的,但是weka不能识别这个格式,而且这个xml文件很大,有1.2G,超过100万条记录。该怎么把这个xml文件格式转换成weka能识别的csv格式呢?

可否通过java程序来读取这个xml文件,然后用java把它写成csv格式?或者是否可以直接写成arff格式呢?

但是这个xml文件很大,如果直接读入的话,可能会让机子卡死,该怎么办呢?

展开
收起
kun坤 2020-06-07 22:31:30 700 0
1 条回答
写回答
取消 提交回答
  • Java读XML有两种 方式SAX和DOM,用SAX做流式处理读一条就输出一条,不要一次性全部load到内存再处理,不会有问题的。你用着两个当关键字搜索便知
    ######

    引用来自“逝水fox”的答案

    Java读XML有两种 方式SAX和DOM,用SAX做流式处理读一条就输出一条,不要一次性全部load到内存再处理,不会有问题的。你用着两个当关键字搜索便知
    非常感谢你的回答,我想再问一下,如果用SAX来读的话,因为有100多万条记录,一条一条读速度会不会很慢?另外,如果是DOM的话,能不能一条一条的读啊?谢谢
    ######

    才处理1G 的文件,没多大。这种情况用 SAX 没问题,用 DOM 就要看机器内存够不够大了。

    ######建议用sax,java读取xml的库很多,直接用就行。第二个方案是直接解析xml文件,根据文件本身的特点进行字符串分析和处理。csv本身也是一种本地数据库格式,支持sql操作,你可以用第三方库进行操作,比如ado或支持csv的odbc驱动。######请问数据格式该怎么组织呢?对于DBLP数据集,我只要每条记录的作者,别的信息都不需要。但是很多记录有是多个作者合著,把它该写成什么格式才能让weka识别这是一条记录里的多个项啊?也就是说,怎么在csv文件里组织合著作者信息呢?######

    引用来自“jorneyr”的答案

    才处理1G 的文件,没多大。这种情况用 SAX 没问题,用 DOM 就要看机器内存够不够大了。

    麻烦问下,如果是用SAX的话,直接写个java的解析小程序是不是就可以了?这样的小程序是否能处理这个数据集呢?
    ######

    引用来自“gwgyk”的答案

    引用来自“jorneyr”的答案

    才处理1G 的文件,没多大。这种情况用 SAX 没问题,用 DOM 就要看机器内存够不够大了。

    麻烦问下,如果是用SAX的话,直接写个java的解析小程序是不是就可以了?这样的小程序是否能处理这个数据集呢?
    没问题
    ######你好,请问你重新编译过weka吗?######

    引用来自“diemeng1119”的答案

    你好,请问你重新编译过weka吗?
    没有,才开始学着使用weka
    ###### spring batch######

    引用来自“Jeff_Lau_NUAA”的答案

    spring batch
    直接写个java小程序可以么?
    2020-06-07 22:31:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载