
    Mxi              
           d Z ddlZddlmZmZ g dZg dg dg dg dg d	g d
g dg dg dd	Zg dZg dZd Z	d Z
d Zd Zd Zy)u   
The Amygdala — Salience Detection & Emotional Tagging
Determines what matters. High amygdala salience gates all other processing.
    N)
new_signalEMOTIONAL_TAGS)urgent	emergencycriticalbreakingimmediatelydangerthreatattackbrokenfailerrorcrashloveexcitedamazing	terrified
devastated)howwhywhatexplainwonder?)worriedafraidscarednervousstressfear)happyr   greatr   r   	wonderful)r   r   r   wrongstuckzcan'tannoyed)createbuilddesignimagineartnewmake)r   nowr	   asapr   r   )calmquietstillrestpeacetranquil)confusedunclearzdon't understandlostr   )willmustzgoing tocommitfinishcomplete)	curiousanxiousjoyful
frustratedcreativer   peacefulr7   
determined)goodr#   	excellentr   likebestnice)badr%   r   hateworstterribleawfulc                     | j                         g }t        j                         D ]+  \  }}t        fd|D              s|j	                  |       - |s|j	                  d       |dd S )z-Return list of emotional tags found in input.c              3   &   K   | ]  }|v  
 y wN .0kwtexts     3/home/workspace/ghojualamanchu-v3/brain/amygdala.py	<genexpr>ztag_emotions.<locals>.<genexpr>$   s     -brTz-   neutralN   )lowerEMOTION_MAPitemsanyappend)	raw_inputtagsemotionkeywordsrW   s       @rX   tag_emotionsrf      sg    ??DD(..0 !-H--KK ! I8O    c                    d}| j                         t        fdt        D              r|dz  }g d}t        fd|D              r|dz  }t        | j	                               }|dkD  r|dz  }n
|d	kD  r|d
z  }| j                  d      }|dk\  r|dz  }n
|dk\  r|dz  }t        j                  d|       }t        |      dk\  r|dz  }nt        |      dk\  r|dz  }t        |d      S )u9   Score salience 0.0–1.0. High salience gates the system.g        c              3   &   K   | ]  }|v  
 y wrR   rS   rT   s     rX   rY   z"detect_salience.<locals>.<genexpr>0   s     
1"2:
1rZ   皙?)r   r@   rA   rB   r   c              3   &   K   | ]  }|v  
 y wrR   rS   rU   temotional_tagss     rX   rY   z"detect_salience.<locals>.<genexpr>5   s     
711
7rZ   g333333?d   g333333?2   g?!      g?z\b[A-Z]{3,}\b   g      ?)	r]   r`   SALIENT_KEYWORDSlensplitcountrefindallmin)rb   rn   scorehigh_intensitywordsexclaim_count
caps_wordsrW   s    `     @rX   detect_saliencer   *   s    E??D 
1 0
11 PN

7
77 	!"Es{	 OOC(M	!	 ,i8J
:!	ZA	uc?rg   c                 j     g d}g d}t         fd|D              ryt         fd|D              ryy)zDetermine overall valence.)rA   rD   rC   rE   )r@   rB   r7   c              3   &   K   | ]  }|v  
 y wrR   rS   rl   s     rX   rY   z!detect_valence.<locals>.<genexpr>S   s     
111
1rZ   positivec              3   &   K   | ]  }|v  
 y wrR   rS   rl   s     rX   rY   z!detect_valence.<locals>.<genexpr>U   s     3QQ. 3rZ   negativer[   )r`   )rn   r   r   s   `  rX   detect_valencer   O   s2    ?H4H

1
11	3(3	3rg   c                     | dk\  ry| dk\  ryy)zDetermine arousal state.gffffff?overloadrj   	activatedr1   rS   )saliencern   s     rX   detect_arousalr   Y   s    3	Srg   c                     | j                  dd      }t        |      }t        ||      }t        |      }t	        ||      }t        |d      |||d| d<   | S )z
    Process a signal through amygdala.
    Reads: signal['raw_input']
    Writes: signal['amygdala'] block
    Returns: modified signal
    rb    rr   )r   rn   valencearousalamygdala)getrf   r   r   r   round)signalrawrc   r   r   r   s         rX   processr   a   sh     **["
%CDsD)HT"GXt,G (A&	F: Mrg   )__doc__ry   brain.stater   r   ru   r^   CONTENT_WORDSDETRACT_WORDSrf   r   r   r   r   rS   rg   rX   <module>r      sf    
 2  @KKSNOGHN
 ON	#Jrg   