3

我不太确定要搜索什么术语,所以我的标题很时髦......这是我的工作流程:

  1. 半结构化文件被扫描归档。这些文件被 OCR 转换为文本。
  2. 文本被解析成 Python 对象
  3. 对象被序列化(到 SQL、JSON 等)以供使用。

文档是这样的结构:

标题等等,页面###

废话

垃圾文...

1.问题文本...

一直持续到现在。A. 选择文本...

adsf. B. 另一种选择...

2. 另一个问题...

我需要提取问题和选择。问题是,因为文本是 OCR 输出,偶尔会有奇怪的替换,比如 '2' -> 'Z',这使得普通的正则表达式无用。我已经尝试过 Levenshtein 模块,它有所帮助,但它需要事先了解预期的编辑距离。

我不知道我是否要创建解析器?词法分析器?别的东西?这使我走上了各种有趣但不相关的道路。指导将不胜感激。哦,还有,文本通常来自特定的技术领域,所以一般的拼写工具没有那么有用。

关于文档的结构,除了“问题”通常以一行开头之外,没有清晰的视觉模式——如换行符或缩进。文档上的废话会导致字符出现在行的实际开头之前,这意味着沿着 r'^[0-9]+' 行的某些东西不能可靠地工作。

尽管“问题”总是以整数、句点和空格开头;OCR 可以替换其他字符或跳过字符。这不是 Tesseract 或 Cunieform 的问题,而是纸质文档质量差的问题。

#

注意:对于有问题的项目,决定让人工准备 OCR 的文本比花时间编写解决方案更好。但是,我仍然喜欢好的指针。

4

1 回答 1

1

根据您的陈述,您可能正在尝试构建解析器。由于提供了模糊的要求和示例,我建议您从查看nltk.org 开始。另一种选择可能是gate.ac.uk

于 2012-07-24T14:44:01.637 回答