You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R语言Tesseract库将字符列表转换为规范CSV文件

解决R语言Tesseract识别结果转CSV的单元格拆分问题

核心思路

问题根源是识别后的字符列表为单字符串格式,直接写入CSV会被判定为单个单元格。需要先按换行拆分每行,再按空格拆分每列,转换成结构化数据框后再导出。

具体步骤

假设你已通过Tesseract得到识别后的字符串text:

# 示例识别结果
text <- "5 2 3 390 - 500 -
8 50 & 3 3 887 7
1 3 - 9 5
"
  1. 拆分每行并清理空行
# 按换行符分割成独立行
lines <- strsplit(text, "\n")[[1]]
# 移除识别结果末尾的多余空行
lines <- lines[lines != ""]
  1. 拆分列并转换为数据框
    处理每行列数不一致的情况,自动补全缺失值:
library(tibble)
# 对每行按空格拆分列
split_lines <- lapply(lines, function(x) strsplit(x, "\\s+")[[1]])
# 转换为数据框,短行自动补空值
df <- as_tibble(do.call(rbind, lapply(split_lines, function(x) t(x))), .name_repair = "unique")
# 自定义列名(可选)
colnames(df) <- paste0("col_", seq_len(ncol(df)))
  1. 导出为标准CSV
write.csv(df, "output.csv", row.names = FALSE, quote = FALSE)

替代方案(直接替换分隔符)

若之前替换空格为逗号无效,大概率是识别出的是连续空格或特殊空格,先统一替换为单个逗号再导出:

# 将所有连续空格替换为单个逗号
clean_text <- gsub("\\s+", ",", text)
# 写入文件保留换行结构
writeLines(clean_text, "output.csv")

该方案适合列数固定的场景,避免数据框补空值的额外处理。

内容的提问来源于stack exchange,提问作者Matthew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 01:57:36