2.5 KiB
2.5 KiB
剧本拆分(仅原始文本切割,输出 string[])
本指南只做一件事:
把一份长剧本原文切成多个文本片段,输出 string[]。
不做结构化字段提取,不输出 JSON 对象,不附加角色卡、锚点、分镜元数据。
1. 输入与输出
输入
- 一段完整长剧本文本(字符串)
输出
string[]- 数组每个元素是“原始剧本的一段子串”
- 拼接后应可还原原文语义顺序(允许空白规范化差异)
示例:
[
"第一段原文...",
"第二段原文...",
"第三段原文..."
]
2. 切割原则
- 只切原文,不改写剧情。
- 尽量在自然边界切分:
- 场景切换处
- 段落边界
- 完整对白后
- 禁止在以下位置切分:
- 一句对白中间
- 一个动作描述中间
- 专有名词中间
- 每段尽量长度均衡,避免极短碎片。
3. 长度约束(建议)
按模型容量设置目标长度,建议采用“软上限 + 硬上限”:
targetLen:目标字符数(例如 800 到 1500)maxLen:硬上限字符数(例如 1800)
规则:
- 优先接近
targetLen。 - 若继续追加会超过
maxLen,必须切分。 - 超长单段(天然超过
maxLen)可在最近标点处强制切分。
4. 切割流程
- 预处理:统一换行符、去除明显重复空行。
- 粗切:按双换行或场景标记(如“场景X”“INT/EXT”)分段。
- 合并:将粗切段按顺序累加到当前块,直到接近
targetLen。 - 截断:若超过
maxLen,在最近的句末标点处切开。 - 收尾:去掉首尾多余空白,输出
string[]。
5. 最低质量检查
输出前检查:
- 数组不为空。
- 每个元素非空字符串。
- 顺序与原文一致。
- 不存在明显断句错误(例如对白断半句)。
6. 给智能体的固定执行指令
当用户要求“拆分长剧本给多个视频模型并行生成”时:
- 仅基于原始剧本文本切割。
- 不增加任何结构化字段。
- 最终仅输出
string[]。 - 不输出额外解释性对象。
7. 简例
原文(节选):
- 场景1:雨夜街道。林夏快步穿过巷口。
- 场景2:天台。她停下,回头看向门口。
- 场景3:脚步声逼近。她握紧手机。
可能输出:
[
"场景1:雨夜街道。林夏快步穿过巷口。",
"场景2:天台。她停下,回头看向门口。",
"场景3:脚步声逼近。她握紧手机。"
]