如何解决仅从 pdf 文件中提取文本 英文文本 Canadian Legislation R
我正在尝试从一个项目的加拿大法案(在本例中为食品和药品法案)中提取数据,并将其导入 R。我想将其分成 2 部分。第一个目录(图1)。其次,行为中的信息(图2)。但我不想要法语部分 (je suis désolé)。我曾尝试使用制表器 extract_area()
,但我不想手动选择区域 90 次(我将针对多项立法执行此操作)。
显然,我没有编写出可重现的最小示例...但 pdf 可在此处下载:https://laws-lois.justice.gc.ca/eng/acts/F-27/
选项 2 是编写一些内容以通过 XML 将其提取出来,但我不太习惯使用 XML 文件。除非使用 pdftools
或 tabulizer
非常烦人,否则我更喜欢使用其中一个库(主要用于学习目的)的答案。
我在 stackoverflow 上看到了一些类似的问题,但它们都是为表格编写/设计的,令人困惑,但事实并非如此。我不是受过培训的量化/数据科学研究人员,因此解释会非常有帮助(但不是必需的)。
解决方法
这是一个读入 pdf 文本并检测语言的选项。阅读pdf后,您可能需要进行大量文本清理。假设您不关心保留格式。
library(pdftools)
a = pdf_text('F-27.pdf')
#split text to get sentence chunks,mostly.
b = sapply(a,strsplit,'\r\n')
#do a bunch of other text cleanup,here's an example using the third list element. You can expand this to cover all of b with a loop or list function like sapply.
#Two spaces should hopefully retain most sentence-like fragments,you can get more sophisticated:
d = strsplit(b[[3]],' ')[[1]]
library(cld3) #language tool to detect french and english
x = sapply(d,detect_language)
#Keep only English
x[x=='en']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。