我正在维护一个程序,需要解析文本中“几乎结构化”形式的数据。即产生它的各种程序使用稍微不同的格式,它可能已被打印出来并且OCR重新进入(是的,我知道)有错误等等所以我需要使用启发式方法来猜测它是如何产生的并应用不同的怪癖这很令人沮丧,因为我对解析的理论和实践有点熟悉,如果事情表现良好,并且有很好的解析框架等等,但是数据的不可靠性导致我写了一些非常好的草率的特殊代码。目前还可以,但我担心当我扩展它以处理更多变化和更复杂的数据时,事情就会失控。所以我的问题是:
由于有相当数量的现有商业产品做相关事情(网页浏览器中的“怪异模式”,编译器中的错误解释,甚至自然语言处理和数据挖掘等)我相信一些聪明的人有把思想放到这里,并试图发展一个理论,那么以尽可能原则的方式解析无原则数据的背景阅读的最佳来源是什么?
我意识到这有点开放,但我的问题是我认为我需要更多背景知道要问的是正确的问题。
答案 0 :(得分:1)
考虑到你提出的建议和用生牛肉味果酱覆盖的饥饿鳄鱼之间的选择以及双手绑在我背后,我会选择......
好吧,更确切地说,如果您的数据不符合任何“理智”结构,您必须研究数据并查找其中的怪癖频率并关联给定上下文的数据(即如何生成)
打印到OCR以获取数据几乎总是会导致心碎。我工作的公司雇用了一支名副其实的人员,他们手动阅读这些文件并手工“代码”(即手工输入)已知有问题的OCR场景的数据,或者客户检测到原始OCR失败的文件。
至于利用“解析框架”,这些往往会期望数据始终遵循您已经列出的语法规则。您描述的数据没有这样的保证。如果你走这条路,那就准备好意外 - 虽然并不总是很明显 - 失败。
无论如何,如果有可能获得原始数据文件,请执行此操作。或者,如果您可以要求那些提供数据的人使他们的数据以一种定义良好的格式,甚至更好。 (它可能不是“您的”格式,但至少它是您可以转换的常规和可预测格式)