knowledge-vault/work/client-projects/高新教育/文枢/数学/讨论/讨论识别数学题照片.md

4.8 KiB
Raw Permalink Blame History

1

GE

为了提高大语言模型LLM如GPT-4o, Claude 3.5 Sonnet等识别数学题照片并输出Markdown的准确率你需要设计一个结构化、约束性强且包含特定规则的提示词Prompt

以下是一个经过优化的提示词模板,以及核心策略的解析。

🚀 高效提示词模板 (直接可用)

你可以直接复制下面的内容作为 System Prompt 或 User Message 的第一部分:

# Role
你是一个专业的数学排版专家和LaTeX/Markdown转换引擎。你的任务是将用户上传的数学题目图片精准无误地转换为Markdown格式。

# Constraints & Rules (重要)
1. **精准还原**:必须逐字逐句识别,不要尝试解答题目,不要省略任何文字,也不要添加任何原图中不存在的解释或前言。
2. **LaTeX公式**
   - 所有的数学公式、变量、数字包括单独的x, y, 1, 2等必须使用 LaTeX 语法包裹。
   - 行内公式用 `$ ... $` 包裹。
   - 独立公式块用 `$$ ... $$` 包裹。
   - 分数请使用 `\frac{a}{b}`,上标使用 `^`,下标使用 `_`3. **格式排版**
   - 保持原题的段落结构。
   - 如果有选项A, B, C, D请按照列表格式排列。
   - 遇到几何图形或函数图像,请在对应位置插入说明文字:`[此处是图片:描述图片内容]`。
4. **特殊符号处理**
   - 乘号请用 `\times``\cdot`,不要用字母 `x`- 根号请用 `\sqrt{}`- 积分、求和、极限等高级符号请使用标准的LaTeX命令。
5. **自我修正**
   - 如果图片模糊或有手写痕迹,请根据数学逻辑推断最可能的字符(例如,在几何题中,"∠A=90°"比"∠A=900"更合理)。
   - 检查括号是否闭合,分数线是否完整。

# Output Format Example
(不要输出 ```markdown 标记,直接输出内容)

1. 已知函数 $f(x) = x^2 + 2x + 1$,则 $f(1)$ 的值为 (  )
A. $1$
B. $2$
C. $3$
D. $4$

# Your Task
请识别输入的图片内容并输出Markdown源码。


💡 提升准确率的 5 个关键策略

如果你想进一步微调或理解为什么这么写,以下是核心原理:

1. 明确角色定位 (Persona)

  • 错误写法:帮我看一下这个题。
  • 正确写法你是一个专业的数学排版专家专门负责OCR识别。
  • 原理:设定角色可以减少模型“试图解题”的幻觉,强制它专注于“识别”而非“思考答案”。

2. 强制 LaTeX 规范 (Explicit Syntax)

数学公式最容易出错的地方是混用纯文本和公式。

  • 要求:明确要求所有的变量(哪怕是一个简单的 $x$)都必须用 $ 包裹。
  • 好处:这样输出的结果放入 Markdown 编辑器(如 Obsidian, Typora或网页渲染时格式会非常漂亮不会出现排版错乱。

3. 禁止“废话” (Zero-shot Chain of Thought)

模型很喜欢说“好的,这是你要的题目...”或者在最后加上“这道题选C”。

  • 提示词不要解答不要添加前言后语直接输出Markdown源码
  • 好处:方便你直接复制粘贴,不需要二次清洗数据。

4. 利用上下文修正 (Logical Inference)

OCR 经常把 0 识别成 $O$,把 1 识别成 $l$。

  • 提示词根据数学逻辑推断模糊字符
  • 例子:如果模型看到 $x^z + y^2 = 1$,它可能会识别错,但如果你告诉它这是勾股定理或圆方程,它会自动修正为 $x^2$。

5. 分步处理(针对复杂图片)

如果图片非常复杂(包含大量手写字、表格、图形),单纯的一个 Prompt 可能不够。你可以尝试 Few-Shot Prompting少样本提示

在提示词中给它一个例子:

用户[输入一张简单的图片] 参考输出

  1. \triangle ABC 为直角三角形,且 $\angle C = 90^\circ$,则...

用户[输入现在的图片] 请参照上面的格式进行识别。

🔧 如果LLM还是经常出错怎么办

  1. 预处理图片:在发给 LLM 之前,用手机自带的编辑功能把图片裁剪一下,只保留题目部分,去掉桌子背景、手指阴影,提高对比度。
  2. 更换模型
    • GPT-4o目前数学OCR能力最强。
    • Claude 3.5 Sonnet:在代码和格式化输出上非常精准,很少出错。
    • Gemini 1.5 Pro:处理长上下文和多模态能力也很强。
  3. 分两步走
    • 第一步:让 LLM 描述图片中的所有数学元素。
    • 第二步:让 LLM 根据刚才的描述写出 Markdown 代码。

你可以先试用上面的模板,如果发现哪类特定的符号容易错(比如矩阵、化学方程式),可以在 特殊符号处理 那一栏专门加一条规则。