0

这是在我之前的问题之后。.

我试图从 PDF 文件中读取并创建一个包含文件中特定字段的数据框。我每周生成大约 1000 多份报告。这是我到目前为止已经走了多远

我正在使用阅读 PDF 文件

text = extract_text(file = "C:/Work/R/text extraction/Extration_tests/WO-09017974A.pdf",
         pages = c(1,6)) ## The two pages with the data of importance

然后将其放入文本文件中

sink("extract_text.txt")
cat(text, sep = "/n")
sink()

接下来,我正在将此文本文件(粘贴在下面的文件输出)读入列表

ICRE = readLines("extract_text.txt")

并使用我想要的字段创建输出数据框

extracted = data.frame("date" = ICRE[[6]],
                       "WO" = ICRE [[ 10]],
                       "Incident description" = paste(ICRE[[c(42)]],ICRE[[c(43)]]), ### using paste because the related data is in two lines
                       "Impact on customer" = ICRE[[45]],
                       "Condition of system" = ICRE[[47]]
                       )

注意:这只是一个示例数据框,我将从文本文件中添加更多字段。

这就是我用来提取上述数据的文本文件的外观。

输出中的文本文件(某些条目的数据已被匿名化)

内部的

维修报告

2021 年 10 月 20 日


站点 1 - 站点

我们的参考:0 / WO-09017974客户参考:

ABC 客户联系人准备的报告: 可以跳过下面的 DEF 第 11-38 行,因此删除

*注意:所有粗体文本是列标题(有时以句点结尾),非粗体文本是行(在某些情况下跟随句点) 事件描述(报告中的第 39 行)

_

事件描述:

解决问题

ABC 和 BBB

对客户的影响。无干扰

抵达时的系统状况。一切正常

_

调查分析

_

保护块的动作。

讨论过不转移该块,因为另一个块已经在 PPP 中。

其他

故障的情况。无特殊情况

场地和环境目视检查。

场地很干净/

场所通风良好

我有几个问题

  1. 这是最好的方法吗?
  2. 我想为每周收到的 1000 多个文件自动执行此过程
  3. 数据的主键是字段WO-09017974,这是数据集中的第一个条目,但现在在 DF 中我得到整行“我们的参考:0 / WO-09017974客户参考:”,我只需要提取WO-09017974。我怎样才能做到这一点?
  4. 有没有一种方法可以自动化提取过程(我现在基于页码text = extract_text(file = "C:/Work/R/text extraction/Extration_tests/WO-09017974A.pdf",pages = c(1,6)))而不使用页码而只使用关键短语?

抱歉,问题过长,并提前感谢您的帮助。

4

0 回答 0