gpt4 book ai didi

r - 为 13K pdf 文档运行 for 循环时出现空间不足错误

转载 作者:行者123 更新时间:2023-12-03 14:24:52 25 4
gpt4 key购买 nike

我正在为 13K pdf 文件做 for 循环,在其中读取、预处理文本、查找相似性并写入 txt。但是,当我运行 for 循环时,它会出错

Error in poppler_pdf_text(loadfile(pdf), opw, upw) : Not enough space



原因是什么?
  • 我试图增加memory_limit() ,这也不是问题。
  • 我试图删除文件夹中的隐藏文件,例如 Thumbs.db ,但同样的问题再次出现。
  • 我在每次迭代时删除 pdf 文件。

  • folder_path <- "C: ...."
    ## get vector with all pdf names
    pdf_folder <- list.files(folder.path)

    ## for loop over all pdf documents
    for(s in 1:length(pdf_folder)){

    ## choose one pdf document from vector of strings
    pdf_document_name <- pdf_folder[s]

    ## read pdf_document pdf into data.frame
    pdf <- read_pdf(paste0(folder_path,"/",pdf_document_name))

    print(s)

    rm(pdf)

    } ## end of for loop

    # Error:

    Error in poppler_pdf_text(loadfile(pdf), opw, upw) : Not enough space


    预期的结果是读取原始路径中的所有 pdf 文档。

    最佳答案

    我能够通过以下方式重现此错误:

  • 基于图像的 pdf(16,702 页,161,277 KB)
  • R v3.5.3 64 位
  • textreadr v0.90
  • pdftools v2.2
  • tesseract v4.0
  • Windows 10 64 位
  • 16 GB 内存

  • 这可以通过更新 pdftools 来解决。打包到 v2.3.1。
    large_pdf_file <- "path/to/file.pdf"

    system.time(test <- textreadr::read_pdf(large_pdf_file))
    # user system elapsed
    # 165.64 0.42 166.17

    dim(test)
    # [1] 519871 3
    The problem is a possible memory leak in the poppler library which is used by the pdftools package .
    使用 textreadr::read_pdf 时,任务管理器显示 RAM 大幅增加。读取基于大图像的pdf文件的功能。
    如果你坚持使用旧版本的 pdftools,一些用户已经报告成功 this workaround - 但是,我尝试使用与以前相同的大 pdf 文件并收到此错误:
    pdf <- callr::r(function(){
    textreadr::read_pdf('filename.pdf')
    })

    Error in value[[3L]](cond) :
    callr subprocess failed: could not start R, exited with non-zero status,
    has crashed or was killed

    关于r - 为 13K pdf 文档运行 for 循环时出现空间不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57011468/

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