通过机器学习从非结构化文本文件中检索信息

时间:2017-07-12 23:35:28

标签: regex machine-learning information-retrieval

所以我有一堆.txt文件,这些文件是PDF格式的提取物,如下所示:

---
Name:
ID Number:
--
CONFIDENTIAL
.
Date:
Description:
Foo Bar
ABC456789
THIS PAGE INTENTIONALLY LEFT BLANK.
05/04/17
Lorem ipsum dolor sit amet

在所有这些噪音中,我想提取几个目标字段并忽略其余信息:

Name: Foo Bar
ID Number: ABC456789
Date: 05/04/17
Description: Lorem ipsum dolor sit amet

因此我处理的大多数文档具有相同的格式,因此到目前为止,可以记录目标值出现的行号并保存它们。当然,这是一个粗略的解决方案,因为有各种格式将以不同的方式解析为.txt。似乎可以通过机器学习来提取信息,因为我已经手工完成了很多这样的工作,因此有足够的培训数据。并且出现任何新的文件格式,我也可以手动训练。对于给定的ML算法,您将如何监督它并为其提供这种模式?

我有一些想法可以挑战:

  • 正则表达式也是一个可行的选择,但它并不适用于所有内容,因为ID号不遵循相同的格式;它有时可以是1234567以及ABC456789。也许可以训练ML根据训练的内容提出自己的正则表达式序列。我认为这可能是相关的,但我不确定如何:http://alias-i.com/lingpipe/demos/tutorial/ne/read-me.html
  • 我可以使用Tabula检测PDF中的表格,并在执行任何ML之前用文本文件中的CSV替换非结构化表格。
  • CNN或CRF适用于此类数据。

我知道这是一个自以为是的问题(并且这不可能在一夜之间完成)但我会感激任何暗示!

1 个答案:

答案 0 :(得分:3)

如果原始PDF文件以表格格式提供,我建议使用表格提取,因为根据您在上面分享的信息,这将是确保您获得正确字段的最可靠方法。

对于这样一个简单的例子,CNN或CRF对我来说似乎有些过分。一个简单的决策树或任何现成的监督ML方法可能就足够了(再次,基于你上面分享的例子)。