36 lines
1013 B
TypeScript
36 lines
1013 B
TypeScript
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<Weights> | null | undefined): Weights {
|
||
if (!overrides) return { ...DEFAULT_WEIGHTS };
|
||
return { ...DEFAULT_WEIGHTS, ...overrides };
|
||
}
|
||
|