Release v6.0.49: fix D9 context injection + theevrabuddhi (BVR-232); Precision 92.95%→94.69%\n\n1. D9 context injection fix (validate_logic_v2.py):\n - Bug: context was read from planet_positions_60.json (no D9 data)\n - Fix: read context from standard_test_charts.json (has full D9/Navamsa/Upagraha)\n - Impact: all D9-dependent rules can now query D9 positions\n\n2. theevrabuddhi_yoga (BVR-232):\n - Old: checked Mercury's D1 strength (completely wrong logic)\n - New: L5 benefic in D1 AND in Navamsa Lagna; D9 L1 lord benefic/aspected\n - FP: 19 → 0 (clean fix via D9 engine)\n\n3. Metrics: Precision 92.95%→94.69%, FP 73→54, F1 92.32%→93.17%
This commit is contained in:
@@ -286,19 +286,19 @@ def main():
|
||||
name = chart['name']
|
||||
planets = chart['planets']
|
||||
ascendant = chart['ascendant']
|
||||
context = chart.get('context')
|
||||
|
||||
# Skill 引擎检测
|
||||
# 从 standard_test_charts.json 取完整 context(含 D9/Navamsa/Upagraha 数据)
|
||||
pyj_chart = pyj_charts.get(name)
|
||||
if not pyj_chart:
|
||||
print(f" WARNING: {name} not in PyJhora data")
|
||||
continue
|
||||
context = pyj_chart.get('context', {})
|
||||
# Skill 引擎检测(使用含 D9 的完整 context)
|
||||
skill_results = engine.detect(planets, ascendant, context=context)
|
||||
skill_yoga_ids = set(r['rule_id'] for r in skill_results)
|
||||
skill_comp = skill_yoga_ids & comparable_rule_ids # 只保留可对比的
|
||||
total_skill_comp += len(skill_comp)
|
||||
|
||||
# PyJhora 结果
|
||||
pyj_chart = pyj_charts.get(name)
|
||||
if not pyj_chart:
|
||||
print(f" WARNING: {name} not in PyJhora data")
|
||||
continue
|
||||
pyj_yoga_names = set(pyj_chart.get('expected_yogas', []))
|
||||
|
||||
# 将 PyJhora Yoga名映射到 Skill rule_id
|
||||
|
||||
Reference in New Issue
Block a user