gpt4 book ai didi

r - 如何检查PDF是否是扫描图像或包含R中的文本

转载 作者:行者123 更新时间:2023-12-03 08:10:09 24 4
gpt4 key购买 nike

我正在 R 中对多个 PDF (>1000) 进行结构方程模型。

但是,有些 PDF 是可读的,而其他 PDF 是扫描的,即我需要通过 OCR 功能运行它们。

因此,我需要找到一种方法来自动识别哪些 PDF 包含文本,哪些不包含文本。具体来说,我希望找到一种方法来返回给定的 PDF 是否应该通过 OCR 运行。

有谁知道 R 中的任何函数或包可能有助于实现此目的 - 我可以找到一些 Python 解决方案,但无法识别 R 中的一些解决方案。

最佳答案

您可以使用这样的方法(正如 @danlooo 已经建议的那样,但我想把它拼写出来):

files <- list.files("/home/johannes/pdfs/",
pattern = ".pdf$",
full.names = TRUE)

pdfs_l <- lapply(files, function(f) {
out <- pdftools::pdf_text(f)
# I set the test to an arbitrary number of characters, it works for me but you want
# to maybe fine tune it a bit
contains_text <- nchar(out) > 15
if (!contains_text) {
out <- pdftools::pdf_ocr_text(f)
}
data.frame(text = out, ocr = !contains_text)
})

pdfs_l |>
dplyr::bind_rows() |>
dplyr::mutate(text = trimws(text)) |>
tibble::as_tibble()
#> # A tibble: 22 × 2
#> text ocr
#> <chr> <lgl>
#> 1 "TEAM MEMBERS:\n … FALSE
#> 2 "WS 21/22 … FALSE
#> 3 "WS 21/22 … FALSE
#> 4 "TEAM MEMBERS:\n … FALSE
#> 5 "TEAM MEMBERS:\n … FALSE
#> 6 "Key Concepts in Political Communication\n @Agenda Setting, Priming… FALSE
#> 7 "Key Concepts in Political Communication\n @Agenda Setting, Priming… FALSE
#> 8 "ELECTIONS AND CAMPAIGNS\n … FALSE
#> 9 "" TRUE
#> 10 "" TRUE
#> # … with 12 more rows

reprex package 于 2022 年 2 月 10 日创建(v2.0.1)

关于r - 如何检查PDF是否是扫描图像或包含R中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71064939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com