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

在R中如何识别字符串中混杂的数字并修正OCR生成的错误数值格式

R处理OCR识别数值格式问题的实现方案

核心思路

先通过正则规则统一两种输入的格式,消除原有千分位点和小数分隔点的歧义,再拆分重组得到符合要求的数值串。

实现代码

library(stringr)

process_ocr_num <- function(x) {
  # 将千分位位置的点替换为空格,统一千分位分隔符格式
  x <- str_replace_all(x, "\\.(?=\\d+,)", " ")
  # 将小数位位置的点替换为逗号,统一小数分隔符格式
  x <- str_replace_all(x, "\\.(?=\\d{2}( |$))", ",")
  # 按空格拆分得到所有独立片段
  parts <- str_split(x, " +")[[1]]
  # 两两片段拼接,中间插入千分位点
  result <- str_c(parts[c(TRUE, FALSE)], ".", parts[c(FALSE, TRUE)])
  return(result)
}

测试验证

测试用例1

输入:
x1 <- c("9 243,51 233 286,08 18 386.21")
运行:
process_ocr_num(x1)
输出:
"9.243,51" "233.286,08" "18.386,21"

测试用例2

输入:
x2 <- c("9.243,51 233 286,08 18 386.21")
运行:
process_ocr_num(x2)
输出:
"9.243,51" "233.286,08" "18.386,21"

补充说明

如果你的OCR识别结果存在超过两级的千分位拆分(比如1 234 567,89这类格式),调整后续的分组拼接逻辑即可适配,当前代码完全匹配给出的示例场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:57:01