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

标签 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 不同。似乎可以通过机器学习来提取信息,因为我已经手工完成了很多工作,因此拥有足够的训练数据。对于出现的任何新文件格式,我也可以手动训练。对于给定的机器学习算法,您将如何监督它并为其提供这种模式?

我的一些想法你可以挑战:

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

我知道这是一个固执己见的问题(而且这不可能一夜之间完成),但我会很感激任何提示!

最佳答案

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

对于这样一个简单的例子,CNN 或 CRF 对我来说似乎有点矫枉过正。一个简单的决策树或任何现成的监督机器学习方法可能就足够了(同样,基于您上面分享的示例)。

关于regex - 通过机器学习从非结构化文本文件中检索信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45069132/

相关文章:

regex - 需要自动确定将导致正则表达式匹配的文本

python - 在 python 中使用 Tf-Idf 的搜索引擎

python - 如何自动填充相关问题

javascript - 正则表达式:替换两个不匹配的字符串之间的字符串

php - 重复字符的预匹配

javascript - 为什么 string.match(...)[0] 会抛出异常?

algorithm - 最简单的特征选择算法

machine-learning - 无法计算成本函数中 1 个变量的成本

MySQL 带有子表达式的 bool 全文搜索

url - 根据余弦相似度值进行聚类