【问题标题】:What is a fast and unsupervised way of checking quality of pdf-extracted text?什么是检查 pdf 提取文本质量的快速且无监督的方法?
【发布时间】:2009-09-21 09:11:21
【问题描述】:

我正在研究一个相当大的语料库,其中包含数万篇文章。我目前正在使用 PDFBox 进行各种成功的提取,并且我正在寻找一种以编程方式检查每个文件的方法,以查看提取是否成功。我目前正在考虑对它们中的每一个运行拼写检查器,但是语言可能会有所不同,我还不确定我正在处理哪些语言。带有分数的自然语言检测也可能是一个想法。

哦,任何方法也必须与 Java 配合得很好,要快速且相对快速地集成。

【问题讨论】:

  • 顺便说一句,PDFBox 并没有得到积极维护,并且对一些较新的 PDF 格式以及其中嵌入了某些类型图像的 PDF 感到窒息。我发现的唯一一个在文本提取方面做得很好的库是 PDFTextStream,它非常好,但不是免费的。
  • 我应该提到PDFTextStream的准确性也好得多。

标签: java pdf text nlp


【解决方案1】:

尝试自动学习拼写检查器。这并不像听起来那么可怕:从包含您可能遇到的所有单词的大字典开始。这可以来自多种语言。

扫描 PDF 时,请允许一定数量的未知单词(例如 5%)。如果这些单词中的任何一个重复得足够频繁(比如 5 次),请将它们添加到字典中。如果 PDF 包含超过 5% 的未知单词,则很可能是无法处理的内容。

扫描仪会随着时间的推移学习,让您在必要时减少未知单词的数量。如果这太过分了,那么一本非常大的字典也应该很好用。

如果您没有字典,请手动处理几个文档并让扫描仪学习。在十几个文件之后,您的新字典应该足够大,可以达到合理的水位。

【讨论】:

    【解决方案2】:

    当然,没有一种方法是完美的。

    通常有两类文本提取问题:

    1 - 没有提取任何内容。 这可能是因为您有扫描的文档或 PDF 中的某些内容无效。

    通常很容易检测,您不需要复杂的代码来检查这些。

    2 - 你得到垃圾。 大多数时候是因为 PDF 文件的编码很奇怪。 这可能是因为未正确声明自制编码,或者 PDF 作者需要 PDF 无法识别的字符(例如,Adobe glyph list 中的 The turkish S with cedilla 在一段时间内丢失:您无法创建正确编码的文件把它放在里面,所以你必须作弊才能在页面上看到它)。

    我使用基于 ngram 的方法根据提取的文本检测 PDF 文件的语言(使用不同的技术,但想法相同)。无法识别语言的文件通常是问题的良好嫌疑人......

    关于拼写检查,我想它会给你带来大量误报,特别是如果你有多种语言!

    【讨论】:

      【解决方案3】:

      您可以针对停用词列表运行语料库(搜索引擎忽略的最常用词,例如“and”和“the”),但显然您首先需要所有可能/可能语言的停用词列表.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-14
        • 2016-06-06
        • 1970-01-01
        • 2019-01-10
        • 2018-07-19
        • 1970-01-01
        • 2017-11-10
        相关资源
        最近更新 更多