fix: keep cross_segment rule single-dimension, guard no-absent-events
This commit is contained in:
@@ -180,7 +180,7 @@ _CROSS_SEGMENT_ENTITY_TRACKING = SubPattern(
|
|||||||
],
|
],
|
||||||
distractor_rules=(
|
distractor_rules=(
|
||||||
"干扰项须是视频中【另一真实实体】在相应片段真实做过的动作,"
|
"干扰项须是视频中【另一真实实体】在相应片段真实做过的动作,"
|
||||||
"仅在【动作主体】这一单一维度上与正解不同;或构造只覆盖部分片段的真实子集。"
|
"仅在【动作主体】这一单一维度上与正解不同。"
|
||||||
"严禁编造任何实体未做过的缺席动作。"
|
"严禁编造任何实体未做过的缺席动作。"
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,14 +2,13 @@
|
|||||||
|
|
||||||
from app.question_gen.strategy_action_recognition import AR_SUB_PATTERNS
|
from app.question_gen.strategy_action_recognition import AR_SUB_PATTERNS
|
||||||
|
|
||||||
_REQUIRED = ["真实", "单一维度"] # 每个 distractor_rules 都需强调 grounded + 单维
|
|
||||||
|
|
||||||
|
|
||||||
def test_all_sub_patterns_enforce_single_dimension_counterfactual():
|
def test_all_sub_patterns_enforce_single_dimension_counterfactual():
|
||||||
for sp in AR_SUB_PATTERNS:
|
for sp in AR_SUB_PATTERNS:
|
||||||
rules = sp.distractor_rules
|
rules = sp.distractor_rules
|
||||||
assert "真实" in rules, sp.name # 干扰项须真实发生
|
assert "真实" in rules, sp.name # 干扰项须真实发生
|
||||||
assert ("单一维度" in rules or "只在" in rules or "仅在" in rules), sp.name
|
assert ("单一维度" in rules or "只在" in rules or "仅在" in rules), sp.name
|
||||||
|
assert ("缺席" in rules or "未出现" in rules or "凭空" in rules), sp.name
|
||||||
|
|
||||||
|
|
||||||
def test_sub_pattern_count_unchanged():
|
def test_sub_pattern_count_unchanged():
|
||||||
|
|||||||
Reference in New Issue
Block a user