大模型应用
当角色名陷入 LLM 统计中位数(陈、Patel、Maya…
为小说/剧本角色生成能跳出 LLM 默认名字分布、且与设定文化和演员表不冲突的名字
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
当角色名陷入 LLM 统计中位数(陈、P特定
解决思路
- 先诊断命名问题属于哪种状态:CN1 无上下文、CN2 陈姓泛滥(统计中位数聚集)、CN3 文化不一致(同一虚构文化名字风格不搭)、CN4 演员表撞名(Sarah/Sara、Mike/Mark/Michael)、CN5 角色不匹配(时代/文化/身份不符)、CN6 混合设定(当代或历史背景含多个真实文化群体)
- 在任何生成之前先收集上下文:体裁与设定、时间年代、世界中存在哪些文化、演员表应有多元、已锁定的名字有哪些
- 绝不让 LLM 自己「想」名字,始终用脚本从精选列表中真正随机抽取,且从列表深处取而非取最常见的名字
- 当代/历史设定:用文化名字池生成,例如 deno run --allow-read scripts/character-name.ts --culture chinese --gender female、--culture anglo --count 5、--pool contemporary-american --count 10
- 奇幻/科幻设定:用音素预设生成,例如 --fantasy elvish-like --count 10、--fantasy harsh-fantasy --syllables 2-3,保证同一虚构文化内音韵一致
- 混合设定:先定义各文化的真实比例(按设定逻辑,而非「每种一个」),再用加权池或按地点分别生成
- 用 cast-tracker.ts 管理演员表:init "Novel Title" 初始化项目,add "Sarah Chen" --role protagonist --culture chinese-american 添加角色,check "Marcus" 检查撞名,distribution 查看分布,suggest 获取代表性不足文化的建议
- 定稿前对每个候选名跑 cast-tracker check,分析声音特征:变化首辅音、音节数、重音模式,避免相似读音混淆
- 奇幻名要保证可读可念:限制辅音簇,用带可发音约束的音素预设,朗读测试,避免 Xzylthrix 这类破坏沉浸感的名字
- 历史设定用历史名字列表,研究名字何时开始使用,默认用该时期常见的名字,避免中世纪英格兰出现 Jennifer、维多利亚伦敦出现 Jayden
- 文化混搭要用完整文化包:避免日文姓配中文名,考虑角色的代际(移民、二代)、语境与家庭决策
- 若可用 conlang 技能,为复杂奇幻语言生成完整音素库:deno run --allow-read ../conlang/scripts/phonology.ts --preset elvish_like --json > custom-phonology.json,再用 --phonology custom-phonology.json --count 20 生成名字
- 若可用 naming 技能,对具体名字做声音、含义、文化、功能四层深度评估;character-naming 负责生成,naming 负责评估
- 若可用 list-builder 技能,把起步级列表扩充到生产级(每表 75-150 项),保证维度多样性(常见/罕见、地区分布)
- 把演员表持久化到 {project-root}/cast-tracker.json(或先查 context/output-config.md 的首选输出位置),跨会话累积角色数据
- 不要做:不让 LLM 自己「想」名字、不建议任何文化最常见的名字、无上下文时不默认美式命名、不检查现有演员表就生成、不把奇幻等同于随机音节、不跳过上下文收集、不检查撞名就批准名字
适用边界 · 注意事项
- 没有设定、文化或年代上下文时不要直接生成名字,应先追问
- 不要用「换一个族群最常见名」的方式修正陈姓泛滥,那只是中位数跳跃
- 不要为凑多元而每种文化只放一个角色,那会显得像多元化合规表格