【问题标题】:Detecting "noise" in text extracted from documents检测从文档中提取的文本中的“噪声”
【发布时间】:2012-09-27 09:54:14
【问题描述】:
  • 我正在从 PDF 文档中检索可读内容(即文本),其中大部分是科学期刊文章。
  • 我正在使用 Poppler 文本实用程序将 PDF 转换为文本格式。
  • 文本被很好地提取,但不幸的是,文章的其他组件(例如数字表)也是如此,无法以纯文本正确呈现。
  • 例如,我可能会在文章中间得到以下输出:

    字符分布随机 Hmax

    1 2 3 4

    组织 c) (关于物种的特征

    一个

    B

    A 0 0 0 + C

    B + + + +

    C++++A

    B 4+

    H 字符分布非随机 Hobs

    3+ 2+ 1+

    (物种的特征多样性

我的问题是:我如何识别这种“噪音”并将其与正常的文本块区分开来?有没有现成的算法?我正在使用 Ruby,但任何语言的代码都会有所帮助。

【问题讨论】:

    标签: ruby text text-processing


    【解决方案1】:

    您可以使用朴素贝叶斯分类器对有效和无效行进行建模。

    Here's an article on one in Ruby; Python 的nltk 中有一个很好的实现。

    要设置它,您需要举例说明,例如,用好的行填充一个文件,用坏的行填充一个文件。这与垃圾邮件过滤器使用的模型相同。

    这个用例的一个技巧是,许多基本的朴素贝叶斯分类器使用词出现模型来表示特征,而在这里重要的不是词汇。您可以使用行长、空格百分比(四舍五入到 5% 或 10% 间隔)或各种标点符号的百分比(四舍五入但精度更高)。希望您的分类器能够了解到“没有句点和 30% 空格的行是不好的”或“没有标点符号且每个单词都以大写字母开头的行是不好的”。

    不过,仅根据您上面的示例,您可能会拒绝任何空格比例过高或完全没有句子标点符号(例如逗号和句点)的行。

    【讨论】:

      猜你喜欢
      • 2015-05-21
      • 2011-12-30
      • 1970-01-01
      • 2011-10-07
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-15
      相关资源
      最近更新 更多