Tôi đã cố gắng thực hiện OCR trong R (đọc dữ liệu PDF có dữ liệu dưới dạng hình ảnh được quét). Đã đọc về điều này @http://electricarchaeology.ca/2014/07/15/doing-ocr-within-r/Làm OCR với R
Đây là bài đăng rất hay.
có hiệu quả 3 bước:
- convert pdf để ppm (một định dạng hình ảnh)
- chuyển đổi ppm để TIF sẵn sàng cho Tesseract (sử dụng ImageMagick cho chuyển đổi)
- chuyển đổi tif dưới dạng file text
Mã hiệu quả cho 3 bước trên theo bài đăng liên kết:
lapply(myfiles, function(i){
# convert pdf to ppm (an image format), just pages 1-10 of the PDF
# but you can change that easily, just remove or edit the
# -f 1 -l 10 bit in the line below
shell(shQuote(paste0("F:/xpdf/bin64/pdftoppm.exe ", i, " -f 1 -l 10 -r 600 ocrbook")))
# convert ppm to tif ready for tesseract
shell(shQuote(paste0("F:/ImageMagick-6.9.1-Q16/convert.exe *.ppm ", i, ".tif")))
# convert tif to text file
shell(shQuote(paste0("F:/Tesseract-OCR/tesseract.exe ", i, ".tif ", i, " -l eng")))
# delete tif file
file.remove(paste0(i, ".tif"))
})
Hai bước đầu tiên đang diễn ra tốt. (mặc dù dành thời gian tốt, cho 4 trang pdf, nhưng sẽ xem xét phần khả năng mở rộng sau này, trước tiên hãy thử nếu điều này có hiệu quả hay không)
Khi thực hiện thao tác này, hãy thực hiện hai bước.
Trong khi runinng bước thứ 3, tức là
shell(shQuote(paste0("F:/Tesseract-OCR/tesseract.exe ", i, ".tif ", i, " -l eng")))
Tôi có lỗi này:
Error: evaluation nested too deeply: infinite recursion/options(expressions=)?
Hoặc Tesseract là đâm.
Bất kỳ phân tích nguyên nhân gốc hoặc cách giải quyết nào đều sẽ được đánh giá cao.
bạn có thể cung cấp nội dung của 'myfiles' không? – bdecaf
@bdecaf - Thật không may tôi không thể, do vấn đề bảo mật dữ liệu. Về cơ bản các báo cáo tài chính của công ty (hình ảnh được quét) nằm trong pdf (4 trang). Đó là pdf duy nhất là trong các tập tin của tôi. Đây không phải là vấn đề ar (đó là những gì tôi đang suy nghĩ, nhưng nhiều hơn một vấn đề tesseract –
@ r_analytics Bạn đã tìm thấy một giải pháp cho vấn đề của bạn? –