Python 模糊正则表达式,文本处理,词汇分析?

Python 模糊正则表达式,文本处理,词汇分析?,python,regex,text-processing,Python,Regex,Text Processing,我不太确定要搜索什么术语,所以我的标题很时髦。。。以下是我的工作流程: 半结构化文档被扫描到文件中。这些文件是OCR格式的文本 文本被解析为Python对象 对象被序列化(到SQL、JSON等)以供使用 文件的结构如下所示: 标题等等,第页### 废话 垃圾文本 1。问题文本… 一直持续到现在。A.选择文本 美国存托股。另一个选择 2。另一个问题… 我需要提取问题和选择。问题是,因为文本是OCR输出,所以偶尔会出现奇怪的替换,如'2'->'Z',这使得普通正则表达式毫无用处。我尝试过Levens

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

  • 半结构化文档被扫描到文件中。这些文件是OCR格式的文本
  • 文本被解析为Python对象
  • 对象被序列化(到SQL、JSON等)以供使用
  • 文件的结构如下所示:

    标题等等,第页###

    废话

    垃圾文本

    1。问题文本…

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

    美国存托股。另一个选择

    2。另一个问题…

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

    我不知道我是否想要创建一个解析器?雷克瑟?还有别的吗?这让我走上了各种有趣但不相关的道路。如蒙指导,将不胜感激。哦,另外,文本通常来自特定的技术领域,所以一般的拼写工具没有那么大的帮助

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

    虽然“问题”总是以int、句点和空格开头;OCR可以替换其他字符或跳过字符。这与其说是Tesseract或楔形文字的问题,不如说是纸质文件质量差的问题

    #
    注意:对于讨论中的项目,决定让一个人准备OCR文本比花时间编写解决方案更好。但是,我仍然喜欢好的指针。

    从您的语句中可以理解,您可能正在尝试构建解析器。
    在提供了模糊的需求和示例之后,我建议您先看看。另一种选择可能是

    您可以尝试某种形式的NLP。拼写错误有时可能会使NLP不准确,但它应该是有效的。如果所有文档都来自同一个来源,是否有一个合理的假设,即错误的替换将持续应用?如果是这样的话,你可以将它们考虑到你的正则表达式中。你能添加更多关于文档结构的信息吗?您能否指定问题部分的外观,是否足够清晰,以便机器查找(例如,问题在两个换行符之后开始,并且在没有两个换行符之前开始)。结束以下问题是否在同一行?