这是在我之前的问题之后。.
我试图从 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 中。
其他
故障的情况。无特殊情况
场地和环境目视检查。
场地很干净/
场所通风良好
我有几个问题
- 这是最好的方法吗?
- 我想为每周收到的 1000 多个文件自动执行此过程
- 数据的主键是字段WO-09017974,这是数据集中的第一个条目,但现在在 DF 中我得到整行“我们的参考:0 / WO-09017974客户参考:”,我只需要提取WO-09017974。我怎样才能做到这一点?
- 有没有一种方法可以自动化提取过程(我现在基于页码
text = extract_text(file = "C:/Work/R/text extraction/Extration_tests/WO-09017974A.pdf",pages = c(1,6))
)而不使用页码而只使用关键短语?
抱歉,问题过长,并提前感谢您的帮助。