从PDF中提取文本会在R中返回奇怪的结果

问题描述 投票:3回答:1

我试图从一堆PDF中挖掘文本,但是当我使用pdf_text包中的pdftools将它们读入R时,它生成的文本只是奇怪而且与PDF文件中的实际内容完全不同。 Onedrive链接:https://1drv.ms/b/s!AlTtlgN0WIa3s2qeq4yrv9fUu-Z6。这是我使用的示例代码:

library(pdftools)
pdf1 <- pdf_text("https://dl.dropboxusercontent.com/s/308gpdijvnw18mf/2018REQ118030709.pdf?dl=0")
pdf1   

     ## c("(’-*)&&$(&’-’’’’)*,&’$)’&/.\r\n     itiCHMON&\\     4Q\\a WN BQKPUWVL
     ##FQZOQVQI                                          )’(/ 7QZ[\\ 9ITN BMIT
     ##6[\\I\\M DI‘ 3QTT\r\n                    5Q^Q[QWV WN 4WTTMK\\QWV[\r\n                   
     ##FE 8_h -10+0\r\n                    HYSX]_^T’ L7 -.-1,(10+0                                                 
     ##3QTT >]UJMZ (/’*’.’0\r\n   IBKHHO F7L;HI ?D9                                                        
     ##@TMI[M ZMKWZL 3QTT >]UJMZ QV UMUW [MK\\QWV WN KPMKS\r\n   ,0+, L7BB;O H:\r\n  
     ##H?9>CED: L7 -.---(0/+1                                                         
     ##IVL QVKT]LM QV ITT WVTQVM JIVSQVO \\ZIV[IK\\QWV[\r\n                                
     ##@ZWXMZ\\a :VNWZUI\\QWV                                                          
     ##DI‘ :VNWZUI\\QWV\r\n     JQh OUQb5                                                          
     ##-+,3 J_dQ\\ 7TZecdUT 7^^eQ\\ 9XQbWUc5                                     
     ##!,+’/+/)++\r\n     3QTT >]UJMZ1                                .
     ##.. <truncated>

我对R很陌生,不知道我可能做错了什么?请,任何帮助,将不胜感激。

编辑:我已经用工作网址替换了网址,我还包括了我得到的结果。

r pdf text-mining
1个回答
3
投票

你pdf是一个PDF格式的图像。它看起来像扫描。 pdftools无法将其直接转换为文本。您可以使用包tesseract获取数据,使用pdftools将其转换为png。

下面的代码会将第一页转换为文本。我会让你做其余的页面。 Rembember认为OCR对文本并不完美。你需要检查结果。

library(pdftools)
library(tesseract)
pdf_convert("https://dl.dropboxusercontent.com/s/308gpdijvnw18mf/2018REQ118030709.pdf?dl=0", 
                       pages = 1, 
                       dpi = 600, 
                       filenames = "page1.png")
text <- ocr("page1.png")
cat(text)

tesseract插图中提供了更多信息。

您可能还想删除对此pdf的访问权限。我不确定这些数据是否应公开

© www.soinside.com 2019 - 2024. All rights reserved.