import type { Weights } from './types'; /** * scoring-tiebreak 默认权重(首版写死客户端) * * 来源:`设计说明文档/文档换行算法.md v1.2.1` 10.3 */ export const DEFAULT_WEIGHTS = Object.freeze({ P_EMOTION_SPLIT: 10000, P_PROTECTED_SPLIT: 10000, P_WIDOW_WORD: 800, P_WIDOW_LINE: 500, P_SHORT_LASTLINE: 300, P_PARTICLE_ISO: 200, R_PUNCT_BREAK: 80, R_SHIFT_BREAK: 60, R_ACCUM_BREAK: 40, R_SELF_BREAK: 20, P_OVER_MAXLEN: 30, P_TOO_SHORT: 10, /** * 预留:情绪词落点强化(文档 7.2 / 10.2G 提到) * - 为避免偏离 10.3 首版权重,本实现默认置 0(不影响结果) * - 若后续需要启用,可通过 overrides 提供非 0 权重,并用 configVersion 管理 */ R_EMOTION_TAIL: 0, P_EMOTION_BURIED: 0, } satisfies Weights); export function mergeWeights(overrides?: Partial | null | undefined): Weights { if (!overrides) return { ...DEFAULT_WEIGHTS }; return { ...DEFAULT_WEIGHTS, ...overrides }; }