У меня есть 100 отсканированных PDF-файлов, и мне нужно преобразовать их в текстовые файлы.
Сначала я преобразовал их в файлы png (см. сценарий ниже), теперь мне нужна помощь, чтобы преобразовать эти 100 файлов png в 100 текстовых файлов.
library(pdftools)
library("tesseract")
#location
dest <- "P:\\TEST\\images to text"
#making loop for all files
myfiles <- list.files(path = dest, pattern = "pdf", full.names = TRUE)
#Convert files to png
sapply(myfiles, function(x)
pdf_convert(x, format = "png", pages = NULL,
filenames = NULL, dpi = 600, opw = "", upw = "", verbose = TRUE))
#read files
cat(text)
Я ожидаю иметь текстовый файл для каждого файла png:
From: file1.png, file2.png, file3.png...
To: file1.txt, file2.txt, file3.txt...
Но фактическим результатом является один текстовый файл, содержащий текст всех файлов png.
Я предполагаю, что вы пропустили бит с teh png -> text
bit, но я предполагаю, что вы использовали library(tesseract)
.
Вы можете сделать следующее в своем коде:
library(tesseract)
eng <- tesseract("eng")
sapply(myfiles, function(x) {
png_file <- gsub("\\.pdf", ".png", x)
txt_file <- gsub("\\.pdf", ".txt", x)
pdf_convert(x, format = "png", pages = 1,
filenames = png_file, dpi = 600, verbose = TRUE)
text <- ocr(png_file, engine = eng)
cat(text, file = txt_file)
## just return the text string for convenience
## we are anyways more interested in the side effects
text
})
Есть несколько проблем с вашим кодом. В вашем шаблоне
list.files
перечислены не файлы PDF, а все файлы со строкой'pdf'
в имени. Комментарий над этой строкой кода совершенно неверен, он вообще не объясняет, что делает эта строка. Вы также не показали нам самого важного, а именно, как вы на самом деле пытаетесь распознать файлы и что не получается. Вместо этого код, который вы показали, фактически не имеет отношения к вашему вопросу.