山东大学软件学院创新实训-易学探索助手开发记录(三)
句读处理,为无标点的繁体中文添加句读
一、功能背景
在古籍数字化处理场景中,我们常遇到无标点的繁体中文文本。本项目开发的句读处理模块,通过集成深度求索(DeepSeek)大语言模型,实现以下功能:
- 自动添加现代标点符号
- 结构化数据输出
二、技术实现
1. 架构概览
采用Spring Boot框架搭建服务,通过三层架构实现功能:
// 核心处理流程
text -> 构造prompt -> API调用 -> 响应解析 -> 结构化数据
2. 关键技术点
(1)智能提示词工程
动态构造prompt模板,引导AI规范输出:
String prompt = String.format("""
请按以下步骤处理文本:
1. 为缺少标点的繁体中文添加标点
2. 转换为简体中文
【输入文本】%s
【输出格式要求】
<!-- BEGIN JSON -->
{"processed_text": "处理后的文本"}
<!-- END JSON -->""", userText);
(2)API调用层实现
通过定制化请求体实现精准控制:
public class DeepSeekRequest {
private String model = "DeepSeek-R1";
private boolean stream = false;
private List<Message> messages;
@Data
public static class Message {
private String role;
private String content;
}
}
(3)响应解析策略
双重保障机制确保数据可靠性:
private String extractProcessedText(String response) throws Exception {
// 正则提取JSON片段
String json = extractWithMarkers(response);
// 结构验证
JSONObject obj = new JSONObject(json);
if (!obj.has("processed_text")) {
throw new DataValidationException();
}
return obj.getString("processed_text");
}
三、技术挑战与解决方案
| 挑战点 | 解决方案 | 代码示例 |
|---|---|---|
| 非结构化响应 | 正则锚点提取 | Pattern.compile("BEGIN JSON -->(.*?)<!-- END") |
| API稳定性 | 双保险机制 | HTTP状态码检查 + JSON结构校验 |
| 编码问题 | 统一UTF-8处理 | headers.setContentType(MediaType.APPLICATION_JSON) |
四、效果演示
输入:
{"text": "人生若只如初見何事秋風悲畫扇等閒變卻故人心卻道故人心易變"}
输出:
人生若只如初見,何事秋風悲畫扇。等閒變卻故人心,卻道故人心易變。
处理流程监控日志:
[DEBUG] 收到原始文本:42字符
[INFO] API响应时间:1280ms
[SUCCESS] 输出标点文本:添加5个标点
五、总结与展望
技术收获:
- 大模型API集成模式
- 结构化输出控制技巧
- 文本处理异常处理实践
优化方向:
- 增加标点修正反馈机制
- 实现历史处理记录追溯
- 支持批量文本处理
- 支持识别源文本潜在错误内容
好的,以下是优化后的文字和格式:
Bug处理与修复
在项目开发过程中,我们遇到了以下问题,并逐一进行了处理和修复:
- 缺乏技术文档,无法正常连接API
问题描述: 由于缺乏完善的技术文档,在尝试连接API时遇到了困难,无法确定API所需的具体参数设置。
解决方案: 通过反复试验不同的参数组合,最终成功找到了API所需的正确参数配置,实现了与API的正常连接。 - 大模型输出结果不够规范
问题描述: 在使用大模型进行文本处理时,发现输出结果有时不够规范,无法满足项目需求。
解决方案:
- 优化提示词: 对提示词进行了精细化的调整,使其更加明确地引导模型生成符合要求的输出。
- 完善输出结果处理方案: 在模型输出结果后,增加了结果校验和后处理机制,对不规范的结果进行修正,确保最终输出的文本满足项目规范。

浙公网安备 33010602011771号