3

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

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

我意识到这有点开放,但我的问题是我认为我需要更多的背景知识才能知道要问的正确问题是什么。

4

1 回答 1

1

考虑到你提出的建议和与饥饿的鳄鱼战斗,同时被生牛肉味果酱覆盖,双手被绑在背后,我会选择......

好吧,好吧,更严肃一点,如果您的数据不遵守任何“健全”的结构,您必须研究数据并找到其中的怪癖频率并将数据关联到给定的上下文(即如何它是生成的)

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

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

如果有任何方法可以获取原始数据文件,请务必这样做。或者,如果您可以要求提供数据的人使他们的数据采用单一定义明确的格式,那就更好了。(它可能不是“您的”格式,但至少它是您可以转换的常规且可预测的格式)

于 2009-11-24T08:13:40.440 回答