2026-03-20 01:19:33 +08:00

2.5 KiB
Raw Blame History

剧本拆分(仅原始文本切割,输出 string[]

本指南只做一件事: 把一份长剧本原文切成多个文本片段,输出 string[]

不做结构化字段提取,不输出 JSON 对象,不附加角色卡、锚点、分镜元数据。

1. 输入与输出

输入

  • 一段完整长剧本文本(字符串)

输出

  • string[]
  • 数组每个元素是“原始剧本的一段子串”
  • 拼接后应可还原原文语义顺序(允许空白规范化差异)

示例:

[
  "第一段原文...",
  "第二段原文...",
  "第三段原文..."
]

2. 切割原则

  1. 只切原文,不改写剧情。
  2. 尽量在自然边界切分:
    • 场景切换处
    • 段落边界
    • 完整对白后
  3. 禁止在以下位置切分:
    • 一句对白中间
    • 一个动作描述中间
    • 专有名词中间
  4. 每段尽量长度均衡,避免极短碎片。

3. 长度约束(建议)

按模型容量设置目标长度,建议采用“软上限 + 硬上限”:

  • targetLen:目标字符数(例如 800 到 1500
  • maxLen:硬上限字符数(例如 1800

规则:

  1. 优先接近 targetLen
  2. 若继续追加会超过 maxLen,必须切分。
  3. 超长单段(天然超过 maxLen)可在最近标点处强制切分。

4. 切割流程

  1. 预处理:统一换行符、去除明显重复空行。
  2. 粗切按双换行或场景标记如“场景X”“INT/EXT”分段。
  3. 合并:将粗切段按顺序累加到当前块,直到接近 targetLen
  4. 截断:若超过 maxLen,在最近的句末标点处切开。
  5. 收尾:去掉首尾多余空白,输出 string[]

5. 最低质量检查

输出前检查:

  1. 数组不为空。
  2. 每个元素非空字符串。
  3. 顺序与原文一致。
  4. 不存在明显断句错误(例如对白断半句)。

6. 给智能体的固定执行指令

当用户要求“拆分长剧本给多个视频模型并行生成”时:

  1. 仅基于原始剧本文本切割。
  2. 不增加任何结构化字段。
  3. 最终仅输出 string[]
  4. 不输出额外解释性对象。

7. 简例

原文(节选):

  • 场景1雨夜街道。林夏快步穿过巷口。
  • 场景2天台。她停下回头看向门口。
  • 场景3脚步声逼近。她握紧手机。

可能输出:

[
  "场景1雨夜街道。林夏快步穿过巷口。",
  "场景2天台。她停下回头看向门口。",
  "场景3脚步声逼近。她握紧手机。"
]