在R中将Tesseract字符列表转换为CSV

cvxl0en2  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(107)

我想使用R中的Tesseract库将以下列表转换为CSV文件,使用/n创建新行,白色创建新单元格/列:
“5 2 3 390 - 500 -\n8 50 & 3 3 887 7\n1 3 - 9 5\n”
我可以读取扫描的PDF,创建字符列表,但每当我将其输出到文件时,CSV每行只有一个单元格,该行/行中的所有字符都包含在一个单元格中。
到目前为止,我使用了以下代码:

library(tesseract)
eng <- tesseract("eng")
tesseract_text <- tesseract::ocr(image = file.choose(), engine = eng)
write.table(x = tesseract_text, file = "C:/Temp/tess_text.csv")

我已经尝试了许多其他的组合写表,转换为 Dataframe ,转换白色逗号,然后输出,但似乎没有什么工作。我希望每个字符串都包含在自己的单元格中的白色之前,每个空白都代表一个新的单元格,\n在Excel中描绘一个新的行,但唯一可行的是\n开始一个新的行。

jv2fixgn

jv2fixgn1#

您可以考虑以下方法:

library(stringr)

text <- "5 2 3 390 - 500 -\n8 50 & 3 3 887 7\n1 3 - 9 5\n"
text_By_Row <- stringr::str_split(text, pattern = "\n")[[1]]
nb_Row <- length(text_By_Row)
text_By_Cell <- stringr::str_split(text_By_Row, pattern = " ")

for(i in 1 : nb_Row)
{
  if(length(text_By_Cell[[i]]) < 7)
  {
    text_By_Cell[[i]] <- c(text_By_Cell[[i]], rep("", 7 - length(text_By_Cell[[i]])))
  }
}

mat_Data <- do.call("rbind", text_By_Cell)
mat_Data

     [,1] [,2] [,3] [,4]  [,5] [,6]  [,7]
[1,] "5"  "2"  "3"  "390" "-"  "500" "-" 
[2,] "8"  "50" "&"  "3"   "3"  "887" "7" 
[3,] "1"  "3"  "-"  "9"   "5"  ""    ""  
[4,] ""   ""   ""   ""    ""   ""    ""  

write.csv(mat_Data, file = "mat_Data.csv")

相关问题