deepseek-ocr-2专为处理pdf/扫描件等带视觉布局的文档而设计,能精准识别标题层级、表格结构和段落逻辑并输出标准markdown,但不支持纯文本输入。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

DeepSeek-OCR-2 适合直接处理 PDF/扫描件,但不接受纯文本输入
如果你手头是 PDF、JPG 或 PNG 格式的文档(比如合同、简历、报告),DeepSeek-OCR-2 是当前最贴合的工具——它专为“看懂排版”而生,能原样还原标题层级、表格结构和段落逻辑,输出标准 Markdown。但它不处理纯字符串或已提取的文本内容。
常见错误现象:
- 把一段复制好的用户评论粘进
DeepSeek-OCR-2界面 → 页面无响应或报错“不支持文本上传” - 误以为它像
DeepSeek-R1API 那样支持 prompt 输入 → 实际它只走图像/文件流 pipeline
使用场景明确:必须是带视觉布局的文档类输入。若你只有纯文本(如 CSV 中的评论字段、API 返回的 JSON 字段),应跳过此工具,转向模型 API 或 NLP 流程。
用 DeepSeek-R1 API + Pydantic schema 做纯文本结构化抽取
对已清洗过的非结构化文本(例如用户评论、日志片段、邮件正文),DeepSeek-R1 的大模型能力配合显式 schema 最有效。关键不是“让模型自由发挥”,而是用 Pydantic 强约束输出格式。
实操建议:
- 定义
BaseModel时,每个字段加description和default=None,避免模型编造值 - 提示词中明确写“仅返回合法 JSON,不要任何解释、前缀或 markdown 代码块”
- 调用时设置
response_format={"type": "json_object"}(若 SDK 支持)或在 prompt 末尾加{"name":引导补全 - 对长文本,先用规则切分(如按换行、句号、或
text.split("。")),再逐段送入,避免 token 超限
示例提示片段:
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
从以下评论中提取结构化信息:
“这个耳机音质太好了,但充电口容易松动,客服态度一般。”
请严格按以下 JSON Schema 输出,缺失字段填 null:
{
"product": "str",
"aspect": ["音质", "充电口", "客服"],
"sentiment": "str in [正面, 负面, 中性]",
"reason": "str"
}
DeepKE 不适合轻量级抽取,它面向知识图谱构建
如果你搜到 DeepKE 并打算拿来抽几条字段,大概率会卡在环境和数据准备上。它本质是关系抽取(RE)+命名实体识别(NER)的 pipeline 工具包,目标是产出三元组 (subject, predicate, object),不是单条记录映射。
容易踩的坑:
- 想直接喂入原始评论 → 报错 “no training data found”,因为
DeepKE默认需要标注好的.ann或jsonl格式训练集 - 跳过标注,硬套预训练模型 → 抽出一堆“O”标签(非实体)或关系错位,尤其在中文短文本中泛化差
- 忽略其依赖项(如
spacy中文模型、torch版本冲突)→pip install -r requirements.txt后仍 import 失败
适用边界很窄:只有当你已有百条以上人工标注的实体-关系样本,且目标是构建企业级知识图谱时,才值得投入。
别忽略预处理——90% 的失败源于文本没“归一”
无论用哪个工具,只要原始文本含大量噪声(如 HTML 标签、PDF 提取残留乱码、emoji、异常空格),结构化结果必然崩坏。这不是模型问题,是输入失真。
必须做的清洗动作:
- 用
re.sub(r"[ u3000]+", " ", text)统一空白符,避免“标题 一”被切分为两个 token - 删掉
]+>类 HTML 标签,尤其爬虫数据里高频出现 - 对中文文本,慎用
string.punctuation,它不含中文标点;改用re.sub(r"[^wu4e00-u9fff,。!?;:""''()【】《》、]", " ", text) - PDF OCR 后的“-”换行连字符(如“结-构化”)需合并:用
re.sub(r"-\n", "", text)
这步没法跳过,也没法靠大模型自动修复。模型看到“服务-\n态度差”,和看到“服务态度差”,理解路径完全不同。










