goldenmatch v3.2.0
Immutable
release. Only release title and notes can be modified.
Added
- N-level probabilistic comparison fields (
level_thresholds): probabilistic
matchkey fields accept explicit per-level similarity cutoffs (descending,
len == levels - 1; a pair's level = the count of thresholds its similarity
satisfies), generalizing the fixed 2/3-level agree/partial/disagree banding.
Scalar and vectorized scoring paths both honor them; the fused-match path
declineslevel_thresholdsmatchkeys and falls back. - Native N-level scoring (
goldenmatch-native0.1.14): the native Rust FS
kernel scores customlevel_thresholdsbanding natively — byte-identical to
the pure-Python_levels_from_similaritysemantics — via an optional
per-fieldlevel_thresholdskwarg onscore_block_pairs_fs. Capability is
detected through the kernel'sFS_SUPPORTS_LEVEL_THRESHOLDSconst, so older
wheels keep the automatic pure-Python fallback (no behavior change). - Splink config converter:
from_splink()(top-level export) converts a
Splink settings or trained-model JSON (dict or path) into a validated
GoldenMatch config plus aConversionReportof lossy findings; trained m/u
probabilities import as anEMResultso no re-training is needed.
strict=Trueraises on any lossy finding. Surfaced as the
goldenmatch import-splink SETTINGS.json -o CONFIG.yaml [--model-out MODEL.json]
CLI command and theconvert_splink_configMCP tool (78 tools total). - Splink-conversion parity gate (
scripts/bench_er_headtohead/run_converted_splink.py):
a converted config must land within F1 0.05 of native Splink on the shared
evaluator; measured splink_f1=0.9964 vs converted_gm_f1=0.9761
(delta 0.0203) on synthetic_person (5K).