【问题标题】:Java code to read SGML files用于读取 SGML 文件的 Java 代码
【发布时间】:2011-02-25 05:49:56
【问题描述】:

我正在做我的文本分类项目。我的信息检索项目有一个名为 Reuters-21578 的文本分类测试集合。它分布在 22 个文件中。前 21 个文件(reut2-000.sgm 到 reut2-020.sgm)中的每一个都包含 1000 个文档,而最后一个(reut2-021.sgm)包含 578 个文档。文件为 SGML 格式。 22 个文件中的每一个都以文档类型声明行开头: DTD 文件 lewis.dtd 包含在分发中。文档类型声明行之后是用 SGML 标签标记的个别路透社文章。

我需要帮助来编写一个 java 程序来读取这 21578 个文档或将它们转换为 21578 个单独的文本文件。

有人能帮帮我吗???

【问题讨论】:

标签: java filestream sgml


【解决方案1】:

从大约五分钟的谷歌搜索来看,似乎没有免费的 Java SGML 解析器。这是相当令人惊讶的,但就是这样。

我建议你从SP 包中获取James Clark 的SX 工具,它不是Java,而是portable C,并使用它将SGML 转换为XML。然后,您可以使用 Java XML 解析器解析 XML。

【讨论】:

    【解决方案2】:

    Lucene 在 org.apache.lucene.benchmark.utils.ExtractReuters 中有这样一个提取器;

    我实际上并没有尝试从 jar 文件 (Maven repo) 中运行它,但您可以轻松使用(和修改)找到 here 的 java 源代码,因为它没有外部依赖项。

    请注意,此代码导出了大量小文件(实际上是 21578 个)。

    【讨论】:

      【解决方案3】:

      虽然这是很老的帖子,但我的回答是为未来有需要的人准备的,因为在这样做之前我经历了很多挣扎。我不能说它是一种合适的方法或一个好的解决方案,但它达到了目的,并且在过去的 6 个月中它连续运行以进行批处理。我编写了一些自定义代码来读取和解析 SGML 文件,它成功地完成了甚至退出大文件的工作。尽管在我的情况下,输出格式的结构不同。你可以看看,如果它看起来有用,你可以做一些调整来使用它。请看here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多