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

求助:将Tesseract识别扫描PDF的文本转换为规范CSV/DataFrame

解决方案:整理Tesseract提取的血液检测数据为结构化DataFrame

我来帮你搞定这个血液检测数据整理的问题!你遇到的核心问题是原始提取文本没有清晰的条目分隔,直接按空格或换行拆分肯定会乱。咱们用正则表达式精准匹配每个指标条目,就能完美分成你想要的两列格式了。

步骤1:预处理原始文本

先把提取文本里的干扰符号(比如¢、/、—这些无关字符)去掉,同时合并多余的空格:

import re
import pandas as pd

# 你从Tesseract拿到的原始提取文本
raw_text = "Haemoglobin 13.5 14-16 g/dl Random Blood Sugar 186 60 - 160 mg/dl Random Urine Sugar Nil ¢ Blood Urea 43 14-40 mg/dl 4 — Serum Creatinine 2.13 0.4-1.5 mg/dl Serum Uric Acid 4.9 3.4-7.0 mg/dl Serum Sodium 142 135 - 150 meq/L / Serum Potassium 2.6 3.5-5.0 meq/L Total Cholesterol] 146 110 - 160 mg/dl Triglycerides 162 60 - 180 mg/d]"

# 清理文本:移除特殊符号,合并连续空格
cleaned_text = re.sub(r'[¢/—\]]', '', raw_text)
cleaned_text = re.sub(r'\s+', ' ', cleaned_text).strip()

步骤2:用正则表达式拆分每个指标条目

观察每个指标的结构:指标名称(首字母大写的单词序列) + 检测值+参考范围+单位。我们用正则匹配这个固定模式,精准拆分每个条目:

# 正则模式:匹配指标名称,再匹配后续的检测详情,直到下一个大写开头的指标前结束
pattern = r'([A-Z][a-zA-Z\s]+?)\s+([0-9.Nil\s-]+?)(?=\s+[A-Z]|$)'
matches = re.findall(pattern, cleaned_text)

# 整理匹配结果:去掉每个字段的多余空格
processed_data = []
for indicator, details in matches:
    processed_data.append([indicator.strip(), details.strip()])

步骤3:转换为DataFrame并导出CSV

现在把整理好的列表转成DataFrame,就是你想要的两列结构了:

# 生成DataFrame
df = pd.DataFrame(processed_data, columns=['指标名称', '检测值及参考范围'])

# 打印结果
print(df)

# 导出为CSV(可选)
df.to_csv('blood_test_results.csv', index=False)

最终输出效果

运行后你会得到结构化的表格:

指标名称          检测值及参考范围
0      Haemoglobin        13.5 14-16 g/dl
1  Random Blood Sugar    186 60 - 160 mg/dl
2  Random Urine Sugar                  Nil
3        Blood Urea         43 14-40 mg/dl
4   Serum Creatinine      2.13 0.4-1.5 mg/dl
5    Serum Uric Acid       4.9 3.4-7.0 mg/dl
6      Serum Sodium     142 135 - 150 meq/L
7    Serum Potassium      2.6 3.5-5.0 meq/L
8  Total Cholesterol    146 110 - 160 mg/dl
9       Triglycerides      162 60 - 180 mg/dl

这个方法靠正则精准识别指标边界,完美适配你提取的文本格式,再也不会出现拆分错位的问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 09:07:10