File size: 1,960 Bytes
1ce499f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def build_top_factors(features, anomaly_score, final_score):
    factors=[]
    if features.get("close_approach_proxy",0)>0.5: factors.append("small orbital separation proxy")
    if features.get("same_shell",0)>=1: factors.append("same orbital shell")
    if features.get("graph_local_density",0)>0.2: factors.append("dense interaction neighborhood")
    if features.get("recurrence_count",0)>=3: factors.append("repeated appearance across scoring windows")
    if features.get("trend_delta_score",0)>0.1: factors.append("risk trend increasing over time")
    if anomaly_score>0.6: factors.append("unusual conjunction pattern")
    if final_score>0.9: factors.append("high blended system score")
    return factors[:5] or ["general risk elevation from orbital similarity"]
def analyst_summary(features, top_factors, final_score):
    text="This pair is prioritized because "+", ".join(top_factors[:3])+"." if top_factors else "This pair is prioritized because multiple similarity signals are elevated."
    if features.get("recurrence_count",0)>=3: text+=" The pair has appeared repeatedly in recent scoring windows."
    if features.get("graph_local_density",0)>0.2: text+=" The surrounding interaction neighborhood is congested."
    if final_score>0.9: text+=" This pair should be reviewed first."
    return text
def structured_explanation(features, top_factors, final_score, action):
    return {"why_risky":top_factors[:3],"what_changed":"Risk increased recently." if features.get("trend_delta_score",0)>0.1 else "No major recent change detected.","context":"Pair sits in a dense local interaction neighborhood." if features.get("graph_local_density",0)>0.2 else "Pair context is not highly congested.","recommended_action":action,"final_score":final_score}
def recommended_action(label): return {"critical":"immediate analyst review","high":"prioritize analyst review","medium":"monitor and rescore on next cycle"}.get(label,"low priority monitoring")