【发布时间】:2021-08-18 04:22:13
【问题描述】:
我有多个带有印地语文本的打字 PDF。我需要使用所有 PDF 创建一个数据框以进行进一步分析。我为此使用 R。
> sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Mojave 10.14.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] pdftools_3.0.1 textreadr_1.0.2 tm_0.7-8 NLP_0.2-1
loaded via a namespace (and not attached):
[1] Rcpp_1.0.7 pillar_1.6.1 compiler_4.0.3 tools_4.0.3 lfe_2.8-6 lifecycle_1.0.0
[7] tibble_3.1.2 lattice_0.20-41 pkgconfig_2.0.3 rlang_0.4.11 Matrix_1.2-18 DBI_1.1.1
[13] parallel_4.0.3 xfun_0.23 dplyr_1.0.6 xml2_1.3.2 generics_0.1.0 vctrs_0.3.8
[19] askpass_1.1 grid_4.0.3 tidyselect_1.1.0 data.table_1.13.2 glue_1.4.2 qpdf_1.1
[25] R6_2.5.0 fansi_0.4.1 sp_1.4-4 Formula_1.2-4 purrr_0.3.4 magrittr_2.0.1
[31] ellipsis_0.3.2 assertthat_0.2.1 xtable_1.8-4 sandwich_3.0-1 utf8_1.1.4 tinytex_0.32
[37] slam_0.1-48 crayon_1.4.1 zoo_1.8-9
我尝试过使用以下内容:
library(tm)
library(pdftools)
file <- 'pdf_file.pdf'
dat = readPDF(control=list(text="-layout"))(elem=list(uri=file),
language="UTF-8", id="id1")
library(textreadr)
pdf_dat <- read_pdf(system.file("pdf_file.pdf", package = "textreadr"))
pdf_text(file)
但是,我得到的结果看起来像:
27 ªF³F½FSXeX XY2012\n\n ¸FûQe ³FZ d½FIYFÀF °Fû dIY¹FF W` : IYFa¦FiZÀF\n w ¦F„þSF°F IYFa¦FiZÀF IZY d½FÄFF´F³F ¸FZÔ dQJe ¦F„þSF°Fe IYû d½FIYFÀF ´F„÷Y¿F ¶F°FF°FZ W„E SFª¹F IZY IYFa¦FiÀZ F ³FZ ¹FWX ÀFaQVZ F QZ³FZ IYe IYFZdVFVF þøYSX QþʳF C°ÀF½FûÔ IYF ¶FûÓF OXF»F³FZ IYF AFSû´F\n ³F¦FSX ÀFaÀIYSX¯F\n
可从here 下载用于此目的的示例 PDF。
谢谢!
【问题讨论】:
-
我对使用
pdftools::pdf_text或readtext::readtext读取文件没有任何问题。 UTF-8 中的一切都很好。但是你试图读入的内容,永远不会是正确的顺序。 pdftools 从左到右读取并且不考虑所有不同的列。因此,1 行上的所有单词都来自多篇文章而不是每篇文章。 -
你能分享你的代码吗?我无法使用 UTF-8 正确读取它