Parsing 背景阅读,用于分析邋遢/古怪的/quot;“几乎结构化”;数据?

Parsing 背景阅读,用于分析邋遢/古怪的/quot;“几乎结构化”;数据?,parsing,text-mining,Parsing,Text Mining,我正在维护一个程序,该程序需要解析文本中以“几乎结构化”形式存在的数据。i、 e.产生它的各种程序使用稍有不同的格式,它可能已经打印出来,并且OCR已经返回(是的,我知道)并且有错误等等。所以我需要使用启发式来猜测它是如何产生的,并应用不同的怪癖模式等等。这很令人沮丧,因为我对语法分析的理论和实践有点熟悉,如果事情表现良好,还有很好的语法分析框架等等,但是数据的不可靠性导致我编写了一些非常草率的特别代码。目前还可以,但我担心当我扩展它以处理更多变化和更复杂的数据时,事情会失控。所以我的问题是:

我正在维护一个程序,该程序需要解析文本中以“几乎结构化”形式存在的数据。i、 e.产生它的各种程序使用稍有不同的格式,它可能已经打印出来,并且OCR已经返回(是的,我知道)并且有错误等等。所以我需要使用启发式来猜测它是如何产生的,并应用不同的怪癖模式等等。这很令人沮丧,因为我对语法分析的理论和实践有点熟悉,如果事情表现良好,还有很好的语法分析框架等等,但是数据的不可靠性导致我编写了一些非常草率的特别代码。目前还可以,但我担心当我扩展它以处理更多变化和更复杂的数据时,事情会失控。所以我的问题是:

由于有相当数量的现有商业产品做相关的事情(“网络浏览器中的怪癖模式、编译器中的错误解释,甚至自然语言处理和数据挖掘等”),我相信一些聪明人已经考虑到了这一点,并试图发展一种理论,那么,以尽可能有原则的方式解析无原则数据的背景阅读的最佳来源是什么


我意识到这有点无穷无尽,但我的问题是,我想我需要更多的背景知识,甚至知道应该问什么问题。

考虑到你的建议和与一只饥饿的鳄鱼搏斗的选择,而鳄鱼身上覆盖着生牛肉味的果酱,双手被绑在背后,我会选择

好吧,更严肃地说,如果你有不符合任何“理智”结构的数据,你必须研究数据,找出其中怪癖的频率,并将给定上下文的数据关联起来(即它是如何生成的)

打印到OCR以获取数据几乎总是会导致心碎。我工作的公司雇佣了一支名副其实的大军,他们手动阅读此类文档,并手动“编码”(即手动输入)已知有问题的OCR场景的数据,或我们的客户检测到原始OCR失败的文档

至于利用“解析框架”,这些框架往往期望数据始终遵循您制定的语法规则。您描述的数据没有这样的保证。如果你走这条路,就要为意外的失败做好准备,尽管这种失败并不总是显而易见的

如果有任何可能获取原始数据文件的方法,请务必这样做。或者,如果您可以要求提供数据的人以一种定义良好的格式提供数据,甚至更好。(它可能不是“您的”格式,但至少是一种您可以转换的常规和可预测的格式)