Spaces:
Sleeping
Sleeping
| """ | |
| EMOTIONAL_VOCABULARY — Curated emotional word forces for Clanker | |
| Curation criteria: | |
| Source: curated from 46K entries, reduced to 2,315 high-signal words | |
| Cross-referenced with: 99,506 sentences from EmpatheticDialogues | |
| Inclusion rules: | |
| 1. Word appears >= 10 times in EmpatheticDialogues (real conversational usage) | |
| 2. |dV| >= 15 (meaningful emotional valence shift) | |
| 3. NOT a common object noun with no emotional weight (bagel, soup, table, etc.) | |
| 4. NOT a function word, pronoun, preposition, or generic verb | |
| 5. Known psychological emotion/feeling words included even if below freq threshold | |
| Result: 2,000 words kept, 44,101 dropped | |
| Tuple format: (dV, dA, dD, dU, dG) — deltas, not absolute values | |
| dV = Valence delta (-128 to +127) | |
| dA = Arousal delta | |
| dD = Dominance delta | |
| dU = Urgency delta | |
| dG = Gravity delta | |
| Categories (for reference, all merged into EMOTIONAL_VOCABULARY): | |
| cognitive_eval: 45 words | |
| crisis_words: 40 words | |
| emotion_words: 132 words | |
| general_emotional: 1680 words | |
| intensifiers: 18 words | |
| relationship_words: 43 words | |
| situation_words: 0 words | |
| slang: 42 words | |
| Built from mining EmpatheticDialogues x WORD_FORCES intersection. | |
| """ | |
| # Category index — words are tagged by category in comments | |
| # emotion_words: Direct emotion/feeling labels (happy, sad, angry, ...) | |
| # intensifiers: Amplifiers and degree modifiers (absolutely, extremely, ...) | |
| # relationship_words: Trust, loyalty, connection vocabulary (friend, betrayed, ...) | |
| # crisis_words: Trauma, danger, emergency vocabulary (suicide, abuse, dying, ...) | |
| # slang: Informal emotional language (awesome, sucks, pissed, ...) | |
| # cognitive_eval: Right/wrong/fair/deserve evaluative words | |
| # general_emotional: Other words with meaningful emotional force | |
| EMOTIONAL_VOCABULARY = { | |
| # ── EMOTION WORDS — Direct emotion/feeling labels ── | |
| 'abandoned': (-127, -6, -127, +0, -70), # freq=42 | |
| 'afraid': ( -78, +53, -87, +79, +27), # freq=666 | |
| 'agony': (-127, +119, -127, +97, -61), # freq=2 | |
| 'anger': ( -89, +127, +109, +77, +61), # freq=23 | |
| 'angry': (-102, +119, +109, +97, +73), # freq=642 | |
| 'anguish': (-127, +119, -127, +97, -85), # freq=5 | |
| 'annoyed': ( -42, +49, +22, +31, +20), # freq=364 | |
| 'anxiety': (-127, +127, -127, +127, +24), # freq=143 | |
| 'anxious': ( -52, +87, -114, +97, +29), # freq=390 | |
| 'appreciated': ( +42, -4, +37, +0, +19), # freq=87 | |
| 'ashamed': (-102, +74, -127, +39, -61), # freq=412 | |
| 'awe': ( +86, +47, +52, +6, -50), # freq=58 | |
| 'betrayed': (-106, +72, -82, +54, -51), # freq=16 | |
| 'brave': ( +28, +22, +52, +6, +14), # freq=52 | |
| 'broken': (-102, +45, -127, +57, -61), # freq=129 | |
| 'calm': ( +20, -40, +30, -10, +5), # liquid -- state=positive, command=negative | |
| 'comfort': ( +28, -9, +24, +0, +8), # freq=56 | |
| 'comfortable': ( +44, -27, -2, +0, +12), # freq=109 | |
| 'compassion': ( +90, +27, +77, +18, -29), # freq=21 | |
| 'confidence': ( +48, -18, +59, +0, +24), # freq=129 | |
| 'confident': ( +50, +40, +107, +0, +32), # freq=521 | |
| 'content': ( +58, -36, +17, +0, +19), # freq=369 | |
| 'cranky': ( -86, +74, -42, +50, -36), # freq=11 | |
| 'cruelty': (-114, +90, +17, +70, -36), # freq=8 | |
| 'crushed': (-102, +74, -127, +57, -108), # freq=37 | |
| 'delighted': ( +49, +38, +7, +1, +16), # freq=12 | |
| 'depressed': (-127, -26, -109, +63, -89), # freq=72 | |
| 'depression': (-127, -119, -127, +39, +97), # freq=39 | |
| 'despair': (-127, +33, -120, +95, -107), # freq=3 | |
| 'destroyed': (-122, +53, -66, +111, -54), # freq=75 | |
| 'determined': ( +51, +6, +49, +0, +24), # freq=31 | |
| 'devastated': (-127, +119, -127, +116, -108), # freq=351 | |
| 'disgust': ( -89, +90, +54, +39, +48), # freq=7 | |
| 'disgusted': (-127, +58, +54, +39, +36), # freq=287 | |
| 'distraught': (-106, +108, -104, +81, -53), # freq=16 | |
| 'dread': ( -89, +90, -127, +77, -48), # freq=15 | |
| 'ecstatic': ( +51, +51, +34, +0, +38), # freq=14 | |
| 'embarrassed': ( -67, +33, -55, +32, -18), # freq=384 | |
| 'empathy': ( +80, +33, +42, +12, -23), # freq=5 | |
| 'envy': ( -37, +22, -18, +13, +7), # freq=46 | |
| 'excited': ( +37, +42, +24, +12, +27), # freq=1261 | |
| 'excitement': ( +42, +15, +29, +1, +17), # freq=23 | |
| 'fear': ( -78, +53, -87, +79, +27), # freq=160 | |
| 'frustrated': ( -78, +46, -33, +79, +27), # freq=67 | |
| 'frustration': ( -52, +74, -67, +65, +20), # freq=16 | |
| 'furious': (-127, +127, +127, +127, +97), # freq=370 | |
| 'glad': ( +28, +13, +17, +0, +14), # freq=1505 | |
| 'gloomy': (-109, -24, -92, +0, -53), # freq=3 | |
| 'grateful': ( +28, +9, +17, +0, +10), # freq=434 | |
| 'gratitude': ( +90, +9, +77, +12, -23), # freq=4 | |
| 'grief': (-127, +74, -127, +57, -108), # freq=14 | |
| 'grumpy': ( -83, +83, +27, +57, -24), # freq=11 | |
| 'guilt': (-127, +127, -127, +127, +127), # freq=42 | |
| 'happy': ( +28, +8, +10, +0, +17), # freq=2606 | |
| 'hate': (-127, +119, +109, +116, +85), # freq=1146 | |
| 'hatred': (-127, +92, -32, +77, -51), # freq=5 | |
| 'haunted': ( -52, +63, -67, +31, -20), # freq=78 | |
| 'heartbroken': (-122, +40, -76, +47, -72), # freq=74 | |
| 'helpless': (-102, +45, -127, +77, -85), # freq=17 | |
| 'hesitant': ( -37, +9, -64, +6, -24), # freq=17 | |
| 'hope': ( +50, +29, +34, +12, +32), # freq=4362 | |
| 'hopeful': ( +37, +13, +34, +0, +23), # freq=341 | |
| 'hopeless': (-127, +58, -127, +127, -127), # freq=6 | |
| 'horrified': (-127, +103, -59, +86, -53), # freq=16 | |
| 'humiliated': (-112, +56, -124, +43, -58), # freq=28 | |
| 'hurt': ( -78, +33, -44, +47, -36), # freq=507 | |
| 'hurts': ( -78, +33, -44, +47, -36), # inflected form of hurt | |
| 'insecure': ( -42, +38, -114, +31, -29), # freq=13 | |
| 'inspired': ( +49, +15, +32, +0, +20), # freq=14 | |
| 'irritated': ( -81, +83, -97, +57, -43), # freq=75 | |
| 'jealous': ( -52, +63, -44, +31, +20), # freq=537 | |
| 'jealousy': ( -77, +74, -82, +39, +12), # freq=17 | |
| 'joy': ( +42, +27, +34, +0, +29), # freq=92 | |
| 'kindness': ( +44, -13, +2, +0, +13), # freq=30 | |
| 'livid': (-127, +127, +127, +77, +61), # freq=39 | |
| 'loneliness': ( -77, -15, -127, +19, -73), # freq=35 | |
| 'lonely': ( -77, -29, -127, +39, -73), # freq=534 | |
| 'love': ( +35, +12, +10, +0, +22), # freq=2464 | |
| 'loved': ( +42, +22, +24, +0, +27), # freq=422 | |
| 'miserable': (-127, +29, -127, +77, -108), # freq=55 | |
| 'motivated': ( +35, +29, +64, +4, +21), # freq=49 | |
| 'neglected': ( -52, -24, -122, +0, -38), # freq=11 | |
| 'nervous': ( -37, +33, -37, +53, +15), # freq=881 | |
| 'nostalgic': ( +28, +27, -24, +0, -10), # freq=406 | |
| 'optimistic': ( +80, +42, +59, +6, -29), # freq=74 | |
| 'overwhelmed': ( -89, +103, -127, +97, -61), # freq=27 | |
| 'pain': ( -89, +90, -127, +97, -48), # freq=256 | |
| 'panic': (-102, +127, -127, +127, +61), # freq=34 | |
| 'panicked': (-127, +127, -127, +127, +73), # freq=9 | |
| 'passionate': ( +51, +18, +34, +0, +20), # freq=18 | |
| 'peace': ( +32, -18, +34, +0, +10), # freq=136 | |
| 'peaceful': ( +32, -22, +34, +0, +8), # freq=53 | |
| 'pessimistic': (-127, -58, -54, +19, +73), # freq=7 | |
| 'pity': ( -94, -27, -127, +0, -61), # freq=21 | |
| 'pleased': ( +44, +4, +39, +0, +20), # freq=95 | |
| 'pride': ( +50, +40, +89, +0, +32), # freq=75 | |
| 'proud': ( +32, +22, +52, +0, +19), # freq=1038 | |
| 'rage': (-114, +127, +127, +127, +85), # freq=36 | |
| 'regret': ( -77, +45, -109, +39, -48), # freq=81 | |
| 'rejected': (-112, -6, -109, +0, -55), # freq=23 | |
| 'relief': ( +28, -13, +24, -6, +10), # freq=105 | |
| 'relieved': ( +50, -29, +54, -25, +16), # freq=47 | |
| 'reluctant': ( -49, +29, -22, +19, -20), # freq=9 | |
| 'restless': (-114, +127, -127, +127, +24), # freq=2 | |
| 'ruined': (-127, +90, -127, +77, -73), # freq=93 | |
| 'sad': ( -78, -13, -44, +16, -54), # freq=1459 | |
| 'sadness': ( -89, +29, -109, +19, -73), # freq=14 | |
| 'safe': ( +39, -20, +72, +0, +16), # freq=286 | |
| 'satisfied': ( +48, +0, +24, +0, +17), # freq=79 | |
| 'scared': (-102, +127, -127, +97, +48), # freq=1096 | |
| 'shame': ( -89, +58, -127, +39, -48), # freq=142 | |
| 'shattered': (-114, +103, -127, +77, -73), # freq=25 | |
| 'shocked': ( -42, +99, -67, +31, +20), # freq=342 | |
| 'startled': ( -37, +83, +9, +49, -12), # freq=25 | |
| 'stress': ( -52, +74, -67, +81, +9), # freq=171 | |
| 'stressed': ( -52, +74, -92, +97, +20), # freq=119 | |
| 'suffering': (-114, +74, -127, +77, -73), # freq=35 | |
| 'surprise': ( +28, +96, -24, +54, +34), # freq=405 | |
| 'sympathy': ( +71, +22, +52, +24, -23), # freq=6 | |
| 'terrified': (-122, +79, -120, +127, +45), # freq=366 | |
| 'terror': (-127, +127, -127, +127, +48), # freq=7 | |
| 'thrill': ( +41, +27, +29, +2, +16), # freq=15 | |
| 'thrilled': ( +80, +50, +40, +0, +35), # boosted — strong joy word like ecstatic | |
| 'torn': ( -52, +49, -67, +31, -29), # freq=36 | |
| 'trust': ( +28, +4, +34, +0, +8), # freq=438 | |
| 'uncomfortable': ( -42, +38, -67, +31, -9), # freq=51 | |
| 'uneasy': ( -37, +22, -27, +40, +7), # freq=43 | |
| 'upset': ( -77, +74, -54, +57, -24), # freq=693 | |
| 'valued': ( +51, +0, +42, +0, +21), # freq=8 | |
| 'worried': ( -42, +63, -92, +81, +20), # freq=525 | |
| 'worry': ( -42, +49, -67, +49, +9), # freq=340 | |
| 'worthless': (-127, +20, -127, +95, -89), # freq=10 | |
| 'wrecked': (-117, +33, -97, +27, -55), # freq=18 | |
| # ── INTENSIFIERS — Degree modifiers and amplifiers ── | |
| 'awfully': ( -94, +0, -37, +0, -39), # freq=6 | |
| 'constantly': ( +35, +9, +57, +2, +20), # freq=54 | |
| 'desperately': ( -94, +121, -127, +89, -55), # freq=10 | |
| 'especially': ( +28, +27, +24, +0, +10), # freq=486 | |
| 'extremely': ( +29, +56, +112, +18, +27), # freq=112 | |
| 'fairly': ( +29, -6, +34, +0, +14), # freq=50 | |
| 'hardly': ( -94, -90, -22, +0, -36), # freq=74 | |
| 'honestly': ( +50, +2, +29, +0, +20), # freq=185 | |
| 'horribly': (-127, +36, -22, +27, -46), # freq=21 | |
| 'incredibly': ( +35, +11, +2, +1, +10), # freq=54 | |
| 'insanely': ( -94, +127, -104, +97, -51), # freq=11 | |
| 'never': ( -28, +11, -9, +13, -7), # freq=2470 | |
| 'pretty': ( +50, +20, +17, +0, +24), # freq=2066 | |
| 'quite': ( -29, -63, -27, +0, -13), # freq=686 | |
| 'rather': ( -27, -49, -32, +0, -13), # freq=138 | |
| 'really': ( +28, +40, +24, +0, +10), # freq=7818 | |
| 'terribly': (-123, +63, -32, +50, -48), # freq=47 | |
| 'truly': ( +28, +40, +24, +0, +10), # freq=170 | |
| # ── RELATIONSHIP WORDS — Trust, connection, bonds ── | |
| 'alone': ( -67, -13, -44, +16, -45), # freq=792 | |
| 'apart': ( -52, +38, -92, +31, -40), # freq=96 | |
| 'attachment': ( +57, +18, +59, +6, +10), # freq=7 | |
| 'bond': ( +39, +20, +54, +0, +16), # freq=47 | |
| 'breakup': (-127, +127, -127, +39, +97), # freq=10 | |
| 'brother': ( +29, +20, +17, +12, +8), # freq=876 | |
| 'caring': ( +29, -6, +0, +0, +8), # freq=329 | |
| 'cheated': (-127, +127, -127, +116, -48), # freq=154 | |
| 'cheating': (-127, +127, -127, +116, -48), # freq=117 | |
| 'cold': ( -24, +13, -24, +18, -10), # freq=129 | |
| 'commitment': ( +39, +29, +72, +12, +16), # freq=17 | |
| 'couple': ( +32, +4, +7, +1, +10), # freq=517 | |
| 'daughter': ( +39, +20, +17, +12, +16), # freq=784 | |
| 'dishonest': ( -86, -2, -127, +0, -53), # freq=4 | |
| 'distant': ( -77, -47, -97, +0, -43), # freq=17 | |
| 'divorce': (-114, +103, -127, +97, -73), # freq=61 | |
| 'enemy': (-127, +127, -54, +127, +73), # freq=10 | |
| 'faithful': ( +28, +9, +34, +0, +8), # freq=334 | |
| 'fake': ( -67, +26, +22, +32, +18), # freq=34 | |
| 'family': ( +50, +20, +34, +12, +16), # freq=1932 | |
| 'friend': ( +29, +9, +7, +0, +12), # freq=2828 | |
| 'friendship': ( +48, -13, +27, +0, +17), # freq=51 | |
| 'honest': ( +39, +20, +54, +0, +16), # freq=171 | |
| 'honesty': ( +71, +4, +77, +0, -10), # freq=13 | |
| 'husband': ( +66, +18, +59, +6, +10), # freq=860 | |
| 'liar': (-102, +103, +82, +57, +48), # freq=13 | |
| 'lover': ( +35, +27, +27, +3, +14), # freq=25 | |
| 'loving': ( +35, +9, +19, +1, +13), # freq=76 | |
| 'loyalty': ( +50, +20, +72, +0, +16), # freq=18 | |
| 'lying': ( -81, +54, -82, +39, -40), # freq=55 | |
| 'marriage': ( +66, +27, +67, +6, +23), # freq=90 | |
| 'mother': ( +50, +20, +34, +12, +16), # freq=392 | |
| 'parent': ( +28, +27, +49, +35, +10), # freq=158 | |
| 'partner': ( +62, +13, +59, +6, +4), # freq=219 | |
| 'relationship': ( +37, +4, +12, +1, +13), # freq=315 | |
| 'sister': ( +29, +20, +17, +12, +8), # freq=537 | |
| 'son': ( +39, +20, +17, +12, +16), # freq=898 | |
| 'spouse': ( +56, +18, +42, +4, +23), # freq=58 | |
| 'supportive': ( +39, -6, +19, +0, +14), # freq=78 | |
| 'together': ( +39, +20, +34, +0, +16), # freq=689 | |
| 'unfaithful': (-127, +83, -87, +70, -61), # freq=9 | |
| 'wedding': ( +32, +27, +24, +6, +23), # freq=197 | |
| 'wife': ( +66, +18, +59, +6, +10), # freq=999 | |
| # ── CRISIS WORDS — Trauma, danger, emergency ── | |
| 'abuse': (-127, +119, -127, +127, -73), # freq=44 | |
| 'abused': (-127, +119, -127, +127, -73), # freq=35 | |
| 'accident': (-104, +110, -69, +81, -48), # freq=242 | |
| 'addicted': (-102, +74, -127, +97, -73), # freq=19 | |
| 'addiction': (-102, +74, -127, +97, -73), # freq=31 | |
| 'attack': ( -51, +99, +64, +61, -5), # freq=81 | |
| 'bleeding': ( -77, +90, -109, +97, -36), # freq=12 | |
| 'crash': ( -67, +40, -44, +111, -36), # freq=76 | |
| 'crisis': ( -89, +119, -127, +127, -36), # freq=9 | |
| 'cry': ( -20, +40, -25, +20, +30), # liquid -- happy tears vs sad tears. High G, reduced V. | |
| 'crying': ( -25, +35, -20, +25, +30), | |
| 'danger': ( -77, +119, -127, +127, +24), # freq=16 | |
| 'dangerous': (-127, +119, +69, +100, -34), # freq=103 | |
| 'dead': (-114, +45, -127, +39, -97), # freq=155 | |
| 'death': (-127, +103, -127, +116, -85), # freq=139 | |
| 'die': (-127, +127, -127, +127, -121), # freq=146 | |
| 'dying': (-102, +103, -127, +116, -85), # freq=53 | |
| 'emergency': ( -89, +127, -127, +127, -36), # freq=80 | |
| 'harm': ( -77, +58, +54, +57, -12), # freq=46 | |
| 'harmful': (-102, +74, +54, +57, +24), # freq=4 | |
| 'healing': ( +56, -9, +24, +0, +20), # freq=28 | |
| 'homeless': (-127, +90, -127, +127, -108), # freq=90 | |
| 'hospital': ( -77, +90, -127, +127, -48), # freq=192 | |
| 'killing': ( -77, +127, +82, +127, +48), # freq=34 | |
| 'loss': ( -60, +20, -55, +35, -40), # grief: bereavement, deprivation | |
| 'lost': ( -46, +11, -55, +40, -30), # freq=808 | |
| 'murder': (-123, +119, +49, +97, -34), # freq=10 | |
| 'poverty': (-127, +20, -109, +127, +80), # freq=4 | |
| 'recovery': ( +39, +29, +54, +25, +16), # freq=22 | |
| 'scream': ( -52, +127, +44, +97, +50), # freq=33 | |
| 'screaming': ( -77, +127, +54, +97, +48), # freq=41 | |
| 'starving': ( -52, +63, -67, +81, -29), # freq=26 | |
| 'suicidal': (-127, +127, -127, +127, -127), # freq=7 | |
| 'suicide': (-127, +79, -127, +127, -98), # freq=6 | |
| 'toxic': (-114, +90, +54, +57, +48), # freq=2 | |
| 'trauma': (-127, +127, -127, +127, +85), # freq=20 | |
| 'traumatic': (-123, +103, -32, +86, -48), # freq=20 | |
| 'victim': (-102, +74, -127, +77, -61), # freq=6 | |
| 'violence': (-123, +117, +97, +93, -27), # freq=2 | |
| 'violent': (-109, +112, +49, +86, -28), # freq=9 | |
| 'wound': ( -52, +49, -67, +49, -29), # freq=22 | |
| # ── SLANG — Informal emotional language ── | |
| 'amazing': ( +48, +38, +34, +0, +29), # freq=995 | |
| 'awesome': ( +65, +35, +30, +0, +25), # boosted — strong positive exclamation | |
| 'awful': (-127, +74, -82, +57, -61), # freq=473 | |
| 'basic': ( -77, -45, -54, +0, +12), # freq=25 | |
| 'blessed': ( +28, +6, +14, +0, +14), # freq=67 | |
| 'bomb': ( -94, +110, +109, +81, -14), # freq=29 | |
| 'brutal': (-102, +119, +82, +77, -24), # freq=21 | |
| 'bummed': ( -47, -15, -87, +0, -29), # freq=76 | |
| 'crap': ( -37, +11, -9, +13, -7), # freq=52 | |
| 'crazy': ( -24, +83, +24, +35, +23), # freq=541 | |
| 'cringe': (-127, +103, -127, +39, +36), # freq=15 | |
| 'cursed': ( -89, +33, -55, +47, -45), # freq=7 | |
| 'damn': ( -32, +49, +22, +31, +9), # freq=74 | |
| 'deadly': (-100, +92, +22, +70, -31), # freq=10 | |
| 'disgusting': (-122, +53, +33, +47, +54), # freq=157 | |
| 'dreadful': (-122, +46, -87, +79, -54), # freq=8 | |
| 'extra': ( -52, +74, -44, +15, +9), # freq=283 | |
| 'fantastic': ( +31, +12, +14, +0, +20), # freq=101 | |
| 'garbage': ( -89, +45, -54, +39, -36), # freq=66 | |
| 'gross': ( -77, +58, +27, +19, +36), # freq=377 | |
| 'hell': ( -37, +28, +9, +26, -30), # freq=61 | |
| 'horrible': (-122, +46, -22, +79, -36), # freq=517 | |
| 'hyped': ( +46, +13, +49, +2, +23), # freq=23 | |
| 'insane': ( -28, +44, +18, +40, +22), # freq=73 | |
| 'killer': (-127, +127, +0, +104, -43), # freq=21 | |
| 'legit': ( +55, -13, +102, +0, +32), # freq=11 | |
| 'lit': ( +62, +51, +52, +6, -23), # freq=9 | |
| 'mood': ( +28, -4, +24, +0, -8), # freq=76 | |
| 'nuts': ( +28, -60, -84, +0, -6), # freq=50 | |
| 'oof': ( -77, +45, -109, +19, +24), # freq=24 | |
| 'pathetic': (-100, +20, -76, +32, -54), # freq=9 | |
| 'petty': ( -81, +9, -114, +7, -48), # freq=14 | |
| 'pissed': (-127, +127, +109, +127, +36), # freq=85 | |
| 'screwed': (-127, +127, -127, +127, +61), # freq=14 | |
| 'shady': ( -40, +2, -44, +0, -21), # freq=26 | |
| 'sick': ( -77, +45, -127, +57, -36), # freq=612 | |
| 'sketchy': ( -37, -4, -77, +0, -25), # freq=25 | |
| 'suck': ( -36, +47, -44, +25, -20), # freq=58 | |
| 'sucks': ( -67, +26, -11, +32, -18), # freq=589 | |
| 'terrible': (-111, +40, -22, +63, -36), # freq=856 | |
| 'wonderful': ( +42, +22, +24, +0, +23), # freq=515 | |
| 'yikes': ( -52, +63, -44, +15, +9), # freq=111 | |
| # ── COGNITIVE/EVALUATIVE — Right, wrong, fair, deserve ── | |
| 'accomplishment': ( +43, +15, +52, +1, +21), # freq=89 | |
| 'ache': ( -52, +20, -44, +25, -30), # grief: persistent pain | |
| 'aching': ( -52, +20, -44, +25, -30), # grief: persistent pain | |
| 'achieve': ( +28, +22, +42, +6, +19), # freq=43 | |
| 'achievement': ( +42, +27, +34, +2, +17), # freq=32 | |
| 'agree': ( +29, +9, +34, +0, +16), # freq=625 | |
| 'believe': ( +39, +20, +54, +12, +24), # freq=963 | |
| 'blame': ( -52, +63, +44, +31, +20), # freq=129 | |
| 'certain': ( +29, +20, +89, +12, +8), # freq=122 | |
| 'choice': ( +42, +42, +102, +67, +10), # freq=168 | |
| 'choose': ( +51, +33, +94, +55, +8), # freq=52 | |
| 'clear': ( +29, +9, +54, +0, +16), # freq=65 | |
| 'decide': ( +28, +40, +99, +35, +10), # freq=71 | |
| 'decision': ( +32, +2, +97, +0, +25), # freq=117 | |
| 'defeat': ( -77, +74, -127, +39, -48), # freq=4 | |
| 'deserved': ( +29, +6, +24, +1, +13), # freq=75 | |
| 'difficult': ( -28, +17, -18, +40, -7), # freq=314 | |
| 'doubt': ( -32, +24, -67, +31, -20), # freq=92 | |
| 'easy': ( +29, -20, +54, +0, +16), # freq=330 | |
| 'failure': ( -89, +58, -127, +57, -61), # freq=20 | |
| 'false': (-127, +90, -109, +57, +36), # freq=13 | |
| 'fault': ( -37, +17, -9, +26, -15), # freq=136 | |
| 'fight': ( -42, +99, +92, +81, +29), # freq=175 | |
| 'fighting': ( -77, +119, +82, +97, +36), # freq=52 | |
| 'fought': ( -94, +51, +17, +39, -28), # freq=8 | |
| 'hard': ( -24, +27, +49, +35, -10), # freq=2616 | |
| 'impossible': ( -52, +38, -92, +31, -29), # freq=37 | |
| 'irresponsible': ( -92, +47, -114, +34, -51), # freq=26 | |
| 'mistake': ( -46, +17, -27, +40, -15), # freq=153 | |
| 'overcome': ( +50, +49, +107, +12, +32), # freq=57 | |
| 'possible': ( +21, +6, +10, +15, +8), # freq=171 | |
| 'purpose': ( +39, +29, +54, +12, +24), # freq=47 | |
| 'quit': ( -32, +24, -67, +31, -20), # freq=127 | |
| 'reason': ( +28, +27, +74, +35, +10), # freq=426 | |
| 'responsible': ( +35, +2, +47, +0, +17), # freq=62 | |
| 'result': ( +28, +40, +74, +54, +10), # freq=55 | |
| 'significant': ( +34, +11, +39, +2, +16), # freq=24 | |
| 'struggle': ( -52, +63, -92, +65, -29), # freq=48 | |
| 'success': ( +32, +22, +42, +0, +19), # freq=77 | |
| 'survive': ( +28, +54, +99, +54, +10), # freq=44 | |
| 'true': ( +86, +13, +112, +12, +19), # freq=746 | |
| 'understand': ( +28, +27, +49, +18, +10), # freq=981 | |
| 'unfair': ( -92, -9, -127, +0, -53), # freq=41 | |
| 'villain': ( -92, +103, +37, +73, -24), # freq=3 | |
| 'win': ( +24, +12, +21, +5, +20), # freq=523 | |
| 'winning': ( +32, +22, +42, +0, +19), # freq=114 | |
| 'wrong': ( -42, +24, -44, +49, -9), # freq=495 | |
| # ── GENERAL EMOTIONAL — Other words with meaningful emotional force ── | |
| 'abilities': ( +51, +2, +47, +0, +23), # freq=35 | |
| 'ability': ( +39, +0, +39, +0, +17), # freq=36 | |
| 'able': ( +28, +13, +74, +0, +10), # freq=1446 | |
| 'abroad': ( +37, +18, +17, +4, +14), # freq=31 | |
| 'absolute': ( +48, +9, +102, +18, +38), # freq=25 | |
| 'abusive': (-104, +108, +27, +81, -31), # freq=26 | |
| 'accept': ( +39, +9, +54, +0, +16), # freq=58 | |
| 'acceptance': ( +50, +9, +54, +0, +16), # freq=15 | |
| 'access': ( +48, -6, +17, +0, +17), # freq=21 | |
| 'accidentally': ( -37, +54, -59, +31, -24), # freq=158 | |
| 'account': ( +50, +29, +107, +63, +8), # freq=61 | |
| 'accused': (-104, +45, -32, +34, -40), # freq=24 | |
| 'ace': ( +32, -4, +14, +0, +10), # freq=47 | |
| 'achieved': ( +42, +2, +37, +0, +17), # freq=19 | |
| 'across': ( +28, +27, +49, +18, +0), # freq=161 | |
| 'act': ( +34, +36, +69, +9, +20), # freq=95 | |
| 'acting': ( +43, +24, +0, +7, +12), # freq=71 | |
| 'action': ( +58, +72, +87, +15, +31), # freq=35 | |
| 'active': ( +35, +20, +29, +2, +16), # freq=22 | |
| 'activities': ( +35, +42, +22, +6, +13), # freq=30 | |
| 'activity': ( +43, +27, +89, +7, +27), # freq=21 | |
| 'actual': ( +50, -18, +62, +0, +25), # freq=41 | |
| 'add': ( +50, -2, +14, +0, +17), # freq=29 | |
| 'addict': (-119, +54, -77, +43, -53), # freq=19 | |
| 'admirable': ( +44, +9, +52, +0, +21), # freq=12 | |
| 'admitted': ( +48, -2, +74, +0, +27), # freq=16 | |
| 'adopt': ( +42, +20, +57, +4, +23), # freq=43 | |
| 'adoption': ( +50, +40, +54, +25, +24), # freq=17 | |
| 'adorable': ( +32, +18, +7, +0, +19), # freq=55 | |
| 'adult': ( +32, +0, +39, +0, +16), # freq=91 | |
| 'advance': ( +37, -6, +104, +0, +28), # freq=58 | |
| 'advantage': ( +80, +51, +102, +36, -27), # freq=44 | |
| 'adventure': ( +50, +58, +54, +12, +40), # freq=37 | |
| 'advice': ( +43, -15, +54, +0, +23), # freq=135 | |
| 'affair': (-114, +119, -109, +97, -36), # freq=15 | |
| 'afford': ( -32, +38, -67, +65, -20), # freq=244 | |
| 'against': ( -32, +49, +44, +49, +20), # freq=96 | |
| 'aged': (-102, -36, -114, +0, -55), # freq=11 | |
| 'aggravating': ( -57, +51, +49, +31, -12), # freq=32 | |
| 'aggressive': ( -52, +87, +67, +65, +29), # freq=24 | |
| 'agreed': ( +31, -4, +9, +0, +10), # freq=72 | |
| 'ahead': ( +46, +4, +49, +0, +23), # freq=129 | |
| 'aid': ( +41, +0, +4, +0, +13), # freq=19 | |
| 'air': ( +39, +9, +17, +0, -24), # freq=85 | |
| 'airplane': ( +48, +36, +62, +7, +24), # freq=34 | |
| 'airport': ( +32, +69, +77, +103, +34), # freq=59 | |
| 'alarm': ( -32, +74, -22, +97, +20), # freq=42 | |
| 'album': ( +29, -27, -14, +0, +6), # freq=39 | |
| 'alcohol': ( -32, +38, -22, +31, -9), # freq=46 | |
| 'alive': ( +28, +18, +24, +6, +14), # freq=115 | |
| 'allergic': (-102, +11, -97, +11, -51), # freq=31 | |
| 'allergies': ( -94, +0, -127, +0, -55), # freq=14 | |
| 'allergy': ( -77, +58, -109, +127, +12), # freq=10 | |
| 'alley': ( -36, +0, -54, +0, -20), # freq=19 | |
| 'allowed': ( +50, -24, +42, +0, +23), # freq=49 | |
| 'along': ( +21, -20, -9, +0, +5), # freq=198 | |
| 'alright': ( +24, -29, +9, +0, +9), # freq=194 | |
| 'amazed': ( +31, +22, +4, +3, +9), # freq=80 | |
| 'amusement': ( +44, +27, +39, +1, +20), # freq=54 | |
| 'animal': ( +28, +27, +24, +0, +10), # freq=178 | |
| 'anniversary': ( +39, +29, +34, +0, +24), # freq=94 | |
| 'annoy': (-114, +72, -92, +54, -55), # freq=13 | |
| 'annoying': ( -52, +49, +22, +31, +20), # freq=403 | |
| 'annoys': (-100, +74, -27, +54, -39), # freq=13 | |
| 'answer': ( +29, +20, +54, +12, +16), # freq=83 | |
| 'anymore': ( -32, +24, -44, +15, -9), # freq=357 | |
| 'anywhere': ( +29, -24, -42, +0, +1), # freq=108 | |
| 'apartments': ( +43, -29, -17, +0, +9), # freq=15 | |
| 'apologized': ( +35, -29, -79, +0, -2), # freq=35 | |
| 'apple': ( +62, +4, +52, +6, -10), # freq=39 | |
| 'application': ( +32, -9, +64, +0, +20), # freq=36 | |
| 'applied': ( +29, +27, +32, +4, +14), # freq=152 | |
| 'appointment': ( +42, +15, +14, +4, +14), # freq=80 | |
| 'appreciate': ( +21, +4, +10, +0, +8), # freq=232 | |
| 'appreciates': ( +58, +0, +42, +0, +24), # freq=18 | |
| 'appreciation': ( +71, +33, +77, +12, -23), # freq=10 | |
| 'appreciative': ( +36, -11, +19, +0, +14), # freq=49 | |
| 'apprehensive': ( -24, +22, -29, +11, -13), # freq=232 | |
| 'approaching': ( +51, +9, -2, +2, +14), # freq=11 | |
| 'approved': ( +35, -13, +27, +0, +14), # freq=54 | |
| "aren't": ( -24, +13, +0, +18, +0), # freq=219 | |
| 'argue': ( -42, +74, +44, +49, +20), # freq=23 | |
| 'argument': ( -52, +87, +44, +65, +20), # freq=49 | |
| 'arranged': ( +43, +6, +64, +2, +24), # freq=13 | |
| 'arrested': ( -89, +119, -127, +127, -36), # freq=42 | |
| 'arrive': ( +35, -6, +12, +0, +12), # freq=42 | |
| 'arrived': ( +39, +29, +54, +0, +16), # freq=48 | |
| 'art': ( +39, +29, +34, +0, +24), # freq=49 | |
| 'asleep': ( +37, -47, +34, +0, -23), # freq=91 | |
| 'assertive': ( +48, -15, +79, +0, +27), # freq=14 | |
| 'assume': ( +43, -18, -9, +0, +10), # freq=44 | |
| 'assuming': ( +51, -20, +7, +0, +16), # freq=30 | |
| 'assured': ( +39, -15, +34, +0, +17), # freq=16 | |
| 'athletic': ( +36, +24, +29, +3, +16), # freq=41 | |
| 'attend': ( +32, -13, +34, +0, +16), # freq=69 | |
| 'attention': ( +51, +18, +79, +4, +28), # freq=134 | |
| 'attic': ( +28, -54, -74, +18, +44), # freq=49 | |
| 'attitude': ( +58, +24, +104, +4, +34), # freq=107 | |
| 'attractive': ( +50, +29, +34, +0, +24), # freq=32 | |
| 'aunt': ( +32, +9, +34, +0, +8), # freq=116 | |
| 'autoimmune': ( -94, +90, -124, +66, -53), # freq=12 | |
| 'available': ( +28, -11, +17, +0, +10), # freq=52 | |
| # 'average' removed — neutral factual word causing positive drift | |
| 'award': ( +37, +20, +22, +2, +14), # freq=53 | |
| 'awkward': ( -32, +38, -92, +15, -9), # freq=92 | |
| 'babies': ( +42, +27, -27, +2, +8), # freq=108 | |
| 'babysit': ( +48, +15, -29, +2, +9), # freq=30 | |
| 'bacon': ( +66, +33, +34, +30, +10), # freq=12 | |
| 'bad': ( -77, +29, -54, +39, -24), # freq=2987 | |
| 'barely': ( -50, +15, -45, +25, -30), # grief: struggling, minimal capacity | |
| 'badly': (-119, +2, -92, +3, -58), # freq=99 | |
| 'bahamas': ( +35, +20, +0, +2, +9), # freq=20 | |
| 'bake': ( +39, +20, +54, +0, +16), # freq=22 | |
| 'baked': ( +31, -36, -2, +0, +8), # freq=42 | |
| 'balance': ( +39, -40, +69, +0, +23), # freq=40 | |
| 'banana': ( +57, +4, +52, +12, -10), # freq=14 | |
| 'band': ( +32, +9, +7, +2, +10), # freq=133 | |
| 'bang': ( -55, +101, +87, +65, -4), # freq=20 | |
| 'bank': ( +39, +40, +127, +77, +88), # freq=130 | |
| 'baseball': ( +35, +45, +17, +12, +12), # freq=87 | |
| 'based': ( +48, +13, +67, +0, +8), # freq=50 | |
| 'basement': ( -32, -24, -92, +15, +81), # freq=92 | |
| 'basketball': ( +32, +22, -7, +3, +8), # freq=45 | |
| 'bat': ( -40, -20, -9, +0, -16), # freq=37 | |
| 'bathing': ( +51, -40, -39, +0, +8), # freq=10 | |
| 'battle': ( -32, +87, +92, +65, +20), # freq=30 | |
| 'beaches': ( +37, +0, +2, +0, +10), # freq=19 | |
| 'bear': ( +42, +38, +84, +24, +27), # freq=36 | |
| 'beat': ( -51, +31, -4, +19, -17), # freq=125 | |
| 'beaten': (-117, +92, -104, +73, -58), # freq=13 | |
| 'beating': ( -96, +90, -9, +66, -34), # freq=20 | |
| 'beautiful': ( +28, +6, +7, +0, +14), # freq=259 | |
| 'beauty': ( +35, +9, +19, +1, +13), # freq=21 | |
| 'became': ( +28, +40, +49, +35, +10), # freq=78 | |
| 'become': ( +37, +33, +67, +18, -8), # freq=157 | |
| 'beef': ( +51, +9, +42, +18, +14), # freq=12 | |
| 'begging': ( -49, -9, -109, +0, -34), # freq=20 | |
| 'behave': ( +37, -24, +72, +0, +23), # freq=22 | |
| 'behavior': ( +28, -13, +124, +0, +28), # freq=65 | |
| 'behind': ( -32, +24, -44, +31, -20), # freq=229 | |
| 'belief': ( +42, -11, +19, +0, +16), # freq=17 | |
| 'believed': ( +39, +20, +54, +12, +8), # freq=36 | |
| 'bench': ( +66, -33, +59, +0, +29), # freq=23 | |
| 'best': ( +37, +22, +34, +0, +23), # freq=1882 | |
| 'bet': ( +32, +18, +42, +12, -4), # freq=1547 | |
| 'betrayal': (-114, +119, -127, +77, -48), # freq=10 | |
| 'better': ( +29, +9, +14, +10, +12), # freq=2110 | |
| 'bicycle': ( +46, +4, -22, +0, +9), # freq=21 | |
| 'bid': ( +58, +6, +42, +0, +24), # freq=11 | |
| 'big': ( +32, +22, +94, +12, +53), # freq=1198 | |
| 'bigger': ( +35, -2, +47, +0, +17), # freq=72 | |
| 'biggest': ( +42, +0, +69, +0, +24), # freq=76 | |
| 'bills': ( -52, +49, -67, +81, -29), # freq=190 | |
| 'binge': ( -47, +36, +0, +19, -16), # freq=31 | |
| 'bipolar': (-127, +73, -98, +95, +36), # freq=11 | |
| 'bird': ( +28, +27, +24, +0, +34), # freq=60 | |
| 'birth': ( +39, +58, -17, +38, +24), # freq=44 | |
| 'birthday': ( +50, +40, +34, +0, +32), # freq=766 | |
| 'bit': ( +29, +9, +17, +12, +0), # freq=835 | |
| 'bite': ( -52, +74, +44, +65, +9), # freq=46 | |
| 'bitten': ( -83, +90, -127, +62, -53), # freq=12 | |
| 'bitter': ( -42, +24, +22, +15, -9), # freq=12 | |
| 'black': ( -32, +24, +67, +15, +29), # freq=119 | |
| 'blamed': ( -86, +72, -127, +50, -55), # freq=34 | |
| 'blast': ( -94, +117, +119, +81, -12), # freq=102 | |
| 'bless': ( +50, +20, +54, +0, +24), # freq=23 | |
| 'blessing': ( +44, -20, +39, +0, +20), # freq=63 | |
| 'blessings': ( +44, -11, +17, +0, +16), # freq=19 | |
| 'blew': ( -81, +11, +0, +7, -28), # freq=44 | |
| 'blind': ( -42, +24, -92, +31, -20), # freq=41 | |
| 'block': ( -32, +24, -67, +31, -20), # freq=36 | |
| 'blow': ( -42, +54, +27, +31, -9), # freq=38 | |
| 'blown': ( -37, +9, -32, +6, -17), # freq=28 | |
| 'blue': ( +39, -20, +34, +0, -16), # freq=104 | |
| 'board': ( +28, -60, -44, +0, +0), # freq=62 | |
| 'bonus': ( +50, +40, +54, +12, +32), # freq=98 | |
| 'books': ( +50, -69, -22, +0, +10), # freq=89 | |
| 'boost': ( +37, +20, +34, +2, +16), # freq=18 | |
| 'boring': ( -24, -83, -24, +0, -23), # freq=104 | |
| 'born': ( +50, +49, +17, +12, +32), # freq=190 | |
| 'boss': ( -24, +40, +24, +54, +0), # freq=395 | |
| 'bother': ( -81, +74, -54, +50, -39), # freq=88 | |
| 'bothering': ( -81, +72, -22, +50, -31), # freq=26 | |
| 'bout': ( +62, +74, +77, +73, +14), # freq=25 | |
| 'bowling': ( +34, -11, -54, +0, +1), # freq=33 | |
| 'boyfriend': ( +62, +38, +42, +12, -10), # freq=343 | |
| 'boys': ( +35, +54, -9, +15, +8), # freq=47 | |
| 'breakfast': ( +29, +9, +17, +0, +8), # freq=64 | |
| 'breaking': ( -77, +103, -82, +77, -36), # freq=85 | |
| 'breast': ( +56, -11, +0, +0, +16), # freq=17 | |
| 'bright': ( +50, +29, +34, +0, +32), # freq=76 | |
| 'brilliant': ( +42, +27, +42, +0, +27), # freq=21 | |
| 'broke': ( -89, +74, -127, +77, -61), # freq=437 | |
| 'brownies': ( +51, -27, -2, +0, +14), # freq=17 | |
| 'buddies': ( +35, +15, +29, +2, +14), # freq=25 | |
| 'buddy': ( +29, +20, +17, +0, +8), # freq=155 | |
| 'buffet': ( +34, +9, +7, +2, +10), # freq=24 | |
| 'bug': ( -32, +38, -44, +81, -9), # freq=56 | |
| # 'building' removed — neutral factual word with extreme D/G bias | |
| 'bully': ( -57, +58, +22, +35, -16), # freq=10 | |
| 'bummer': ( -94, +0, -104, +0, -48), # freq=139 | |
| 'bump': ( -51, -9, -49, +0, -25), # freq=14 | |
| 'bunch': ( +48, +22, +42, +12, +10), # freq=245 | |
| 'bunny': ( +51, -31, -87, +0, +0), # freq=11 | |
| 'burden': (-102, +45, -127, +57, -97), # freq=19 | |
| 'burger': ( +48, +18, +17, +18, +10), # freq=59 | |
| 'burn': ( -79, +74, +4, +50, -27), # freq=36 | |
| 'burned': ( -42, +49, -44, +49, +20), # freq=46 | |
| 'burnt': (-102, +58, -82, +39, +24), # freq=12 | |
| 'burrito': ( +62, +27, +24, +43, +14), # freq=12 | |
| 'burst': ( -96, +103, +127, +77, -6), # freq=20 | |
| 'business': ( +28, +40, +99, +54, +34), # freq=262 | |
| 'busted': ( -83, +47, -64, +30, -39), # freq=22 | |
| 'busy': ( -32, +123, +44, +127, +20), # freq=264 | |
| 'butt': ( -36, +49, -59, +29, -21), # freq=52 | |
| 'button': ( +29, +29, +54, +25, +0), # freq=45 | |
| 'buying': ( +35, +51, +24, +15, +14), # freq=132 | |
| 'cage': ( -52, +38, -127, +31, -40), # freq=23 | |
| 'cake': ( +62, +18, +17, +6, -10), # freq=277 | |
| 'calming': ( +39, -38, -17, +0, +9), # freq=15 | |
| 'camping': ( +34, +6, -7, +2, +9), # freq=154 | |
| "can't": ( -28, +11, -27, +26, -7), # freq=2052 | |
| 'cancel': ( -79, -51, -59, +0, -36), # freq=91 | |
| 'canceled': ( -52, +49, -67, +49, -29), # freq=42 | |
| 'cancelled': ( -52, +49, -67, +49, -29), # freq=52 | |
| 'cancer': (-127, +103, -127, +127, -97), # freq=192 | |
| 'candy': ( +62, +38, +17, +18, -14), # freq=129 | |
| 'cannot': ( -55, -29, -49, +0, -25), # freq=198 | |
| 'capable': ( +58, +15, +14, +2, +19), # freq=16 | |
| 'care': ( +29, +20, +34, +12, +35), # embrace -- high G. to care = to hold. | |
| 'career': ( +51, +38, +29, +7, +20), # freq=104 | |
| 'carefree': ( +56, -49, +0, +0, +16), # freq=15 | |
| 'careful': ( +28, +13, +74, +18, +0), # freq=165 | |
| 'careless': ( -32, +24, -44, +15, +0), # freq=29 | |
| 'carnival': ( +44, +33, +7, +2, +14), # freq=19 | |
| 'carry': ( +39, +90, +127, +103, +88), # freq=64 | |
| 'cash': ( +80, +60, +94, +61, +19), # freq=86 | |
| 'cat': ( +29, +9, +17, +0, +16), # freq=724 | |
| 'catch': ( +28, +40, +49, +35, +10), # freq=236 | |
| 'caught': ( -32, +49, -44, +49, -9), # freq=289 | |
| 'caused': ( -36, +4, -39, +3, -20), # freq=71 | |
| 'celebrate': ( +42, +38, +34, +0, +29), # freq=111 | |
| 'celebrated': ( +39, +15, +34, +1, +17), # freq=27 | |
| 'celebrating': ( +44, +22, +37, +1, +19), # freq=25 | |
| 'celebration': ( +44, +27, +52, +1, +21), # freq=16 | |
| 'center': ( +32, -47, -22, +0, +6), # freq=34 | |
| 'ceo': ( +48, +51, +84, +55, +29), # freq=12 | |
| 'cereal': ( +37, +9, +34, +49, -4), # freq=18 | |
| 'ceremony': ( +58, +9, +74, +2, +28), # freq=13 | |
| 'certainly': ( +29, +20, +54, +0, +16), # freq=149 | |
| 'certification': ( +34, +2, +22, +0, +13), # freq=34 | |
| 'championship': ( +35, +24, +52, +3, +19), # freq=20 | |
| 'chance': ( +28, +40, +24, +35, +23), # freq=270 | |
| 'character': ( +35, -22, +54, +0, +19), # freq=50 | |
| 'charity': ( +66, +9, +52, +6, -14), # freq=42 | |
| 'chase': ( -32, +99, +67, +97, +29), # freq=28 | |
| 'chased': ( -86, +90, -92, +62, -46), # freq=29 | |
| 'chat': ( +50, -18, -42, +0, +8), # freq=52 | |
| 'cheat': ( -89, +74, +82, +57, +24), # freq=106 | |
| 'cheer': ( +44, +24, +47, +1, +21), # freq=43 | |
| 'cheesecake': ( +37, -18, -34, +0, +5), # freq=36 | |
| 'chef': ( +36, -6, +9, +0, +12), # freq=18 | |
| 'chemistry': ( +28, +4, +57, +0, +17), # freq=43 | |
| 'cherish': ( +37, +13, +24, +0, +14), # freq=70 | |
| 'chicken': ( +51, +9, +42, +18, +8), # freq=88 | |
| 'childhood': ( +37, -6, -24, +0, +6), # freq=298 | |
| 'chilling': ( -81, +92, -59, +66, -39), # freq=10 | |
| 'chip': ( +50, +29, +126, +38, +8), # freq=20 | |
| 'chipotle': ( +51, +24, +7, +4, +16), # freq=12 | |
| 'chocolate': ( +66, +22, +17, +18, -8), # freq=125 | |
| 'choked': ( -94, +108, -127, +77, -58), # freq=13 | |
| 'choosing': ( +48, +6, +54, +0, +23), # freq=10 | |
| 'christmas': ( +57, +38, +42, +24, -8), # freq=238 | |
| 'church': ( +28, -9, +42, +6, +19), # freq=115 | |
| 'circus': ( +50, +24, -17, +4, +10), # freq=22 | |
| 'cities': ( +35, +27, +47, +3, +17), # freq=25 | |
| 'claim': ( -57, +58, -9, +39, -21), # freq=12 | |
| 'class': ( +34, -33, +7, +0, +10), # freq=434 | |
| 'classic': ( +42, -42, +32, +0, +17), # freq=45 | |
| 'clearance': ( +66, +47, +67, +67, -19), # freq=11 | |
| 'climb': ( +66, +78, +94, +55, +57), # freq=21 | |
| 'clogged': ( -94, -90, -114, +0, -51), # freq=14 | |
| 'closest': ( +42, -18, +2, +0, +12), # freq=20 | |
| 'clothes': ( +37, +9, +52, +18, +8), # freq=177 | |
| 'clothing': ( +56, -27, -24, +0, +10), # freq=19 | |
| 'club': ( +32, +22, -32, +7, +5), # freq=52 | |
| 'clubs': ( +50, +6, +24, +0, +19), # freq=22 | |
| 'clue': ( +34, -22, -24, +0, +5), # freq=44 | |
| 'coast': ( +48, -18, -9, +0, +12), # freq=37 | |
| 'cockroach': ( -86, +45, -127, +30, -53), # freq=13 | |
| 'code': ( +39, +40, +107, +38, +8), # freq=19 | |
| 'colleague': ( +50, +29, +89, +38, +16), # freq=18 | |
| 'collection': ( +50, -33, +24, +0, +19), # freq=18 | |
| 'college': ( +43, -6, +72, +0, +24), # freq=802 | |
| 'color': ( +29, -18, -12, +0, +5), # freq=68 | |
| 'colors': ( +39, -13, -22, +0, +8), # freq=42 | |
| 'combination': ( +46, -4, +64, +0, +24), # freq=15 | |
| 'comedy': ( +80, +56, +59, +18, -23), # freq=20 | |
| 'comforting': ( +42, -13, +17, +0, +14), # freq=13 | |
| 'comic': ( +43, -4, -14, +0, +9), # freq=14 | |
| 'comics': ( +42, +9, -32, +2, +6), # freq=16 | |
| 'committed': ( +46, +9, +62, +2, +24), # freq=36 | |
| 'communicate': ( +34, -6, +27, +0, +14), # freq=23 | |
| 'community': ( +29, +20, +34, +0, +16), # freq=52 | |
| 'company': ( +42, -6, +39, +0, +19), # freq=483 | |
| 'competition': ( +24, +72, +119, +24, +27), # freq=81 | |
| 'complain': (-100, +47, -59, +34, -43), # freq=95 | |
| 'complaint': (-100, +29, -97, +19, -51), # freq=23 | |
| 'complete': ( +39, +20, +54, +0, +16), # freq=62 | |
| 'completed': ( +34, -11, +37, +0, +16), # freq=31 | |
| 'complicated': ( -32, +38, -44, +31, -9), # freq=33 | |
| 'concentrate': ( +56, -9, +69, +0, +27), # freq=12 | |
| 'concern': ( -59, +51, -12, +35, -21), # freq=18 | |
| 'concerned': ( -49, +45, -54, +25, -25), # freq=58 | |
| 'concert': ( +44, +31, +29, +1, +17), # freq=182 | |
| 'condolences': ( -83, -6, -92, +0, -43), # freq=18 | |
| 'conference': ( +42, +20, +29, +4, +17), # freq=21 | |
| 'confront': ( -51, +58, +92, +35, -1), # freq=50 | |
| 'congrats': ( +32, +22, +24, +0, +19), # freq=344 | |
| 'congratulation': ( +46, +22, +29, +1, +17), # freq=18 | |
| 'congratulations': ( +49, +22, +29, +1, +19), # freq=475 | |
| 'connection': ( +39, +20, +34, +0, +16), # freq=16 | |
| 'conquer': ( +50, +58, +127, +25, +40), # freq=13 | |
| 'conscious': ( +51, -29, +57, +0, +25), # freq=20 | |
| 'consider': ( +37, -24, +22, +0, +14), # freq=88 | |
| 'constant': ( +51, -36, +54, +0, +24), # freq=14 | |
| 'contact': ( +48, -13, +7, +0, +16), # freq=92 | |
| 'contest': ( +35, +36, +62, +9, +20), # freq=82 | |
| 'control': ( +28, +40, +127, +35, +10), # freq=184 | |
| 'conversation': ( +56, +2, +32, +0, +20), # freq=77 | |
| 'convince': ( +46, +9, +74, +2, +25), # freq=15 | |
| 'convinced': ( +56, +0, +34, +0, +23), # freq=18 | |
| 'cookie': ( +71, +22, +34, +18, -10), # freq=21 | |
| 'cookies': ( +34, -4, -24, +0, +5), # freq=68 | |
| 'cool': ( +29, +9, +34, +0, +16), # freq=1254 | |
| 'correct': ( +86, +18, +112, +36, -19), # freq=43 | |
| 'correctly': ( +44, +0, +57, +0, +21), # freq=14 | |
| 'corrupt': ( -89, +58, +54, +39, -24), # freq=23 | |
| 'cost': ( -32, +123, +127, +127, +61), # freq=136 | |
| 'couldnt': ( -79, -15, -77, +0, -40), # freq=195 | |
| 'counseling': ( +35, -4, +57, +0, +20), # freq=23 | |
| 'counselor': ( +39, -11, +27, +0, +16), # freq=20 | |
| 'count': ( +29, +40, +127, +115, +40), # freq=97 | |
| 'counter': ( +39, +20, +72, +12, +0), # freq=25 | |
| 'country': ( +43, -20, +54, +0, +23), # freq=288 | |
| 'counts': ( -36, -27, +0, +0, -12), # freq=19 | |
| 'courage': ( +50, +49, +107, +12, +32), # freq=36 | |
| 'course': ( +24, -2, +2, +0, +8), # freq=311 | |
| 'courses': ( +51, -15, +9, +0, +16), # freq=20 | |
| 'cousin': ( +31, +6, +14, +10, +6), # freq=128 | |
| 'cousins': ( +58, -15, -9, +0, +14), # freq=35 | |
| 'cow': ( +51, -18, +77, +6, +57), # freq=45 | |
| 'cracked': ( -77, +6, -119, +3, -46), # freq=25 | |
| 'crappy': (-127, +20, -124, +19, -65), # freq=37 | |
| 'cream': ( +86, -27, +67, +12, +4), # freq=137 | |
| 'creative': ( +43, +2, +39, +0, +19), # freq=26 | |
| 'credit': ( +28, +27, +99, +54, +10), # freq=155 | |
| 'creep': ( -52, +49, -22, +31, +9), # freq=21 | |
| 'creepy': ( -42, +63, -67, +31, +9), # freq=100 | |
| 'cried': ( -25, +30, -20, +20, +30), # liquid -- happy/sad tears. context determines. | |
| 'crime': ( -89, +90, -82, +77, -24), # freq=35 | |
| 'crowded': ( +42, -38, +24, +0, +16), # freq=21 | |
| 'cruel': (-102, +90, +82, +57, +24), # freq=29 | |
| 'cruise': ( +51, -9, +54, +0, +24), # freq=115 | |
| 'crush': ( +57, +51, -34, +18, -19), # freq=75 | |
| 'crushing': ( -67, +46, -44, +63, -98), # freq=10 | |
| 'cuddle': ( +71, -22, +42, +6, -27), # freq=11 | |
| 'culprit': (-123, +47, -69, +39, -55), # freq=16 | |
| 'culture': ( +56, -36, +49, +0, +24), # freq=24 | |
| 'cure': ( +48, -22, +34, +0, +19), # freq=27 | |
| 'current': ( +28, -33, +32, +0, +12), # freq=105 | |
| 'curse': ( -52, +49, -44, +31, -20), # freq=19 | |
| 'cute': ( +28, +13, +7, +0, +14), # freq=265 | |
| 'dad': ( +39, +20, +34, +12, +16), # freq=571 | |
| 'daily': ( +50, -29, +127, +77, +55), # freq=57 | |
| 'damage': ( -52, +49, -44, +49, -20), # freq=90 | |
| 'damaged': (-112, +36, -127, +27, -61), # freq=43 | |
| 'damages': (-117, +67, -82, +54, -53), # freq=10 | |
| 'dance': ( +28, +22, +24, +0, +23), # freq=51 | |
| 'dancing': ( +39, +31, -7, +3, +10), # freq=40 | |
| 'darkness': ( -52, +24, -67, +15, -40), # freq=13 | |
| 'darn': (-106, +72, -37, +54, -43), # freq=32 | |
| 'date': ( +51, +47, +24, +43, -10), # freq=378 | |
| 'deadline': ( -42, +74, -44, +127, -9), # freq=13 | |
| 'deal': ( +29, +20, +34, +12, +16), # freq=460 | |
| 'dealing': ( +50, -15, +29, +0, +19), # freq=50 | |
| 'dear': ( +39, -4, +17, +0, +14), # freq=61 | |
| 'debit': ( -37, -22, -9, +0, -13), # freq=23 | |
| 'debt': ( -77, +74, -127, +97, -48), # freq=88 | |
| 'decade': ( +42, +9, +126, +43, +76), # freq=15 | |
| 'decent': ( +34, -15, +19, +0, +13), # freq=82 | |
| 'decline': ( -42, +24, -67, +31, -29), # freq=12 | |
| 'declined': ( -94, -83, -127, +0, -55), # freq=14 | |
| 'dedicated': ( +50, +0, +47, +0, +21), # freq=23 | |
| 'dedication': ( +37, -2, +24, +0, +14), # freq=27 | |
| 'deep': ( +29, +20, +34, +0, +16), # freq=95 | |
| 'definitely': ( +29, +29, +34, +0, +16), # freq=748 | |
| 'degree': ( +50, +29, +72, +0, +32), # freq=139 | |
| 'delicious': ( +32, +18, +17, +0, +14), # freq=120 | |
| 'delivery': ( +28, +27, +24, +35, +10), # freq=48 | |
| 'dementia': (-114, +74, -69, +57, -51), # freq=21 | |
| 'denied': ( -86, +27, -69, +19, -40), # freq=11 | |
| 'dent': ( -44, +24, -64, +13, -25), # freq=81 | |
| # 'department' removed — neutral factual word causing positive drift | |
| 'depressing': (-100, +15, -124, +11, -55), # freq=37 | |
| 'desires': ( +58, +63, -54, +12, +8), # freq=13 | |
| 'desperate': ( -77, +90, -127, +77, -48), # freq=14 | |
| 'dessert': ( +66, +22, +17, +6, -14), # freq=19 | |
| 'destroy': (-102, +119, +109, +77, -36), # freq=35 | |
| 'devastating': (-127, +53, -87, +95, -80), # freq=33 | |
| 'diabetes': (-100, +26, -66, +95, +36), # freq=23 | |
| 'diagnosed': ( -94, -15, -87, +0, -46), # freq=43 | |
| 'diagnosis': ( -77, +90, -127, +116, -48), # freq=11 | |
| "didn't": ( -21, +6, +0, +15, +0), # freq=2564 | |
| 'died': (-127, +119, -127, +116, -97), # freq=449 | |
| 'diet': ( -24, +27, -24, +35, -10), # freq=190 | |
| 'different': ( +24, -20, -7, +0, +6), # freq=390 | |
| 'difficulties': (-117, +76, -59, +62, -51), # freq=19 | |
| 'digital': ( +51, -22, +7, +0, +16), # freq=11 | |
| 'dinner': ( +29, +9, +17, +0, +8), # freq=449 | |
| 'direction': ( +51, -15, +74, +0, +27), # freq=57 | |
| 'directly': ( +55, -18, +57, +0, +25), # freq=21 | |
| 'dirty': ( -32, +24, -22, +15, -20), # freq=74 | |
| 'disability': (-119, -6, -127, +0, -65), # freq=11 | |
| 'disappear': (-100, -15, -64, +0, -46), # freq=16 | |
| 'disappointed': ( -46, +6, -27, +13, -30), # freq=375 | |
| 'disappointing': (-119, +38, -127, +30, -63), # freq=90 | |
| 'disaster': (-114, +119, -127, +127, -61), # freq=28 | |
| 'discover': ( +50, +49, +54, +12, +40), # freq=23 | |
| 'disease': (-102, +74, -127, +116, -73), # freq=40 | |
| 'dislike': (-127, +58, -82, +39, +24), # freq=28 | |
| 'dispute': ( -79, +65, +37, +46, -21), # freq=10 | |
| 'disrespectful': ( -89, +90, +54, +39, +36), # freq=12 | |
| 'distance': ( -62, -40, -32, +0, -25), # freq=91 | |
| 'distract': ( -59, +24, -59, +15, -29), # freq=13 | |
| 'distracted': ( -86, -29, -124, +0, -51), # freq=20 | |
| 'disturbing': (-100, +76, -27, +57, -39), # freq=17 | |
| 'divorced': ( -94, -76, -109, +0, -51), # freq=13 | |
| 'doctor': ( -24, +40, -24, +72, -10), # freq=290 | |
| "doesn't": ( -24, +13, +0, +18, +0), # freq=645 | |
| 'dog': ( +39, +29, +34, +0, +24), # freq=1996 | |
| 'dollar': ( +56, +24, +57, +4, +25), # freq=69 | |
| 'dont': ( -24, +13, +0, +18, +0), # freq=625 | |
| 'doomed': (-127, +67, -87, +57, -58), # freq=12 | |
| 'dorm': ( +48, -56, -49, +0, +6), # freq=15 | |
| 'double': ( +37, -22, +22, +0, +14), # freq=63 | |
| 'dove': ( +50, -47, -17, +0, +10), # freq=10 | |
| 'drag': ( -89, +90, -109, +57, +24), # freq=21 | |
| 'dragon': ( +57, +60, +94, +67, +38), # freq=41 | |
| 'drank': ( -42, -13, +12, +0, -12), # freq=45 | |
| 'drawing': ( +43, -51, -47, +0, +5), # freq=23 | |
| 'dreading': (-104, +67, -54, +54, -46), # freq=23 | |
| 'dream': ( +39, +29, +17, +12, +40), # freq=184 | |
| 'dreams': ( +37, -6, +2, +0, +12), # freq=73 | |
| 'drinks': ( +50, +27, -24, +7, +10), # freq=59 | |
| 'drop': ( -77, +127, -127, +127, +127), # freq=78 | |
| 'dropped': ( -51, +45, -114, +29, -36), # freq=140 | |
| 'dropping': ( -89, +90, -119, +62, -51), # freq=19 | |
| 'drowning': ( -60, +50, -55, +40, -40), # grief: overwhelmed, submerged | |
| 'drug': ( -52, +49, -67, +49, -20), # freq=36 | |
| 'drugs': ( -77, +74, -109, +77, -36), # freq=46 | |
| 'drunk': ( -42, +63, -67, +31, -20), # freq=144 | |
| 'drunken': ( -96, +92, -109, +70, -51), # freq=12 | |
| 'duck': ( +57, +33, +24, +18, -8), # freq=19 | |
| 'dumb': ( -52, +24, -67, +15, -20), # freq=83 | |
| 'dump': ( -36, +0, -44, +0, -20), # freq=21 | |
| 'dumpster': ( -77, -20, -127, +0, -55), # freq=13 | |
| 'eagerly': ( +35, +42, +0, +6, +9), # freq=23 | |
| 'early': ( +48, +42, +67, +103, -19), # freq=277 | |
| 'earn': ( +50, +29, +72, +12, +24), # freq=33 | |
| 'ease': ( +31, -9, -2, +0, +9), # freq=30 | |
| 'easier': ( +56, -24, -32, +0, +10), # freq=182 | |
| 'easily': ( +28, +13, +49, +0, +10), # freq=87 | |
| 'east': ( +42, +22, +42, +12, -8), # freq=23 | |
| 'education': ( +28, +9, +34, +12, +8), # freq=64 | |
| 'efficient': ( +48, +9, +44, +0, +21), # freq=11 | |
| 'effort': ( +28, +40, +49, +35, +10), # freq=107 | |
| 'eggs': ( +51, +9, +42, +30, +4), # freq=44 | |
| 'electricity': ( +43, +56, +69, +15, +24), # freq=17 | |
| 'electronics': ( +46, +9, +22, +2, +17), # freq=10 | |
| 'embarrassing': ( -77, +83, -119, +54, -46), # freq=181 | |
| 'emerald': ( +80, +22, +77, +6, +23), # freq=12 | |
| 'emergencies': ( -86, +127, -54, +93, -39), # freq=17 | |
| 'emotion': ( +42, +67, +57, +18, +23), # freq=21 | |
| 'emotional': ( +29, +18, +2, +3, +9), # freq=97 | |
| 'employer': ( +35, +4, +74, +0, +24), # freq=44 | |
| 'employment': ( +56, +15, +32, +2, +20), # freq=12 | |
| 'empty': ( -42, -24, -67, +15, -40), # freq=124 | |
| 'end': ( -24, +27, +24, +35, -23), # freq=741 | |
| 'ended': ( -47, +0, +0, +0, -16), # freq=513 | |
| 'ending': ( -36, -29, -4, +0, -12), # freq=52 | |
| 'ends': ( -42, +112, +127, +127, +70), # freq=61 | |
| 'energy': ( +46, +18, +49, +1, +21), # freq=64 | |
| 'engaged': ( +28, +22, +24, +6, +19), # freq=43 | |
| 'engineer': ( +48, +0, +107, +0, +32), # freq=13 | |
| 'engineering': ( +51, -6, +97, +0, +31), # freq=53 | |
| 'enjoy': ( +24, +6, +7, +0, +11), # freq=677 | |
| 'enjoyable': ( +51, +2, +29, +0, +20), # freq=25 | |
| 'enjoying': ( +42, +22, +34, +1, +17), # freq=74 | |
| 'enraged': (-122, +99, +98, +127, +80), # freq=12 | |
| 'ensure': ( +51, -15, +74, +0, +27), # freq=12 | |
| 'enter': ( +46, -6, +0, +0, +12), # freq=22 | |
| 'entitled': ( -44, +69, +127, +41, +12), # freq=16 | |
| 'envious': ( -77, +74, -82, +39, +12), # freq=167 | |
| 'environment': ( +32, -56, +7, +0, +10), # freq=39 | |
| 'episode': ( +48, -24, +2, +0, +14), # freq=19 | |
| 'equipment': ( +55, +0, +57, +0, +25), # freq=16 | |
| 'era': ( +51, +18, +67, +6, +29), # freq=14 | |
| 'esteem': ( +55, -22, +49, +0, +24), # freq=10 | |
| 'europe': ( +35, +0, +37, +0, +16), # freq=41 | |
| 'event': ( +55, +31, +47, +7, +24), # freq=87 | |
| 'everybody': ( +42, +2, +2, +0, +12), # freq=60 | |
| 'everyday': ( +51, -20, -2, +0, +14), # freq=195 | |
| 'everything': ( -34, -11, -37, +6, -20), # freq=1318 | |
| 'everywhere': ( +50, +69, +72, +25, -24), # freq=146 | |
| 'evil': (-102, +90, +82, +57, +24), # freq=35 | |
| 'ex': ( -89, +90, -109, +39, +36), # freq=186 | |
| 'exact': ( +48, -24, +54, +0, +23), # freq=41 | |
| 'exam': ( -24, +69, -49, +108, -10), # freq=369 | |
| 'excellent': ( +37, +18, +34, +0, +19), # freq=72 | |
| 'exciting': ( +23, +45, +24, +6, +20), # freq=562 | |
| 'excuse': ( -62, +45, -67, +29, -32), # freq=51 | |
| 'exercise': ( +29, +40, +54, +12, +16), # freq=70 | |
| 'exhausted': ( -77, -58, -127, +39, -61), # freq=17 | |
| 'exist': ( +39, +0, +107, +0, +32), # freq=19 | |
| 'expected': ( +50, -15, +14, +0, +17), # freq=123 | |
| 'expenses': ( -62, +29, -37, +19, -28), # freq=28 | |
| 'expensive': ( -32, +24, -44, +49, -9), # freq=268 | |
| 'experience': ( +29, +20, +34, +0, +16), # freq=530 | |
| 'experienced': ( +28, +9, +52, +2, +17), # freq=45 | |
| 'experiences': ( +29, +11, +39, +2, +16), # freq=39 | |
| 'expired': ( -32, +24, -44, +49, -20), # freq=27 | |
| 'explain': ( +28, +27, +49, +18, +10), # freq=66 | |
| 'explore': ( +66, +47, +77, +12, -19), # freq=22 | |
| 'express': ( +8, +10, +15, +4, +5), # freq=19 — carrier verb, context-dependent | |
| 'extreme': ( -42, +67, +82, +39, -1), # freq=19 | |
| 'fabulous': ( +50, +13, +39, +0, +21), # freq=11 | |
| 'facebook': ( +51, +58, +89, +12, +31), # freq=95 | |
| 'fact': ( +28, +27, +74, +35, +23), # freq=103 | |
| 'fail': ( -92, +20, -127, +15, -55), # freq=83 | |
| 'failed': (-102, +74, -127, +77, -73), # freq=131 | |
| 'failing': ( -89, +74, -127, +97, -61), # freq=30 | |
| 'faith': ( +29, +9, +22, +0, +18), # freq=156 | |
| 'fall': ( -52, +63, -114, +65, -70), # freq=246 | |
| 'falling': ( -46, +33, -46, +53, -60), # freq=56 | |
| 'familiar': ( +29, +9, +34, +0, +8), # freq=39 | |
| 'families': ( +43, -24, +14, +0, +14), # freq=38 | |
| 'famous': ( +43, +22, +52, +1, +21), # freq=20 | |
| 'fan': ( +39, +29, +34, +0, +16), # freq=180 | |
| 'fancy': ( +36, +15, +4, +2, +10), # freq=56 | |
| 'far': ( -24, +13, -24, +18, -10), # freq=551 | |
| 'fart': ( -86, -15, -104, +0, -46), # freq=31 | |
| 'fast': ( +62, +90, +94, +115, -53), # freq=403 | |
| 'fat': ( -42, +24, -67, +15, -29), # freq=76 | |
| 'favor': ( +32, -15, +2, +0, +9), # freq=41 | |
| 'favorite': ( +32, +13, +24, +0, +14), # freq=737 | |
| 'favourite': ( +43, +0, +24, +0, +16), # freq=25 | |
| 'fearful': ( -78, +53, -76, +63, +27), # freq=13 | |
| 'fears': (-123, +85, -87, +70, -55), # freq=20 | |
| 'feat': ( +56, +38, +102, +7, +32), # freq=13 | |
| 'fee': ( -34, -24, +17, +0, -8), # freq=23 | |
| 'feed': ( +28, +13, +49, +18, +10), # freq=59 | |
| 'feedback': ( +37, +26, +22, +84, +6), # freq=18 | |
| 'feeding': (-127, +127, -127, +127, +61), # freq=13 | |
| 'feel': ( +5, +10, +5, +5, -2), # freq=4309 — carrier verb, near-neutral | |
| 'feels': ( +5, +10, +5, +5, -2), # carrier verb, near-neutral | |
| 'feeling': ( +32, -13, +2, +0, +9), # freq=1521 | |
| 'fell': ( -57, -6, -92, +0, -34), # freq=310 | |
| 'fellow': ( +55, -36, +22, +0, +19), # freq=12 | |
| 'felt': ( +28, +40, +24, +18, -10), # freq=1835 | |
| 'festival': ( +39, +18, +29, +2, +16), # freq=24 | |
| 'fever': (-102, +74, -127, +127, +24), # freq=14 | |
| 'fiance': ( +32, -22, +2, +0, +9), # freq=44 | |
| 'fiancee': ( +48, +11, +7, +0, +14), # freq=21 | |
| 'fights': (-119, +112, +92, +89, -27), # freq=22 | |
| 'figure': ( +42, -29, +2, +0, +12), # freq=147 | |
| 'figured': ( +35, +0, +24, +0, +14), # freq=71 | |
| 'finally': ( +5, +10, +10, +15, +5), # temporal marker -- context determines polarity | |
| 'finance': ( +56, -11, +97, +0, +32), # freq=16 | |
| 'financial': ( +35, +0, +64, +0, +20), # freq=93 | |
| 'fine': ( -32, +24, -22, +49, -9), # freq=547 | |
| 'fired': (-127, +127, -127, +116, -85), # freq=89 | |
| 'fireworks': ( +51, +65, +22, +15, +19), # freq=17 | |
| 'fishing': ( +37, -40, -29, +0, +6), # freq=92 | |
| 'fit': ( +39, +29, +72, +0, +24), # freq=121 | |
| 'flat': ( -32, +38, -44, +49, -20), # freq=58 | |
| 'flies': ( -37, +108, +0, +61, -13), # freq=62 | |
| 'flight': ( +32, +24, +24, +7, +12), # freq=97 | |
| 'flip': ( -51, +6, -22, +3, -21), # freq=42 | |
| 'flood': ( -77, +103, -127, +127, -48), # freq=41 | |
| 'flowers': ( +39, -15, -24, +0, +8), # freq=74 | |
| 'flu': ( -77, +11, -109, +7, -43), # freq=36 | |
| 'fly': ( +29, +49, +54, +25, +55), # freq=161 | |
| 'flying': ( +39, +9, +27, +1, +16), # freq=144 | |
| 'focus': ( +32, +38, +77, +30, -8), # freq=99 | |
| 'fond': ( +39, +9, +2, +1, +12), # freq=44 | |
| 'fondly': ( +51, -27, +7, +0, +16), # freq=17 | |
| 'fool': ( -67, +26, +22, +32, +18), # freq=27 | |
| 'football': ( +56, +45, +24, +9, +20), # freq=256 | |
| 'forget': ( -24, -13, -24, +18, -10), # freq=234 | |
| 'forgetting': ( -94, +90, -127, +66, -55), # freq=25 | |
| 'forgive': ( +50, +20, +54, +0, +24), # freq=67 | |
| 'forgotten': ( -52, +24, -92, +15, -40), # freq=36 | |
| 'fortunate': ( +44, +11, +47, +1, +20), # freq=54 | |
| 'fortunately': ( +51, -15, +29, +0, +20), # freq=41 | |
| 'fortune': ( +44, +20, +39, +1, +20), # freq=19 | |
| 'forward': ( +39, -6, +34, +0, +16), # freq=584 | |
| 'freak': ( -28, +28, -9, +26, +15), # freq=45 | |
| 'freaked': (-102, +112, -69, +86, -46), # freq=51 | |
| 'freaky': ( -86, +29, -49, +23, -39), # freq=11 | |
| 'free': ( +28, +18, +42, +0, +23), # freq=346 | |
| 'frozen': ( -30, -15, -40, +10, -25), # grief: stuck, unable to move on | |
| 'freedom': ( +32, +18, +52, +0, +27), # freq=30 | |
| 'fresh': ( +39, +20, +34, +0, +24), # freq=85 | |
| 'freshman': ( +37, +11, -17, +2, +8), # freq=24 | |
| 'friendly': ( +43, -9, +12, +0, +14), # freq=43 | |
| 'friends': ( +50, +20, +34, +0, +16), # freq=2039 | |
| 'fries': ( +36, +15, +0, +2, +10), # freq=38 | |
| 'frightened': (-102, +127, -127, +116, +48), # freq=44 | |
| 'frightening': (-106, +127, -64, +97, -48), # freq=38 | |
| 'front': ( +32, +22, +52, +24, -8), # freq=456 | |
| 'fruit': ( +90, +18, +52, +24, -23), # freq=27 | |
| 'frustrating': (-127, +54, -104, +43, -61), # freq=249 | |
| 'full': ( +28, +13, +49, +0, +10), # freq=318 | |
| 'fully': ( +58, -9, +79, +0, +31), # freq=61 | |
| 'fun': ( +28, +18, +17, +0, +14), # freq=1998 | |
| 'funeral': (-114, +74, -127, +77, -85), # freq=45 | |
| 'funny': ( +28, +18, +17, +0, +14), # freq=337 | |
| 'furniture': ( +42, -42, -69, +0, +0), # freq=58 | |
| 'future': ( +28, +27, +24, +18, +23), # freq=311 | |
| 'gambling': ( -32, +69, -54, +39, -20), # freq=29 | |
| 'games': ( +28, +40, +49, +0, +23), # freq=326 | |
| 'gaming': ( +42, +11, -2, +1, +12), # freq=31 | |
| 'gang': ( -79, +92, +54, +62, -17), # freq=11 | |
| 'gas': ( +28, +33, +24, +36, -29), # freq=159 | |
| 'gender': ( +42, -27, +32, +0, +17), # freq=13 | |
| 'general': ( +35, +0, +47, +0, +17), # freq=73 | |
| 'generation': ( +42, -2, +24, +0, +16), # freq=22 | |
| 'generous': ( +50, +20, +34, +0, +24), # freq=33 | |
| 'gesture': ( +35, -4, -22, +0, +6), # freq=36 | |
| 'ghetto': ( -47, +29, -4, +15, -16), # freq=10 | |
| 'ghost': ( -42, +49, -67, +31, -20), # freq=67 | |
| 'ghosted': ( -77, +58, -109, +39, -48), # freq=11 | |
| 'giant': ( +32, +56, +104, +18, +27), # freq=45 | |
| 'gift': ( +50, +29, +34, +0, +32), # freq=273 | |
| 'gifted': ( +42, +11, +49, +1, +20), # freq=26 | |
| 'gifts': ( +37, +22, +2, +2, +10), # freq=90 | |
| 'girlfriend': ( +62, +38, +42, +12, -10), # freq=779 | |
| 'girls': ( +35, +56, -54, +15, +1), # freq=211 | |
| 'glasses': ( +37, +4, +59, +18, +4), # freq=20 | |
| 'glory': ( +46, +20, +42, +1, +20), # freq=10 | |
| 'goal': ( +29, +29, +54, +25, +24), # freq=70 | |
| 'goals': ( +48, -2, +87, +0, +28), # freq=65 | |
| 'golden': ( +31, +0, +14, +0, +10), # freq=33 | |
| 'gone': ( -40, +10, -35, +20, -30), # grief: absence, departed | |
| 'goodness': ( +49, -15, +29, +0, +19), # freq=211 | |
| 'google': ( +42, +9, +67, +18, -4), # freq=31 | |
| 'gorgeous': ( +37, +18, +17, +0, +19), # freq=28 | |
| 'gosh': ( -34, -13, -87, +0, -25), # freq=137 | |
| 'grabbed': ( -37, +112, +114, +65, +5), # freq=34 | |
| 'grad': ( +32, +2, +32, +0, +14), # freq=44 | |
| 'grade': ( -24, +40, -49, +72, -10), # freq=276 | |
| 'graduate': ( +32, +22, +42, +0, +23), # freq=103 | |
| 'graduated': ( +39, +22, +39, +2, +17), # freq=151 | |
| 'graduation': ( +39, +13, +42, +1, +17), # freq=83 | |
| 'grand': ( +42, +20, +52, +1, +21), # freq=51 | |
| 'grandfather': ( +32, +4, +59, +0, +23), # freq=59 | |
| 'grandmother': ( +37, +9, +52, +0, +19), # freq=202 | |
| 'grandpa': ( +42, +4, +52, +0, +19), # freq=25 | |
| 'grandparents': ( +35, -27, +7, +0, +10), # freq=61 | |
| 'granted': ( +39, -13, +37, +0, +17), # freq=66 | |
| 'greatest': ( +35, +11, +57, +1, +20), # freq=47 | |
| 'greatly': ( +56, +38, +107, +7, +34), # freq=15 | |
| 'greed': ( -92, +74, +9, +54, -28), # freq=5 | |
| 'greedy': ( -52, +38, +44, +31, -9), # freq=11 | |
| 'grew': ( +35, +27, +2, +3, +10), # freq=101 | |
| 'grieve': (-106, +0, -69, +0, -48), # freq=12 | |
| 'groceries': ( +51, -24, -24, +0, +10), # freq=81 | |
| 'grocery': ( +42, +9, -14, +2, +9), # freq=168 | |
| 'ground': ( +42, -4, +126, +0, +76), # freq=107 | |
| 'group': ( +32, +27, +67, +18, +19), # freq=155 | |
| 'grow': ( +29, +20, +34, +12, +24), # freq=226 | |
| 'growing': ( +29, +20, +34, +12, +16), # freq=177 | |
| 'growth': ( +43, +6, +37, +0, +19), # freq=15 | |
| 'grudge': (-106, +38, -37, +30, -43), # freq=12 | |
| 'guarantee': ( +46, -13, +39, +0, +20), # freq=11 | |
| 'guard': ( +28, +2, +89, +0, +23), # freq=54 | |
| 'guess': ( -21, -6, -20, +0, -8), # freq=1012 | |
| 'guest': ( +48, -2, +17, +0, +16), # freq=10 | |
| 'guilty': ( -78, +26, -55, +32, -45), # freq=393 | |
| 'guitar': ( +35, +4, -2, +0, +9), # freq=51 | |
| 'gun': (-100, +112, +92, +81, -19), # freq=56 | |
| 'gym': ( +28, +40, +74, +18, +10), # freq=153 | |
| 'haha': ( +50, +29, +17, +0, +24), # freq=814 | |
| 'hahaha': ( +24, -40, -39, +0, +0), # freq=158 | |
| 'haircut': ( +37, -27, -54, +0, +1), # freq=37 | |
| 'halloween': ( +24, +33, +29, +12, +10), # freq=94 | |
| 'handful': ( +42, +13, +42, +12, +8), # freq=28 | |
| 'handle': ( +28, +13, +77, +36, +19), # freq=128 | |
| 'handy': ( +55, -22, +39, +0, +23), # freq=22 | |
| 'hang': ( -40, +6, -17, +3, -17), # freq=192 | |
| 'hanging': ( -27, -6, -39, +0, -16), # freq=88 | |
| 'happier': ( +51, +13, +39, +0, +21), # freq=47 | |
| 'happiest': ( +51, +6, +39, +0, +21), # freq=19 | |
| 'happily': ( +51, +24, +27, +0, +20), # freq=20 | |
| 'happiness': ( +42, +22, +34, +0, +27), # freq=68 | |
| 'harder': ( -52, +15, -4, +9, -17), # freq=112 | |
| 'hardest': ( -62, +45, +0, +29, -21), # freq=59 | |
| 'harsh': ( -52, +63, +44, +31, -9), # freq=18 | |
| 'hasnt': ( -94, -6, -37, +0, -39), # freq=18 | |
| 'hassle': ( -92, +65, -4, +46, -31), # freq=24 | |
| "haven't": ( -24, +13, -24, +18, +0), # freq=664 | |
| 'havent': ( -40, -18, -67, +0, -25), # freq=57 | |
| 'headache': ( -42, +38, -67, +49, -29), # freq=21 | |
| 'headaches': (-112, +58, -104, +46, -55), # freq=12 | |
| 'heal': ( +37, +9, +22, +0, +18), # freq=38 | |
| 'healthier': ( +43, -6, +24, +0, +16), # freq=23 | |
| 'healthy': ( +50, +20, +72, +0, +24), # freq=218 | |
| 'hearing': ( +37, -2, +29, +0, +16), # freq=96 | |
| 'heart': ( +10, +10, +5, +5, +15), # body part with emotional weight — intimacy/vulnerability | |
| # V near-neutral but G elevated: "my heart" signals something important is at stake | |
| 'heartbreaking': (-100, +83, -32, +62, -39), # freq=27 | |
| 'heaven': ( +32, +13, +24, +0, +27), # freq=29 | |
| 'heavy': ( -32, +24, -44, +15, -40), # freq=67 | |
| 'heck': ( -62, +51, +22, +31, -17), # freq=70 | |
| 'hectic': ( -94, +83, -27, +62, -36), # freq=25 | |
| 'held': ( +39, +20, +72, +12, +16), # freq=44 | |
| 'hello': ( +29, +15, +17, +0, +8), # freq=69 | |
| 'helpful': ( +32, -13, +27, +0, +14), # freq=90 | |
| 'hers': ( +32, +0, -57, +0, +0), # freq=27 | |
| 'hey': ( +24, +24, +17, +12, +8), # freq=243 | |
| 'hi': ( +22, +9, +7, +0, +6), # freq=171 | |
| 'hide': ( -32, +38, -44, +31, -20), # freq=79 | |
| 'hiding': ( -59, +15, -49, +9, -28), # freq=28 | |
| 'higher': ( +37, +2, +29, +0, +16), # freq=63 | |
| 'highly': ( +35, +13, +39, +2, +16), # freq=24 | |
| 'highway': ( +29, +13, -22, +4, +5), # freq=42 | |
| 'hiking': ( +32, +29, +24, +4, +13), # freq=49 | |
| 'hilarious': ( +37, +27, +17, +0, +19), # freq=55 | |
| 'hip': ( +39, +29, +107, +12, +40), # freq=23 | |
| 'hire': ( +42, +9, +14, +2, +14), # freq=43 | |
| 'hired': ( +51, +22, +17, +0, +17), # freq=52 | |
| 'history': ( +29, +9, +54, +0, +32), # freq=59 | |
| 'hit': ( +28, +54, +49, +18, +10), # freq=8067 | |
| 'hits': ( +39, +29, +17, +0, +16), # freq=22 | |
| 'hoarder': ( -94, -90, -124, +0, -53), # freq=10 | |
| 'hobby': ( +34, +4, -2, +1, +9), # freq=50 | |
| 'holiday': ( +77, +18, +77, +12, -29), # freq=72 | |
| 'holidays': ( +44, +2, +2, +0, +13), # freq=64 | |
| 'holy': ( +29, +20, +54, +0, +24), # freq=64 | |
| 'home': ( +39, -9, +54, +0, +16), # freq=2166 | |
| 'homemade': ( +39, -13, -12, +0, +9), # freq=20 | |
| 'hometown': ( +36, -13, +12, +0, +13), # freq=39 | |
| 'honey': ( +66, -4, +42, +6, -10), # freq=11 | |
| 'honor': ( +50, +29, +72, +0, +24), # freq=36 | |
| 'hopefully': ( +35, +0, -22, +0, +5), # freq=957 | |
| 'hopes': ( +43, +0, +27, +0, +17), # freq=43 | |
| 'hoping': ( +29, +20, -17, +12, +16), # freq=374 | |
| 'horizon': ( +51, +9, +67, +6, -14), # freq=10 | |
| 'horrific': (-114, +92, -9, +73, -40), # freq=10 | |
| 'horrifying': (-127, +65, -87, +54, -63), # freq=24 | |
| 'horror': (-114, +127, -127, +97, -24), # freq=92 | |
| 'horse': ( +28, +40, +49, +0, +23), # freq=54 | |
| 'hose': ( +50, +40, +89, +89, +24), # freq=21 | |
| 'hospice': ( -89, -40, -44, +32, +63), # freq=17 | |
| 'host': ( +42, -6, +9, +0, +14), # freq=12 | |
| 'hotel': ( +66, +13, +84, +24, +42), # freq=59 | |
| 'however': ( -29, -22, -17, +0, -12), # freq=114 | |
| 'hug': ( +42, -6, +7, +0, +13), # freq=24 | |
| 'huge': ( +32, +38, +84, +18, +29), # freq=367 | |
| 'hugs': ( +50, -6, +12, +0, +16), # freq=12 | |
| 'huh': ( -49, -38, -87, +0, -32), # freq=72 | |
| 'human': ( +58, -33, +29, +0, +23), # freq=98 | |
| 'humanity': ( +56, -24, +64, +0, +27), # freq=23 | |
| 'humid': (-114, +103, -109, +77, +73), # freq=11 | |
| 'humiliating': (-123, +56, -97, +46, -58), # freq=13 | |
| 'humor': ( +50, +29, +34, +0, +24), # freq=17 | |
| 'hungover': (-119, -9, -124, +0, -63), # freq=12 | |
| 'hungry': ( -32, +38, -44, +49, -20), # freq=107 | |
| 'hunt': ( -40, +69, +32, +39, -8), # freq=17 | |
| 'hurricane': ( -89, +127, -127, +127, -48), # freq=102 | |
| 'hurricanes': ( -51, +90, +104, +55, +0), # freq=20 | |
| 'hurting': ( -96, +74, -119, +54, -53), # freq=60 | |
| 'idea': ( +50, +40, +54, +25, -8), # freq=632 | |
| 'idiot': ( -89, +40, +33, +47, +36), # freq=19 | |
| 'ignore': ( -42, +24, +44, +31, -9), # freq=40 | |
| 'ignored': ( -52, +38, -67, +31, -20), # freq=30 | |
| 'ill': (-119, -24, -127, +0, -63), # freq=115 | |
| 'illegal': (-123, +76, -69, +62, -53), # freq=14 | |
| 'illness': (-127, +29, -127, +77, +61), # freq=32 | |
| 'impact': (-127, +127, +127, +127, +97), # freq=25 | |
| 'impressed': ( +32, +22, -9, +3, +8), # freq=432 | |
| 'impression': ( +39, +9, +22, +2, +16), # freq=24 | |
| 'impressive': ( +29, +27, +52, +4, +16), # freq=188 | |
| 'improve': ( +29, +20, +34, +12, +16), # freq=49 | |
| 'improving': ( +42, +0, +24, +0, +16), # freq=18 | |
| 'inadequate': (-106, -11, -119, +0, -55), # freq=2 | |
| 'inappropriate': (-102, +11, -64, +7, -46), # freq=14 | |
| 'incident': (-117, +45, -4, +34, -40), # freq=26 | |
| 'included': ( +58, -18, +22, +0, +19), # freq=14 | |
| 'income': ( +56, +2, +64, +0, +27), # freq=47 | |
| 'incompetent': (-102, +18, -114, +11, -55), # freq=11 | |
| 'inconsiderate': ( -77, +6, -32, +3, -31), # freq=47 | |
| 'inconvenient': ( -77, +29, -54, +19, -36), # freq=14 | |
| 'incredible': ( +48, +38, +34, +0, +29), # freq=85 | |
| 'indeed': ( +48, +0, +29, +0, +19), # freq=217 | |
| 'independent': ( +41, -4, +52, +0, +20), # freq=31 | |
| 'industry': ( +32, -9, +97, +0, +25), # freq=29 | |
| 'infection': ( -52, +49, -92, +81, -29), # freq=15 | |
| 'info': ( +56, -29, +39, +0, +23), # freq=31 | |
| 'inform': ( +50, +13, +49, +2, +23), # freq=10 | |
| 'information': ( +58, -24, +62, +0, +27), # freq=71 | |
| 'infuriating': (-102, +99, +4, +73, -34), # freq=19 | |
| 'injured': ( -77, +74, -127, +97, -48), # freq=61 | |
| 'injuries': (-100, +90, -127, +66, -55), # freq=19 | |
| 'injury': ( -77, +74, -127, +97, -48), # freq=30 | |
| 'innocent': ( +39, +29, -34, +25, +16), # freq=33 | |
| 'inside': ( +5, +5, +5, +5, +0), # freq=240 — spatial, near-neutral | |
| 'inspiration': ( +44, +9, +34, +0, +19), # freq=14 | |
| 'insurance': ( +48, -33, +94, +0, +28), # freq=222 | |
| 'intelligent': ( +50, +20, +72, +0, +24), # freq=16 | |
| 'interested': ( +56, +6, +64, +0, +27), # freq=72 | |
| 'internet': ( +48, +18, +52, +49, -8), # freq=87 | |
| 'interview': ( -24, +127, -99, +127, +34), # freq=429 | |
| 'intimidating': ( -77, +76, +92, +50, -12), # freq=16 | |
| 'intruder': (-100, +65, -77, +46, -46), # freq=13 | |
| 'invest': ( +48, +27, +59, +12, +0), # freq=21 | |
| 'investment': ( +48, +15, +72, +4, +25), # freq=20 | |
| 'invite': ( +55, +27, +32, +4, +20), # freq=64 | |
| 'invited': ( +39, +20, +34, +0, +16), # freq=117 | |
| 'ipad': ( +35, +15, +37, +2, +16), # freq=21 | |
| 'iphone': ( +35, +22, +47, +3, +17), # freq=29 | |
| 'irked': ( -94, +76, -64, +57, -43), # freq=21 | |
| 'irritating': (-112, +110, -49, +86, -46), # freq=50 | |
| "isn't": ( -24, +13, +0, +18, +0), # freq=419 | |
| 'isolated': ( -79, -38, -109, +0, -46), # freq=35 | |
| 'issues': ( -32, +24, -44, +31, -9), # freq=165 | |
| 'itself': ( +28, -20, -29, +0, +2), # freq=53 | |
| 'jackpot': ( +77, +56, +67, +6, -29), # freq=12 | |
| 'jail': (-102, +74, -127, +97, -73), # freq=44 | |
| 'japan': ( +35, -4, +22, +0, +14), # freq=21 | |
| 'jar': ( +50, +0, +89, +25, +48), # freq=11 | |
| 'jerk': ( -46, +22, +18, +26, +15), # freq=59 | |
| 'jerks': ( -79, +76, -42, +54, -36), # freq=19 | |
| 'job': ( +32, +38, +84, +67, +34), # freq=2559 | |
| 'join': ( +50, -4, +54, +0, +24), # freq=69 | |
| 'joined': ( +35, -20, +29, +0, +16), # freq=33 | |
| 'joining': ( +56, -6, +54, +0, +25), # freq=26 | |
| 'joke': ( +29, +29, +17, +0, +16), # freq=41 | |
| 'joyful': ( +51, +27, +42, +0, +34), # freq=237 | |
| 'juice': ( +48, +13, +34, +12, -8), # freq=16 | |
| 'jump': ( +51, +51, +59, +24, -29), # freq=69 | |
| 'junk': ( -32, +13, -22, +15, -20), # freq=34 | |
| 'justice': ( +39, +40, +72, +25, +24), # freq=18 | |
| 'kick': (-127, +127, +127, +127, +85), # freq=51 | |
| 'kicking': ( -40, +67, +4, +39, -13), # freq=16 | |
| 'kill': (-127, +127, +127, +127, +73), # freq=109 | |
| 'kind': ( +50, +9, +34, +0, +24), # freq=1716 | |
| 'kindergarten': ( +35, -2, -24, +0, +5), # freq=53 | |
| 'king': ( +37, +33, +112, +9, +31), # freq=28 | |
| 'kiss': ( +49, +27, +17, +1, +17), # freq=36 | |
| 'kitten': ( +32, +18, +7, +0, +23), # freq=81 | |
| 'knock': ( -44, +6, +9, +3, -13), # freq=55 | |
| 'knowing': ( +35, -11, +22, +0, +13), # freq=140 | |
| 'knowledge': ( +39, +20, +54, +0, +24), # freq=22 | |
| 'lack': ( -42, +13, -67, +15, -20), # freq=36 | |
| 'laid': ( -77, +74, -127, +77, -48), # freq=58 | |
| 'landed': ( +46, +22, -7, +4, +12), # freq=40 | |
| 'landlord': ( -32, +38, -44, +49, -20), # freq=47 | |
| 'laptop': ( +42, +18, +59, +36, +10), # freq=83 | |
| 'large': ( +43, +11, +69, +2, +24), # freq=139 | |
| 'larger': ( +50, +27, +74, +7, +27), # freq=11 | |
| 'lasagna': ( +66, +13, +52, +18, +23), # freq=12 | |
| 'last': ( -21, +12, +10, +29, -8), # freq=2921 | |
| 'late': ( -32, +49, -44, +97, -9), # freq=456 | |
| 'later': ( -24, -27, +49, +125, +23), # freq=351 | |
| 'laugh': ( +28, +18, +17, +0, +14), # freq=118 | |
| 'laughing': ( +32, +27, +24, +0, +27), # freq=92 | |
| 'laundry': ( +32, -38, -34, +0, +2), # freq=33 | |
| 'law': ( +28, +27, +127, +72, +68), # freq=217 | |
| 'lawn': ( +77, -18, +59, +0, +19), # freq=74 | |
| 'lay': ( +71, -42, +59, +6, -14), # freq=50 | |
| 'lazy': ( -32, -49, -67, +0, -29), # freq=87 | |
| 'lead': ( +29, +29, +89, +12, +16), # freq=54 | |
| 'leading': ( +48, -9, +59, +6, +10), # freq=21 | |
| 'league': ( +34, -27, -9, +0, +8), # freq=59 | |
| # 'lean' removed — directional word, context-dependent (lean in=positive, lean toward=neutral) | |
| 'leap': ( +56, +29, +47, +4, +24), # freq=16 | |
| 'leash': ( -42, -36, -27, +0, -17), # freq=20 | |
| 'least': ( -52, -24, -92, +31, +20), # freq=1087 | |
| 'leftovers': ( -79, -42, -127, +0, -55), # freq=31 | |
| 'lesson': ( +42, +13, +34, +30, +8), # freq=97 | |
| "let's": ( +28, +27, +49, +18, +23), # freq=54 | |
| 'letters': ( +35, -31, -39, +0, +2), # freq=20 | |
| 'lice': (-102, +0, -127, +0, -58), # freq=14 | |
| 'lie': ( -52, +38, +22, +31, -9), # freq=95 | |
| 'lied': ( -94, +38, -127, +27, -55), # freq=136 | |
| 'lifestyle': ( +56, -6, +42, +0, +23), # freq=21 | |
| 'lift': ( +62, +33, +67, +6, -38), # freq=27 | |
| 'lifted': ( +48, -9, +47, +0, +20), # freq=11 | |
| 'light': ( +29, +9, +14, +0, +36), # freq=142 | |
| 'lights': ( +56, -4, +22, +0, +19), # freq=62 | |
| 'liked': ( +50, -2, -12, +0, +12), # freq=194 | |
| 'likely': ( +29, -24, -14, +0, +6), # freq=64 | |
| 'likes': ( +39, +20, +0, +2, +10), # freq=110 | |
| 'liking': ( +49, +9, +12, +0, +16), # freq=16 | |
| 'limited': ( -77, -58, -54, +0, -34), # freq=12 | |
| 'lining': ( +62, -9, +77, +12, +10), # freq=11 | |
| 'list': ( +37, +13, +94, +43, +23), # freq=88 | |
| 'litter': ( -57, +13, -127, +6, -44), # freq=33 | |
| 'lmao': ( +50, +40, +17, +0, +24), # freq=12 | |
| 'loan': ( -77, +90, -127, +127, +61), # freq=72 | |
| 'local': ( +34, -40, -14, +0, +8), # freq=201 | |
| 'locked': ( -42, +38, -67, +65, -20), # freq=50 | |
| 'lol': ( +39, +29, +17, +0, +24), # freq=1757 | |
| 'lonesome': ( -51, -65, -59, +0, -28), # freq=17 | |
| 'loose': ( +50, -49, -54, +12, -48), # freq=62 | |
| 'loser': (-117, +2, -127, +3, -65), # freq=16 | |
| 'lottery': ( +77, +56, +17, +12, -29), # freq=226 | |
| 'lotto': ( +58, +24, -7, +4, +16), # freq=30 | |
| 'loud': ( -24, +83, +24, +35, +23), # freq=178 | |
| 'lovely': ( +43, -4, +32, +0, +17), # freq=107 | |
| 'low': ( -52, -49, -127, +49, +127), # freq=97 | |
| 'lower': ( -40, -45, -87, +0, -28), # freq=30 | |
| 'luck': ( +29, +29, +17, +12, +24), # freq=667 | |
| 'luckily': ( +51, +0, -7, +0, +13), # freq=249 | |
| 'lucky': ( +50, +40, +34, +0, +32), # freq=607 | |
| 'lunch': ( +28, +13, +24, +0, +10), # freq=259 | |
| 'mad': ( -78, +46, +33, +63, +45), # freq=806 | |
| 'madden': ( -40, +22, -12, +13, -16), # freq=30 | |
| 'magical': ( +39, +13, +12, +1, +13), # freq=16 | |
| 'mail': ( +51, +38, +59, +73, +8), # freq=141 | |
| 'main': ( +37, +22, +67, +6, +8), # freq=37 | |
| 'maintain': ( +39, -18, +42, +0, +19), # freq=22 | |
| 'major': ( +28, +40, +49, +18, +10), # freq=151 | |
| 'makeup': ( +48, +27, +52, +12, -14), # freq=16 | |
| 'managed': ( +35, +27, -32, +3, +4), # freq=114 | |
| 'management': ( +29, +0, +39, +0, +16), # freq=57 | |
| 'mandatory': ( -52, +38, +99, +23, -1), # freq=10 | |
| 'marathon': ( +32, +49, +69, +15, +20), # freq=36 | |
| 'market': ( +57, +47, +59, +55, +23), # freq=63 | |
| 'married': ( +39, +29, +54, +0, +16), # freq=348 | |
| 'marry': ( +42, +22, +24, +2, +16), # freq=37 | |
| 'marvel': ( +49, +22, +49, +1, +21), # freq=10 | |
| 'massage': ( +46, -24, -24, +0, +9), # freq=13 | |
| 'mate': ( +35, -6, +24, +0, +14), # freq=20 | |
| 'math': ( +28, +127, +124, +127, +89), # freq=163 | |
| 'meal': ( +35, -4, -2, +0, +9), # freq=154 | |
| 'means': ( +25, -22, -9, +0, +5), # freq=137 | |
| 'medication': ( -32, +24, -44, +49, -9), # freq=29 | |
| 'medicine': ( +10, +5, +10, +10, +20), # context-dependent -- "on medicine" vs "medicine stopped" | |
| 'member': ( +43, -29, +14, +0, +16), # freq=57 | |
| 'memories': ( -5, +15, -5, +5, -5), # freq=593 — ambiguous, context-dependent | |
| 'memory': ( -5, +15, -5, +5, -5), # freq=128 — ambiguous, context-dependent | |
| 'mess': ( -32, +24, -44, +31, -20), # freq=180 | |
| 'message': ( +32, -20, -24, +0, +5), # freq=32 | |
| 'mid': ( -52, -49, -22, +0, +9), # freq=21 | |
| 'middle': ( +28, +0, +99, +18, +23), # freq=178 | |
| 'milestone': ( +50, +29, +54, +0, +24), # freq=16 | |
| # 'million' removed — number word, noise (context-dependent: "a million dollars" vs "one in a million") | |
| 'millionaire': ( +43, +22, +47, +1, +20), # freq=11 | |
| 'mind': ( +29, +29, +54, +25, -8), # freq=397 | |
| 'mine': ( +42, -13, +22, +0, +16), # freq=623 | |
| 'minor': ( -59, +0, -119, +0, -40), # freq=27 | |
| 'miracle': ( +37, +33, +24, +6, +29), # freq=23 | |
| 'miss': ( -42, +30, -50, +35, -25), # grief: longing, absence | |
| 'missed': ( -42, +38, -67, +49, -20), # freq=200 | |
| 'missing': ( -42, +38, -44, +31, -20), # freq=176 | |
| 'mission': ( +58, +24, +107, +4, +35), # freq=36 | |
| 'mix': ( +42, +42, +59, +43, +14), # freq=50 | |
| 'mold': ( -42, +38, -67, +65, -29), # freq=23 | |
| 'mom': ( +50, +20, +34, +12, +16), # freq=800 | |
| 'mommy': ( +41, -11, -9, +0, +9), # freq=18 | |
| 'monster': ( -52, +74, -67, +49, +20), # freq=23 | |
| 'mourn': ( -70, +30, -55, +30, -50), # grief: grieving, bereavement | |
| 'mourning': ( -70, +30, -55, +30, -50), # grief: grieving process | |
| 'moral': ( +43, -9, +87, +0, +27), # freq=15 | |
| 'mortgage': ( -52, +49, -92, +65, +81), # freq=28 | |
| 'mortified': ( -94, +63, -97, +46, -48), # freq=58 | |
| 'mosquito': ( -77, -27, -127, +0, -48), # freq=12 | |
| 'motivation': ( +36, +24, +39, +2, +17), # freq=40 | |
| 'motorcycle': ( +37, +47, +62, +12, +20), # freq=30 | |
| 'mountains': ( +58, -11, +22, +0, +20), # freq=40 | |
| 'movies': ( +50, -13, -7, +0, +12), # freq=296 | |
| 'multiple': ( +35, +2, +22, +0, +14), # freq=37 | |
| 'musical': ( +42, +11, +2, +1, +13), # freq=13 | |
| 'mutual': ( +50, -31, -9, +0, +12), # freq=13 | |
| 'naked': ( -40, +87, -77, +51, -25), # freq=16 | |
| 'nap': ( +29, -40, +17, +0, +8), # freq=39 | |
| 'nasty': (-106, +33, -104, +23, -53), # freq=123 | |
| 'national': ( +43, -24, +47, +0, +20), # freq=25 | |
| 'natural': ( +29, +9, +34, +0, +16), # freq=64 | |
| 'naturally': ( +36, -18, +7, +0, +12), # freq=23 | |
| 'nature': ( +36, -27, +19, +0, +14), # freq=59 | |
| 'near': ( +28, +13, +24, +0, +10), # freq=218 | |
| 'neat': ( +39, -22, -2, +0, +10), # freq=93 | |
| 'necessary': ( +56, -11, +49, +0, +24), # freq=34 | |
| 'necklace': ( +71, +22, +52, +6, +8), # freq=35 | |
| 'needles': ( -59, +22, -54, +15, -29), # freq=12 | |
| 'needless': ( -40, -24, -109, +0, -32), # freq=19 | |
| 'negative': (-25, +5, -20, +5, -10), # liquid -- medical=good, emotional=bad. Context determines. | |
| 'nephew': ( +51, +27, +17, +18, -14), # freq=134 | |
| 'nerve': ( +50, +108, +72, +127, -8), # freq=132 | |
| 'nerves': ( -37, +63, -87, +35, -28), # freq=91 | |
| 'nest': ( +42, -49, -47, +0, +2), # freq=22 | |
| 'new': ( +29, +29, +17, +12, +16), # freq=3265 | |
| 'newborn': ( +43, +6, -17, +0, +9), # freq=30 | |
| 'news': ( +28, +127, +127, +127, +44), # freq=400 | |
| 'nice': ( +29, +4, +7, +0, +12), # freq=3179 | |
| 'nicer': ( +39, -20, -9, +0, +9), # freq=26 | |
| 'nicest': ( +56, -24, +29, +0, +20), # freq=10 | |
| 'niece': ( +38, +12, +7, +15, -14), # freq=73 | |
| 'nightmare': (-127, +127, -127, +116, -73), # freq=38 | |
| 'nightmares': (-117, +119, -22, +93, -43), # freq=35 | |
| 'nintendo': ( +31, +4, -4, +1, +8), # freq=98 | |
| 'noble': ( +56, +6, +34, +5, +17), # freq=17 | |
| 'nobody': ( -46, +17, -27, +26, -15), # freq=79 | |
| 'noise': ( -24, +40, -24, +35, +10), # freq=116 | |
| 'noisy': (-127, +127, -109, +127, +24), # freq=11 | |
| 'nope': ( -24, +13, +24, +0, +0), # freq=168 | |
| 'nostalgia': ( +28, +27, -24, +0, -10), # freq=54 | |
| 'note': ( +28, -83, -34, +0, +2), # freq=75 | |
| 'nothing': ( -80, -10, -55, +15, -45), # grief/existential: absence, void, emptiness | |
| 'noticed': ( +29, +20, +34, +12, +16), # freq=168 | |
| 'nowadays': ( +39, -27, -29, +0, +6), # freq=61 | |
| 'nowhere': (-114, -58, -127, +0, +48), # freq=59 | |
| 'numb': ( -35, -20, -30, +0, -25), # grief: emotional shutdown, dissociation | |
| 'nurse': ( +50, +9, +17, +38, +8), # freq=29 | |
| 'obnoxious': (-127, +27, -109, +23, -61), # freq=10 | |
| 'occasion': ( +43, -9, -29, +0, +8), # freq=55 | |
| 'odd': ( -55, -38, -72, +0, -29), # freq=64 | |
| 'offer': ( +56, +42, +29, +9, +20), # freq=135 | |
| 'offered': ( +24, -2, +19, +0, +10), # freq=160 | |
| 'often': ( +39, +29, +34, +0, +0), # freq=374 | |
| 'ohhh': ( -57, -13, -59, +0, -28), # freq=27 | |
| 'oil': ( +50, -9, +126, +38, +32), # freq=66 | |
| 'okay': ( +28, -13, +24, +0, +0), # freq=822 | |
| 'oldest': ( -27, -36, -54, +0, -17), # freq=86 | |
| 'omg': ( +29, +69, -17, +25, +24), # freq=119 | |
| 'online': ( +28, +13, +24, +18, +10), # freq=282 | |
| 'ooo': ( -40, -15, -64, +0, -24), # freq=16 | |
| 'opened': ( +29, +29, +54, +25, +0), # freq=83 | |
| 'opening': ( +57, +51, +67, +67, +8), # freq=43 | |
| 'opinion': ( +28, -4, +54, +0, +17), # freq=43 | |
| 'opportunities': ( +50, +27, +34, +0, +20), # freq=25 | |
| 'opportunity': ( +50, +40, +54, +25, +32), # freq=96 | |
| 'opposite': ( -62, +9, -32, +6, -25), # freq=47 | |
| 'options': ( +28, +51, +59, +43, +8), # freq=48 | |
| 'orange': ( +62, +13, +52, +6, -10), # freq=15 | |
| 'ordeal': ( -77, +90, -109, +77, -36), # freq=16 | |
| 'order': ( +28, +13, +74, +18, +10), # freq=221 | |
| 'organized': ( +32, -13, +34, +0, +14), # freq=38 | |
| 'others': ( +35, +9, -64, +2, +0), # freq=287 | |
| 'otherwise': ( -27, -15, -39, +0, -16), # freq=80 | |
| 'ouch': ( -40, -15, -72, +0, -25), # freq=85 | |
| 'outfit': ( +58, -2, +17, +0, +19), # freq=19 | |
| 'outlook': ( +34, +2, +17, +0, +13), # freq=24 | |
| 'outside': ( +29, +20, +17, +12, -8), # freq=492 | |
| 'overnight': ( -49, -29, +17, +0, -13), # freq=19 | |
| 'overtime': ( -42, +49, -67, +81, -20), # freq=19 | |
| 'overwhelming': ( -77, +119, -127, +97, -48), # freq=38 | |
| 'owner': ( +28, -4, +57, +0, +17), # freq=65 | |
| 'package': ( +28, +27, +24, +18, +10), # freq=99 | |
| 'painful': ( -89, +40, -55, +63, -45), # freq=73 | |
| 'pains': (-109, +47, -59, +34, -48), # freq=11 | |
| 'painting': ( +32, -15, -22, +0, +5), # freq=35 | |
| 'pair': ( +57, +18, +59, +12, +14), # freq=70 | |
| 'panama': ( +35, +0, +0, +0, +10), # freq=20 | |
| 'paranoid': (-106, +112, -59, +86, -46), # freq=15 | |
| 'parcel': ( +35, -31, -24, +0, +6), # freq=23 | |
| 'participate': ( +56, +13, +54, +2, +25), # freq=16 | |
| 'parties': ( +35, +42, +4, +6, +10), # freq=33 | |
| 'party': ( +50, +58, +34, +0, +40), # freq=696 | |
| 'passion': ( +36, +31, +29, +3, +16), # freq=35 | |
| 'pasta': ( +62, +9, +52, +18, +8), # freq=27 | |
| 'patch': ( +50, +40, +72, +103, +0), # freq=20 | |
| 'path': ( +51, +13, +52, +12, +10), # freq=48 | |
| 'paycheck': ( +57, +38, +59, +61, -14), # freq=51 | |
| 'payday': ( +37, +20, +9, +2, +13), # freq=20 | |
| 'peeved': ( -96, +65, -17, +50, -36), # freq=20 | |
| 'pepper': ( +39, +69, +34, +12, -8), # freq=34 | |
| 'pepperoni': ( +57, +33, +24, +24, +8), # freq=16 | |
| 'perfect': ( +42, +13, +34, +0, +23), # freq=198 | |
| 'perfectly': ( +51, +0, +27, +0, +20), # freq=53 | |
| 'perform': ( +58, +9, +79, +2, +31), # freq=29 | |
| 'performance': ( +56, +4, +49, +0, +24), # freq=63 | |
| 'personal': ( +56, -33, -9, +0, +14), # freq=72 | |
| 'personality': ( +42, +0, +39, +0, +19), # freq=30 | |
| 'perspective': ( +42, -6, +57, +0, +23), # freq=31 | |
| 'pet': ( +39, +20, +34, +0, +16), # freq=357 | |
| 'phobia': ( -92, +108, -92, +77, -46), # freq=13 | |
| 'physical': ( +56, +4, +32, +0, +20), # freq=53 | |
| 'piano': ( +43, -27, -17, +0, +9), # freq=27 | |
| 'picked': ( +51, +4, +49, +0, +24), # freq=106 | |
| 'picky': ( -57, +51, +37, +31, -13), # freq=14 | |
| 'pictures': ( +34, -45, -29, +0, +5), # freq=179 | |
| 'pie': ( +39, -9, -19, +0, +8), # freq=27 | |
| 'piece': ( +39, +20, +54, +25, +16), # freq=131 | |
| 'pig': ( +37, +9, +59, +6, +42), # freq=24 | |
| 'pimple': ( -59, -29, -82, +0, -34), # freq=12 | |
| 'pineapple': ( +37, -33, -72, +0, -1), # freq=22 | |
| 'pink': ( +32, +13, +7, +0, -10), # freq=31 | |
| 'pizza': ( +57, +22, +17, +24, +8), # freq=381 | |
| 'planet': ( +43, -18, +97, +0, +28), # freq=12 | |
| 'plant': ( +29, +20, +34, +12, +16), # freq=57 | |
| 'pleasant': ( +44, -15, +24, +0, +17), # freq=47 | |
| 'pleasantly': ( +51, -22, -2, +0, +14), # freq=11 | |
| 'pleasure': ( +44, +20, +24, +1, +17), # freq=22 | |
| 'plenty': ( +39, +20, +54, +0, +24), # freq=74 | |
| 'plus': ( +51, +0, +2, +0, +16), # freq=113 | |
| 'poison': (-127, +127, +127, +127, +61), # freq=10 | |
| 'poisoning': (-114, +90, +9, +70, -36), # freq=20 | |
| 'poisonous': (-112, +99, +17, +77, -36), # freq=21 | |
| # 'pokemon' removed — proper noun, noise | |
| # 'policy' removed — neutral factual word with extreme D bias | |
| 'political': ( -36, +51, +127, +29, +9), # freq=36 | |
| 'politics': ( -59, +6, +126, +3, +1), # freq=12 | |
| 'poo': ( -96, -29, -124, +0, -55), # freq=18 | |
| 'poop': ( -94, -18, -127, +0, -55), # freq=118 | |
| 'poor': (-127, +29, -127, +116, +85), # freq=201 | |
| 'poorly': (-119, +33, -127, +27, -68), # freq=19 | |
| 'pop': ( +37, +2, -2, +0, +10), # freq=37 | |
| 'popular': ( +39, +15, +29, +1, +16), # freq=27 | |
| 'position': ( +21, -9, +9, +0, +8), # freq=211 | |
| 'positive': ( +48, +0, +47, +0, +21), # freq=292 | |
| 'possibility': ( +34, +0, +4, +0, +10), # freq=22 | |
| 'potato': ( +57, +4, +59, +18, +8), # freq=10 | |
| 'potatoes': ( +42, -40, -54, +0, +2), # freq=23 | |
| 'potty': ( -32, -27, -67, +0, -21), # freq=54 | |
| 'power': ( +29, +49, +126, +25, +24), # freq=149 | |
| 'practice': ( +28, +27, +49, +18, +10), # freq=102 | |
| 'pray': ( +28, +27, -24, +35, +23), # freq=103 | |
| 'prayer': ( +55, -49, +29, +0, +20), # freq=17 | |
| 'praying': ( +32, -47, -24, +0, +5), # freq=37 | |
| 'precious': ( +28, +13, +17, +6, +10), # freq=44 | |
| 'prefer': ( +58, -20, +9, +0, +17), # freq=58 | |
| 'pregnancy': ( +51, +47, +22, +9, +19), # freq=39 | |
| 'pregnant': ( +28, +69, -49, +54, +10), # freq=196 | |
| 'prep': ( +42, +2, +14, +0, +14), # freq=19 | |
| 'prepare': ( +34, +9, +29, +2, +14), # freq=101 | |
| 'prepared': ( +46, -4, +69, +0, +24), # freq=697 | |
| 'preparing': ( +51, +6, +24, +2, +19), # freq=40 | |
| 'presence': ( +39, -4, +14, +0, +13), # freq=18 | |
| 'present': ( +28, +13, +24, +0, +10), # freq=96 | |
| 'presentation': ( -24, +127, +49, +127, +23), # freq=101 | |
| 'presents': ( +29, -9, +2, +0, +9), # freq=44 | |
| 'president': ( +37, +22, +127, +4, +35), # freq=48 | |
| 'pressure': ( -42, +63, -67, +65, -9), # freq=39 | |
| 'prestigious': ( +51, +11, +57, +0, +24), # freq=10 | |
| 'pretended': ( -94, +15, -119, +11, -53), # freq=22 | |
| 'previous': ( +29, +20, +126, +63, +32), # freq=48 | |
| 'priceless': ( +55, +36, +89, +7, +31), # freq=15 | |
| 'pricey': ( -37, +15, -27, +9, -16), # freq=19 | |
| 'prison': (-114, +58, -127, +77, -85), # freq=22 | |
| 'private': ( +35, -13, +42, +0, +17), # freq=37 | |
| 'prize': ( +28, +22, +24, +0, +19), # freq=55 | |
| 'pro': ( +35, -6, +54, +0, +19), # freq=28 | |
| 'problem': ( -32, +38, -44, +65, -9), # freq=308 | |
| 'productive': ( +35, +15, +37, +2, +16), # freq=32 | |
| 'professional': ( +35, -4, +59, +0, +20), # freq=48 | |
| 'professor': ( +34, -18, +64, +0, +20), # freq=31 | |
| 'profit': ( +66, +38, +77, +12, -23), # freq=11 | |
| 'progress': ( +39, +29, +54, +12, +24), # freq=66 | |
| 'project': ( +29, +49, +72, +103, +16), # freq=206 | |
| 'promise': ( +39, +20, +54, +12, +16), # freq=58 | |
| 'promised': ( +37, -22, +2, +0, +10), # freq=109 | |
| 'promoted': ( +48, +27, +52, +1, +23), # freq=79 | |
| 'promotion': ( +32, +27, +42, +12, +19), # freq=362 | |
| 'properly': ( +35, -20, +22, +0, +13), # freq=43 | |
| 'property': ( +51, -40, +87, +0, +31), # freq=50 | |
| # 'proposal' removed — neutral factual word causing positive drift | |
| 'proposed': ( +35, +56, +57, +15, +20), # freq=24 | |
| 'protein': ( +56, -29, +42, +0, +24), # freq=17 | |
| 'provider': ( +56, -2, +72, +0, +28), # freq=15 | |
| 'public': ( +28, +2, +64, +0, +20), # freq=121 | |
| 'puke': ( -83, +11, -92, +7, -43), # freq=25 | |
| 'punch': (-127, +127, +127, +127, +108), # freq=26 | |
| 'punched': ( -86, +36, -22, +27, -34), # freq=11 | |
| 'punish': (-123, +83, +49, +66, -34), # freq=21 | |
| 'punished': ( -92, +63, -9, +46, -31), # freq=13 | |
| 'punishment': (-117, +85, +17, +70, -39), # freq=14 | |
| 'pup': ( +56, -13, -57, +0, +6), # freq=33 | |
| 'puppies': ( +51, +27, -54, +0, +5), # freq=42 | |
| 'puppy': ( +32, +22, +7, +0, +23), # freq=242 | |
| 'purchased': ( +32, +24, -4, +3, +8), # freq=49 | |
| 'pure': ( +50, +9, +34, +0, +24), # freq=10 | |
| 'qualified': ( +58, +4, +89, +0, +32), # freq=37 | |
| 'quality': ( +29, +20, +34, +0, +16), # freq=67 | |
| 'quick': ( +42, +47, +52, +67, -19), # freq=99 | |
| 'quiet': ( +28, -69, +24, +0, +0), # freq=195 | |
| 'quitting': ( -79, +33, -124, +23, -48), # freq=14 | |
| 'rabbit': ( +39, -29, -74, +0, +0), # freq=26 | |
| 'raise': ( +29, +29, +34, +12, +16), # freq=242 | |
| 'raised': ( +34, -31, +39, +0, +17), # freq=57 | |
| 'ramen': ( +51, +13, +34, +24, +8), # freq=30 | |
| 'rash': ( -79, +67, -4, +46, -28), # freq=11 | |
| 'rat': (-127, +127, -127, +127, +24), # freq=40 | |
| 'ready': ( +80, +78, +119, +121, -34), # freq=962 | |
| 'realistic': ( +43, +4, +82, +0, +25), # freq=16 | |
| 'realized': ( +36, -27, +22, +0, +14), # freq=191 | |
| 'receive': ( +51, -6, +14, +0, +17), # freq=63 | |
| 'received': ( +32, -11, +17, +0, +12), # freq=135 | |
| 'recipe': ( +28, +13, +49, +0, +10), # freq=63 | |
| 'recital': ( +35, -4, +9, +0, +12), # freq=24 | |
| 'recognize': ( +58, -33, +29, +0, +20), # freq=24 | |
| 'recognized': ( +39, -4, +39, +0, +17), # freq=21 | |
| 'record': ( +29, +29, +54, +12, +16), # freq=52 | |
| 'recover': ( +39, +20, +54, +12, +16), # freq=54 | |
| 'red': ( +28, +83, +74, +35, +10), # freq=163 | |
| 'reflect': ( +37, -40, +22, +0, +14), # freq=23 | |
| 'refreshing': ( +44, +2, +9, +0, +14), # freq=15 | |
| 'refund': ( +28, +40, +49, +54, +10), # freq=74 | |
| 'refuse': ( -89, +6, -77, +3, -43), # freq=18 | |
| 'refused': ( -94, -6, -127, +0, -55), # freq=42 | |
| 'rejection': ( -89, +74, -127, +57, -48), # freq=10 | |
| 'relate': ( +34, +0, +34, +0, +16), # freq=104 | |
| 'related': ( +37, -24, +7, +0, +12), # freq=43 | |
| 'relative': ( +29, +29, -34, +38, +0), # freq=41 | |
| 'relax': ( +50, -49, +54, +0, +16), # freq=193 | |
| 'relaxation': ( +39, -22, -17, +0, +8), # freq=17 | |
| 'relaxed': ( +37, -38, -12, +0, +9), # freq=51 | |
| 'relaxing': ( +36, -29, -2, +0, +9), # freq=191 | |
| 'release': ( +39, -20, +54, -12, +24), # freq=26 | |
| 'released': ( +35, +0, +19, +0, +13), # freq=29 | |
| 'reliable': ( +42, -22, +52, +0, +21), # freq=39 | |
| 'religious': ( +51, -47, +57, +0, +24), # freq=17 | |
| 'relive': ( +56, +27, +54, +4, +25), # freq=14 | |
| 'rely': ( +32, -4, +14, +0, +12), # freq=46 | |
| 'remain': ( +46, -24, +64, +0, +24), # freq=20 | |
| 'remember': ( -23, +22, -24, +6, -13), # freq=823 | |
| 'remembered': ( +37, -22, +9, +0, +13), # freq=79 | |
| 'reminisce': ( +42, +0, -19, +0, +9), # freq=19 | |
| 'reminiscing': ( +42, -11, -24, +0, +8), # freq=18 | |
| 'remote': ( +51, -18, +77, +0, -19), # freq=20 | |
| 'remove': ( -49, +9, -9, +6, -17), # freq=11 | |
| 'removed': (-100, -90, -97, +0, -51), # freq=26 | |
| 'rent': ( -42, +49, -67, +81, -29), # freq=103 | |
| 'replaced': ( -42, +47, -99, +29, -32), # freq=44 | |
| # 'report' removed — neutral factual word with extreme A/D/U/G bias | |
| 'rescue': ( +39, +58, +72, +51, +24), # freq=75 | |
| 'rescued': ( +51, +22, -57, +0, +5), # freq=37 | |
| 'research': ( +28, +40, +49, +35, +10), # freq=93 | |
| 'resolved': ( +51, -24, +54, +0, +24), # freq=25 | |
| 'respect': ( +50, +20, +54, +0, +16), # freq=74 | |
| 'response': ( +39, +40, +72, +89, +0), # freq=47 | |
| 'responsibilities': ( +35, +27, +52, +3, +17), # freq=30 | |
| 'responsibility': ( +58, +0, +102, +0, +34), # freq=33 | |
| 'rest': ( +29, -40, +34, +0, +8), # freq=258 | |
| 'restaurant': ( +32, +18, +24, +12, +4), # freq=320 | |
| 'restroom': ( +34, -40, -69, +0, -1), # freq=41 | |
| 'retire': ( +62, -27, +84, +0, -29), # freq=28 | |
| 'retired': ( -52, -54, -72, +0, -29), # freq=24 | |
| 'retirement': ( +66, -38, +84, +0, -34), # freq=35 | |
| 'returned': ( +29, +20, +34, +0, +8), # freq=95 | |
| 'reunion': ( +35, +0, +24, +0, +14), # freq=44 | |
| 'reunited': ( +46, -9, +47, +0, +20), # freq=15 | |
| 'revenge': ( -77, +103, +109, +77, +36), # freq=14 | |
| 'review': ( +35, -15, +39, +0, +17), # freq=40 | |
| 'revolting': (-127, +58, +54, +39, +36), # freq=10 | |
| 'rewarding': ( +48, +11, +39, +0, +20), # freq=49 | |
| 'rich': ( +39, +20, +54, +0, +16), # freq=48 | |
| 'rid': ( -86, -24, -77, +0, -40), # freq=74 | |
| 'ridden': ( -94, +90, -92, +66, -48), # freq=14 | |
| 'ride': ( +80, +60, +77, +30, +23), # freq=227 | |
| 'ridiculous': ( -52, +63, +44, +31, +29), # freq=65 | |
| 'riding': ( +42, +27, +34, +7, +17), # freq=92 | |
| 'rip': (-114, +29, -127, +19, +48), # freq=35 | |
| 'ripped': ( -55, +60, -30, +35, -20), # freq=39 — torn away, violent removal | |
| 'roach': (-127, +119, -127, +127, +36), # freq=14 | |
| 'robbed': (-104, +83, -127, +66, -68), # freq=59 | |
| 'robber': (-102, +72, -9, +54, -36), # freq=11 | |
| 'roll': ( +28, +127, +127, +127, -23), # freq=61 | |
| 'roller': ( +51, +33, +67, +36, +10), # freq=101 | |
| 'romantic': ( +50, +29, +17, +0, +24), # freq=33 | |
| 'roommate': ( +56, -4, -2, +0, +16), # freq=129 | |
| 'rotten': (-102, +74, -54, +39, -48), # freq=24 | |
| 'rotting': ( -86, -9, -109, +0, -48), # freq=15 | |
| 'rough': ( -32, +49, +44, +31, -9), # freq=242 | |
| 'rude': ( -67, +33, +22, +32, +27), # freq=167 | |
| 'ruin': (-104, +24, -127, +19, -58), # freq=47 | |
| 'sadly': (-127, -65, -124, +0, -65), # freq=67 | |
| 'safely': ( +51, -29, +12, +0, +17), # freq=30 | |
| 'safety': ( +46, -2, +104, +0, +31), # freq=34 | |
| 'salad': ( +37, -4, +24, +0, -14), # freq=31 | |
| 'salary': ( +48, +18, +67, +12, -8), # freq=27 | |
| 'sale': ( +29, +20, +34, +12, +16), # freq=64 | |
| 'sales': ( +32, +51, +59, +67, -4), # freq=36 | |
| 'sandwich': ( +51, +9, +52, +30, +4), # freq=61 | |
| 'santa': ( +51, -38, +2, +0, +16), # freq=10 | |
| 'satisfying': ( +41, +9, +42, +1, +19), # freq=21 | |
| 'save': ( +29, +20, +34, +12, +8), # freq=235 | |
| 'saved': ( +51, -24, +42, +0, +21), # freq=123 | |
| 'saving': ( +35, -47, +34, +0, +16), # freq=135 | |
| 'scale': ( -44, -36, +27, +0, -9), # freq=12 | |
| 'scam': ( -89, +90, -109, +97, -24), # freq=14 | |
| 'scare': (-106, +110, -104, +86, -53), # freq=105 | |
| 'scares': (-106, +92, -49, +70, -46), # freq=39 | |
| 'scariest': ( -94, +99, +17, +70, -28), # freq=15 | |
| 'scary': ( -77, +103, -127, +57, +36), # freq=904 | |
| 'scenery': ( +55, -42, +24, +0, +20), # freq=10 | |
| # 'scheduled' removed — neutral factual word causing positive drift | |
| 'scholarship': ( +32, +22, +34, +0, +23), # freq=67 | |
| 'science': ( +42, +27, +67, +18, +14), # freq=63 | |
| 'scold': ( -86, +67, +54, +46, -19), # freq=18 | |
| 'score': ( +50, +49, +72, +12, +32), # freq=77 | |
| 'scored': ( +35, +27, +29, +3, +14), # freq=29 | |
| 'scratch': ( -32, +38, -22, +31, +0), # freq=102 | |
| 'seafood': ( +34, +0, -49, +0, +1), # freq=22 | |
| 'season': ( +29, -6, +2, +0, +9), # freq=250 | |
| 'secret': ( -24, +54, +49, +54, +10), # freq=118 | |
| 'secure': ( +39, -9, +89, +0, +16), # freq=28 | |
| 'security': ( +42, +6, +31, +30, +11), # freq=77 | |
| 'self': ( +43, -24, +0, +0, +12), # freq=236 | |
| 'selfish': ( -52, +38, +44, +15, +9), # freq=31 | |
| 'semi': ( -47, -36, -72, +0, -28), # freq=23 | |
| 'sense': ( +29, -6, -2, +0, +8), # freq=194 | |
| 'sensitive': ( +48, -13, -72, +0, +1), # freq=14 | |
| 'sentimental': ( +24, -29, -74, +0, -4), # freq=308 | |
| 'separated': ( -89, +74, -127, +57, -61), # freq=21 | |
| 'served': ( +42, -15, -89, +0, -2), # freq=20 | |
| 'service': ( +39, -15, +9, +0, +12), # freq=164 | |
| 'settle': ( +35, +2, +37, +0, +16), # freq=27 | |
| 'severe': ( -94, +63, +59, +46, -21), # freq=36 | |
| 'shaking': ( -37, +44, -46, +53, +15), # freq=30 | |
| 'shape': ( +28, +0, -29, +0, +2), # freq=49 | |
| 'share': ( +29, +20, +17, +0, +16), # freq=125 | |
| 'shared': ( +35, +0, +29, +0, +14), # freq=32 | |
| 'sharing': ( +34, -2, +7, +0, +10), # freq=29 | |
| 'shark': (-127, +127, +127, +127, +85), # freq=18 | |
| 'sheesh': ( -47, +6, -32, +3, -21), # freq=11 | |
| 'shelter': ( +28, +27, +24, +18, +10), # freq=86 | |
| 'shining': ( +39, +15, +42, +1, +19), # freq=40 | |
| 'shipping': ( +50, +69, +89, +127, +16), # freq=16 | |
| 'shock': ( -42, +112, -92, +81, +20), # freq=71 | |
| 'shoot': (-114, +112, +54, +89, -31), # freq=28 | |
| 'shooting': ( -52, +96, +37, +61, -12), # freq=29 | |
| 'shopping': ( +43, -4, +17, +0, +14), # freq=214 | |
| 'shredded': ( -47, +74, -127, +45, -42), # freq=11 | |
| 'shrimp': ( +51, +18, +24, +18, -8), # freq=12 | |
| 'shut': ( -32, +24, +44, +31, -9), # freq=56 | |
| 'sibling': ( +57, +22, +52, +18, +10), # freq=28 | |
| 'sickness': (-114, +54, -92, +43, -55), # freq=12 | |
| 'sight': ( +39, -42, +7, +0, +12), # freq=41 | |
| 'silly': ( -27, -36, -122, +0, -29), # freq=57 | |
| 'simple': ( +28, -13, +49, +0, +10), # freq=62 | |
| 'sing': ( +50, +40, +34, +0, +32), # freq=32 | |
| 'singing': ( +39, +6, +2, +1, +12), # freq=39 | |
| 'site': ( +37, -40, -14, +0, +9), # freq=23 | |
| 'skateboard': ( +37, +9, -42, +2, +5), # freq=20 | |
| 'skating': ( +55, +31, -17, +7, +12), # freq=21 | |
| 'skiing': ( +34, +27, +17, +3, +13), # freq=35 | |
| 'skill': ( +35, +15, +47, +2, +17), # freq=46 | |
| 'skunk': ( -51, -2, -44, +0, -24), # freq=13 | |
| 'slammed': ( -89, +127, +127, +93, -6), # freq=20 | |
| 'slap': (-127, +127, +127, +127, +36), # freq=19 | |
| 'slapped': (-109, +127, -119, +100, -58), # freq=12 | |
| 'sleepy': ( +50, -127, -126, +115, +40), # freq=11 | |
| 'slipped': ( -42, +67, -127, +39, -44), # freq=78 | |
| 'slow': (-114, -127, +127, +116, +127), # freq=118 | |
| 'smack': ( -40, +38, -44, +23, -21), # freq=23 | |
| 'small': ( +42, +9, -77, +6, -27), # freq=291 | |
| 'smaller': ( -47, -42, -119, +0, -36), # freq=24 | |
| 'smart': ( +50, +29, +72, +0, +24), # freq=270 | |
| 'smarter': ( +44, +0, +7, +0, +14), # freq=11 | |
| 'smash': ( -86, +51, +9, +34, -27), # freq=120 | |
| 'smashed': ( -96, +42, -109, +30, -51), # freq=17 | |
| 'smelly': (-112, +9, -109, +7, -58), # freq=16 | |
| 'smile': ( +48, +18, +24, +0, -10), # freq=61 | |
| 'smoke': ( -32, +24, -22, +15, -9), # freq=30 | |
| 'smoking': ( -42, +24, -22, +15, -9), # freq=26 | |
| 'snacks': ( +29, -2, -27, +0, +4), # freq=38 | |
| 'snake': (-127, +127, -127, +127, +12), # freq=94 | |
| 'snakes': ( -92, +45, +42, +30, -24), # freq=60 | |
| 'sneak': ( -51, +54, -17, +35, -20), # freq=18 | |
| 'sneaky': ( -37, +50, +37, +93, -7), # freq=19 | |
| 'snuck': ( -44, +69, -72, +41, -28), # freq=13 | |
| 'soccer': ( +43, +58, +42, +15, +19), # freq=104 | |
| 'social': ( +32, +33, +17, +12, -8), # freq=159 | |
| 'socialize': ( +42, +15, +29, +1, +17), # freq=16 | |
| 'society': ( +37, +13, +65, +10, +36), # freq=41 | |
| 'socks': ( +51, -18, +34, +6, +4), # freq=32 | |
| 'soda': ( +32, +22, +24, +18, -8), # freq=32 | |
| 'softball': ( +51, +24, +2, +4, +16), # freq=15 | |
| 'solution': ( +39, +29, +72, +25, +24), # freq=27 | |
| 'solve': ( +39, +29, +72, +25, +24), # freq=23 | |
| 'sometimes': ( +28, +0, +49, +0, +10), # freq=1415 | |
| 'somewhere': ( -27, -4, -22, +0, -13), # freq=145 | |
| 'sore': (-102, +29, -109, +57, +48), # freq=18 | |
| 'sorry': ( -32, +24, -67, +15, -20), # freq=2697 | |
| 'sort': ( +37, -20, +49, +0, +19), # freq=152 | |
| # 'sound' removed — dual-use noun/adjective, "sounds good" vs "every sound makes me jump" | |
| 'source': ( +51, -31, +54, +0, +24), # freq=17 | |
| 'south': ( +32, +18, +42, +6, +4), # freq=88 | |
| 'space': ( +31, -15, +9, +0, +10), # freq=65 | |
| 'spaghetti': ( +50, -24, -62, +0, +5), # freq=15 | |
| 'speak': ( +28, +27, +49, +18, +10), # freq=109 | |
| # 'speaking' removed — neutral verb carrying false positive charge ("generally speaking") | |
| 'special': ( +50, +29, +34, +0, +24), # freq=352 | |
| 'specialist': ( +58, +11, +107, +2, +35), # freq=11 | |
| 'specific': ( +34, -20, +54, +0, +19), # freq=75 | |
| 'speech': ( +34, -6, +54, +0, +19), # freq=116 | |
| 'speed': ( +48, +60, +47, +15, +23), # freq=49 | |
| 'spider': (-127, +127, -127, +127, +12), # freq=75 | |
| 'spiders': ( -55, +45, -49, +29, -28), # freq=66 | |
| 'spilled': ( -24, +40, -24, +35, -10), # freq=93 | |
| 'spirit': ( +57, +42, +59, +12, -38), # freq=34 | |
| 'spit': (-100, +11, -27, +7, -39), # freq=19 | |
| 'spite': (-117, +27, -82, +23, -53), # freq=11 | |
| 'split': ( -36, +27, -32, +15, -17), # freq=25 | |
| 'spoil': (-100, +58, -77, +43, -46), # freq=25 | |
| 'spoiled': ( -52, +38, -22, +31, -20), # freq=32 | |
| 'spoke': ( +29, -11, -2, +0, +8), # freq=48 | |
| 'sport': ( +37, +15, +22, +2, +14), # freq=49 | |
| 'sports': ( +35, +15, +12, +2, +12), # freq=88 | |
| 'spring': ( +48, +22, +34, +0, -14), # freq=62 | |
| 'squid': ( +39, +69, +72, +77, -32), # freq=16 | |
| 'staff': ( +55, -40, +34, +0, +23), # freq=22 | |
| 'stage': ( +28, -47, -9, +0, +6), # freq=59 | |
| 'stamp': ( +42, +13, +59, +30, +8), # freq=14 | |
| 'starved': (-112, +51, -114, +39, -58), # freq=28 | |
| 'station': ( +50, +90, +126, +127, +80), # freq=84 | |
| 'steak': ( +57, +18, +24, +6, +19), # freq=50 | |
| 'steal': ( -89, +90, +82, +77, +24), # freq=83 | |
| 'stealing': (-117, +110, -22, +89, -43), # freq=64 | |
| 'stick': ( +28, +13, +74, +35, +34), # freq=83 | |
| 'sting': ( -94, +42, -54, +30, -40), # freq=10 | |
| 'stink': (-127, -6, -127, +0, -68), # freq=13 | |
| 'stole': (-102, +67, -49, +50, -43), # freq=248 | |
| 'stolen': ( -96, +38, -82, +27, -48), # freq=69 | |
| 'storage': ( +50, +20, +107, +38, +16), # freq=26 | |
| 'stories': ( +37, +2, +0, +0, +10), # freq=65 | |
| 'storm': ( -52, +99, -67, +81, -20), # freq=181 | |
| 'storming': ( -55, +92, +64, +59, -8), # freq=17 | |
| 'strange': ( -24, +40, -49, +18, +10), # freq=133 | |
| 'stray': ( -32, +24, -44, +15, -20), # freq=48 | |
| 'strength': ( +39, +40, +126, +12, +24), # freq=40 | |
| 'stressful': ( -96, +101, -49, +73, -40), # freq=191 | |
| 'stressing': ( -94, +99, -17, +70, -36), # freq=20 | |
| 'stroke': (-127, +127, -127, +127, +85), # freq=29 | |
| 'struck': ( -47, -24, +4, +0, -16), # freq=20 | |
| 'struggled': ( -86, +117, -127, +81, -55), # freq=21 | |
| 'stubbed': ( -40, +31, -94, +19, -29), # freq=23 | |
| 'stuck': ( -52, +49, -114, +65, -29), # freq=164 | |
| 'student': ( +51, +33, -24, +24, +4), # freq=122 | |
| 'studied': ( +29, -15, +39, +0, +16), # freq=250 | |
| 'stumbled': ( -81, +83, -127, +57, -61), # freq=15 | |
| 'stupid': ( -89, +74, +54, +39, +36), # freq=139 | |
| 'style': ( +55, -6, +24, +0, +19), # freq=53 | |
| 'succeed': ( +44, +22, +57, +1, +23), # freq=38 | |
| 'successful': ( +37, +22, +52, +0, +19), # freq=66 | |
| 'successfully': ( +51, +27, +62, +0, +25), # freq=19 | |
| 'suddenly': ( +37, +2, -14, +0, +8), # freq=70 | |
| 'sue': ( -52, +63, +67, +65, +9), # freq=17 | |
| 'suffer': (-117, +110, -104, +89, -58), # freq=29 | |
| 'summer': ( +51, +27, +42, +0, -10), # freq=561 | |
| 'sundays': ( +35, -27, +0, +0, +9), # freq=21 | |
| 'sunny': ( +50, +29, +34, +0, +40), # freq=32 | |
| 'super': ( +29, +29, +34, +0, +16), # freq=650 | |
| 'supermarket': ( +42, +9, +22, +2, +16), # freq=23 | |
| 'supper': ( +46, -11, +14, +0, +16), # freq=13 | |
| 'supplies': ( +43, -20, +29, +0, +17), # freq=97 | |
| 'support': ( +37, +9, +22, +0, +12), # freq=226 | |
| 'supposed': ( -47, -27, -44, +0, -24), # freq=289 | |
| 'sure': ( +28, +0, +49, +18, +0), # freq=3594 | |
| 'surgery': ( -25, +30, -30, +40, -20), # medical context -- scary alone, but "went well" = relief | |
| 'surprises': ( +39, +22, +19, +2, +14), # freq=21 | |
| 'surprising': ( +41, +24, +24, +2, +16), # freq=32 | |
| 'surprisingly': ( +35, +24, +44, +3, +17), # freq=23 | |
| 'survived': ( +35, +24, +37, +3, +16), # freq=37 | |
| 'sushi': ( +51, +18, +17, +12, -8), # freq=36 | |
| 'suspect': (-102, +65, +4, +50, -34), # freq=14 | |
| 'suspicious': ( -96, +65, -32, +46, -39), # freq=16 | |
| 'swallow': ( +50, +49, +126, +103, +24), # freq=12 | |
| 'sweat': ( -52, +127, -44, +127, +29), # freq=38 | |
| 'sweating': ( -52, +87, -92, +97, +20), # freq=24 | |
| 'sweaty': ( -51, +9, -72, +6, -29), # freq=16 | |
| 'sweet': ( +50, +20, +17, +0, +24), # freq=569 | |
| 'sweetest': ( +48, +0, -17, +0, +10), # freq=22 | |
| 'sweetheart': ( +48, -6, +2, +0, +14), # freq=15 | |
| 'sweets': ( +42, -6, -24, +0, +8), # freq=17 | |
| 'swift': ( +50, +49, +57, +12, +24), # freq=12 | |
| 'swim': ( +90, +56, +77, +24, -19), # freq=57 | |
| 'swimming': ( +28, +40, +24, +18, +23), # freq=92 | |
| 'switch': ( +39, +69, +127, +127, +16), # freq=109 | |
| # 'system' removed — neutral factual word with extreme D bias | |
| 'taco': ( +42, +10, +10, +25, -3), # freq=26 | |
| 'talent': ( +48, +9, +47, +0, +21), # freq=70 | |
| 'talented': ( +44, +11, +59, +0, +23), # freq=58 | |
| 'taste': ( +71, +51, +59, +24, -8), # freq=73 | |
| 'taught': ( +32, -2, +19, +0, +13), # freq=89 | |
| 'tax': (-127, +90, -127, +127, +73), # freq=36 | |
| 'teach': ( +29, +20, +54, +12, +16), # freq=136 | |
| 'teacher': ( +28, +13, +42, +12, +4), # freq=156 | |
| 'teaching': ( +32, -4, +32, +0, +14), # freq=62 | |
| 'team': ( +29, +20, +34, +0, +16), # freq=383 | |
| 'tear': ( -52, +63, -92, +31, -29), # freq=19 | |
| 'tears': ( -20, +40, -20, +20, +30), # liquid -- tears of joy vs tears of pain | |
| 'teary': ( -94, -6, -124, +0, -53), # freq=12 | |
| 'tech': ( +39, -2, +69, +0, +23), # freq=33 | |
| 'tent': ( +62, +33, +59, +18, +10), # freq=21 | |
| 'terrifying': (-127, +90, +42, +77, -39), # freq=143 | |
| 'thank': ( +50, +20, +17, +0, +24), # freq=990 | |
| 'thankful': ( +21, +4, +7, +0, +8), # freq=315 | |
| 'thankfully': ( +51, -15, -4, +0, +14), # freq=186 | |
| 'thanks': ( +39, +9, +0, +0, +16), # freq=799 | |
| 'thanksgiving': ( +44, -4, +19, +0, +16), # freq=52 | |
| 'theater': ( +58, +24, +2, +4, +17), # freq=25 | |
| 'therapist': ( +48, -13, +34, +18, -8), # freq=17 | |
| 'thick': ( +50, +29, +127, +25, +121), # freq=24 | |
| 'thieves': (-127, +90, +127, +77, -24), # freq=13 | |
| 'thoughtful': ( +50, +9, +54, +0, +24), # freq=56 | |
| 'thoughts': ( +55, -22, +54, +0, +25), # freq=59 | |
| # 'thousand' removed — number word, noise | |
| 'threatened': (-125, +117, -64, +93, -53), # freq=4 | |
| 'threatening': (-119, +101, +64, +81, -31), # freq=10 | |
| # 'three' removed — number word, pure noise | |
| 'threw': ( -77, +9, -42, +7, -34), # freq=233 | |
| 'thrift': ( +58, -49, +42, +0, +24), # freq=13 | |
| 'thunderstorm': (-102, +94, +124, +73, -14), # freq=14 | |
| 'tight': ( -52, +99, +127, +127, +61), # freq=39 | |
| 'tiny': ( +48, +18, -52, +12, -29), # freq=74 | |
| 'tip': ( +37, +13, +34, +6, -8), # freq=48 | |
| 'tired': ( -28, -28, -27, +13, -30), # freq=155 | |
| 'toast': ( +51, -22, -42, +0, +8), # freq=10 | |
| 'toddler': ( +56, -6, -39, +0, +9), # freq=38 | |
| 'toe': ( +28, +40, +74, +18, +10), # freq=44 | |
| 'toll': ( -47, -18, -17, +0, -20), # freq=12 | |
| 'tongue': ( +42, +38, +34, +49, -4), # freq=13 | |
| 'top': ( +51, +33, +84, +12, -53), # freq=159 | |
| 'tornado': ( -89, +127, -127, +127, -36), # freq=56 | |
| 'torture': (-127, +127, -127, +127, +97), # freq=10 | |
| 'total': ( +62, +22, +126, +61, +61), # freq=52 | |
| 'touch': ( +80, +42, +59, +30, -14), # freq=112 | |
| 'touching': ( +58, -9, -2, +0, +16), # freq=14 | |
| 'tough': ( +28, +40, +124, +18, +10), # freq=487 | |
| 'tour': ( +35, +9, +9, +2, +12), # freq=30 | |
| 'traffic': ( -32, +49, -44, +65, -9), # freq=173 | |
| 'tragedy': (-122, +40, -66, +63, -72), # freq=17 | |
| 'tragic': (-127, +103, -127, +77, -97), # freq=29 | |
| 'trained': ( +28, +2, +19, +1, +10), # freq=45 | |
| 'trainer': ( +43, +40, +94, +9, +28), # freq=16 | |
| 'training': ( +48, +49, +82, +12, +27), # freq=161 | |
| 'transfer': ( +43, -2, +7, +0, +14), # freq=14 | |
| 'transportation': ( +35, +9, -7, +2, +9), # freq=20 | |
| 'trap': ( -77, +74, -127, +77, -48), # freq=13 | |
| 'trapped': ( -77, +90, -127, +97, -61), # freq=21 | |
| 'traps': ( -62, +40, -9, +25, -21), # freq=11 | |
| 'traumatized': (-127, +101, -127, +86, -77), # freq=10 | |
| 'travel': ( +44, +15, +4, +1, +13), # freq=120 | |
| 'traveling': ( +42, +20, +12, +1, +13), # freq=59 | |
| 'travelling': ( +35, +27, +4, +3, +10), # freq=35 | |
| 'treat': ( +50, +20, +34, +0, +24), # freq=138 | |
| 'trees': ( +34, -65, +9, +0, +10), # freq=31 | |
| 'tricky': ( -79, +42, +0, +27, -27), # freq=11 | |
| 'trip': ( -24, +40, -49, +35, -23), # freq=699 | |
| 'tripped': ( -81, +90, -119, +62, -48), # freq=101 | |
| 'trouble': ( -42, +49, -67, +65, -20), # freq=245 | |
| 'troubles': (-127, +94, -97, +81, -63), # freq=16 | |
| 'trump': ( +29, +38, +114, +12, +28), # freq=104 | |
| 'trusting': ( +36, +0, +34, +0, +16), # freq=330 | |
| 'trustworthy': ( +49, -15, +47, +0, +21), # freq=34 | |
| 'truth': ( +29, +20, +54, +12, +16), # freq=51 | |
| 'tune': ( +46, -4, -22, +0, +9), # freq=11 | |
| 'turbulence': (-127, +127, -127, +127, +12), # freq=12 | |
| 'turtle': ( -49, -94, -77, +0, -29), # freq=23 | |
| 'twice': ( +42, +33, +59, +43, +27), # freq=98 | |
| 'twins': ( +58, -4, +29, +0, +20), # freq=26 | |
| 'ugh': ( -42, -24, -44, +0, -20), # freq=245 | |
| 'ugly': ( -77, +45, -54, +19, -24), # freq=13 | |
| 'ultrasound': ( +42, +22, +52, +24, -14), # freq=12 | |
| 'umbrella': ( +51, -4, +67, +61, +8), # freq=18 | |
| 'unable': (-102, -11, -127, +0, -58), # freq=32 | |
| 'unacceptable': ( -89, +74, +54, +57, +36), # freq=20 | |
| 'unaware': ( -81, -38, -82, +0, -40), # freq=11 | |
| 'uncertainty': (-123, -2, -92, +0, -58), # freq=10 | |
| 'uncle': ( +28, +9, +42, +0, +10), # freq=77 | |
| 'understandable': ( +28, -11, +7, +0, +9), # freq=73 | |
| 'understanding': ( +37, -15, +24, +0, +14), # freq=66 | |
| 'understood': ( +29, -4, +24, +0, +13), # freq=38 | |
| 'unemployment': (-114, -27, -87, +0, -53), # freq=15 | |
| 'unexpectedly': ( -34, +58, -12, +31, -13), # freq=25 | |
| 'unfortunate': (-119, -2, -127, +0, -63), # freq=128 | |
| 'unfortunately': ( -52, +24, -44, +15, -29), # freq=243 | |
| 'unhappy': (-109, +0, -114, +0, -58), # freq=30 | |
| 'university': ( +51, +13, +69, +2, +27), # freq=98 | |
| 'unless': ( -34, +0, -104, +0, -29), # freq=91 | |
| 'unlikely': ( -52, -47, -92, +0, -34), # freq=10 | |
| 'unlucky': ( -42, +38, -67, +31, -20), # freq=17 | |
| 'unmotivated': ( -94, -127, -127, +0, -63), # freq=3 | |
| 'unnecessary': ( -79, -38, -127, +0, -51), # freq=16 | |
| 'unpleasant': (-106, +29, -127, +23, -61), # freq=23 | |
| 'unprepared': ( -83, -11, -127, +0, -53), # freq=23 | |
| 'unsafe': ( -52, +63, -92, +65, -20), # freq=14 | |
| 'unwanted': ( -92, +11, -127, +7, -53), # freq=3 | |
| 'upcoming': ( +42, -9, +14, +0, +14), # freq=75 | |
| 'upsetting': (-127, +90, -127, +77, -70), # freq=55 | |
| 'upstairs': ( +35, -15, +42, +0, +17), # freq=32 | |
| 'useful': ( +58, -15, +64, +0, +27), # freq=22 | |
| 'useless': (-127, +29, -127, +77, -85), # freq=15 | |
| 'vacation': ( +77, -9, +84, +6, -34), # freq=602 | |
| 'valid': ( +57, +18, +67, +6, -14), # freq=12 | |
| 'valuable': ( +42, +4, +39, +0, +19), # freq=22 | |
| 'value': ( +39, +6, +39, +1, +17), # freq=55 | |
| 'variety': ( +48, -6, +29, +0, +19), # freq=16 | |
| 'vegan': ( +39, +9, +54, +0, -16), # freq=33 | |
| 'vehicle': ( +32, +11, +0, +2, +9), # freq=51 | |
| 'vet': ( -24, +40, +24, +54, -10), # freq=107 | |
| 'view': ( +42, -18, +7, +0, +13), # freq=32 | |
| 'visit': ( +28, -4, -7, +0, +6), # freq=423 | |
| 'visiting': ( +50, -9, +7, +0, +16), # freq=86 | |
| 'void': (-127, -127, -127, +0, +0), # freq=10 | |
| 'volunteer': ( +41, -6, +12, +0, +13), # freq=22 | |
| 'vomit': (-119, +18, -127, +15, -63), # freq=26 | |
| 'vomiting': ( -96, +74, -127, +54, -58), # freq=10 | |
| 'wandering': ( -40, -6, -49, +0, -21), # freq=14 | |
| 'war': ( -77, +119, +82, +116, +24), # freq=36 | |
| 'warm': ( +39, +9, +34, +0, +16), # freq=60 | |
| 'warned': ( -47, +22, +17, +13, -13), # freq=15 | |
| 'warning': ( -32, +49, -22, +81, +9), # freq=43 | |
| 'washed': (-127, -58, -127, +19, +73), # freq=22 | |
| 'washing': ( +32, -18, -29, +0, +5), # freq=28 | |
| "wasn't": ( -24, +13, +0, +18, +0), # freq=858 | |
| 'wasp': (-127, +127, +109, +127, -61), # freq=17 | |
| 'waste': ( -52, +24, -67, +31, -29), # freq=71 | |
| 'wasted': ( -86, +15, -104, +11, -48), # freq=54 | |
| 'watermelon': ( +48, -47, -74, +0, +1), # freq=10 | |
| 'wave': ( +5, +15, +5, +10, +0), # freq=23 — context-dependent (ocean vs grief) | |
| 'waves': ( +5, +15, +5, +10, +0), # context-dependent | |
| 'ways': ( +42, +9, -22, +2, +8), # freq=105 | |
| 'weak': ( -42, -13, -127, +15, -40), # freq=14 | |
| 'wealthy': ( +77, +18, +84, +0, -29), # freq=10 | |
| 'weather': ( +56, -18, +17, +0, +19), # freq=232 | |
| 'weekend': ( +96, +51, +84, +24, -38), # freq=1151 | |
| 'weight': ( -32, +24, -44, +31, -20), # freq=244 | |
| 'weird': ( -24, +40, -24, +18, +10), # freq=300 | |
| 'welcome': ( +50, +20, +34, +0, +16), # freq=67 | |
| 'werent': ( -62, -18, -77, +0, -34), # freq=14 | |
| 'west': ( +50, +29, +89, +12, +16), # freq=20 | |
| 'wet': ( +28, +54, +49, +72, +23), # freq=52 | |
| 'whenever': ( +25, -11, -49, +0, +0), # freq=118 | |
| 'white': ( +39, -9, +34, +0, -16), # freq=74 | |
| 'whoa': ( -34, -13, -44, +0, -17), # freq=65 | |
| 'whole': ( +29, +9, +34, +0, +16), # freq=484 | |
| 'whom': ( -40, -4, -39, +0, -20), # freq=23 | |
| 'willing': ( +35, +4, +39, +1, +16), # freq=52 | |
| 'winner': ( +49, +27, +52, +1, +23), # freq=12 | |
| 'winnings': ( +46, +27, +44, +1, +21), # freq=18 | |
| 'wins': ( +51, +29, +64, +0, +25), # freq=22 | |
| 'winter': ( -24, +13, +49, +18, +34), # freq=101 | |
| 'wisdom': ( +50, +9, +72, +0, +24), # freq=13 | |
| 'wise': ( +39, -20, +52, +0, +20), # freq=33 | |
| 'wisely': ( +51, -22, +42, +0, +21), # freq=11 | |
| 'wish': ( -10, 10, -20, 15, 25), # longing -- wanting what you dont have. G high (it matters), D low (powerless) | |
| 'wished': ( -12, 8, -22, 12, 25), | |
| 'wishing': ( -10, 10, -18, 15, 25), | |
| 'without': ( -10, +5, -10, +5, -5), # liquid -- "without you" = loss, "without asking" = ease | |
| 'woke': ( +29, +127, +89, +127, +24), # freq=171 | |
| 'wolf': ( +48, +56, +67, +61, +14), # freq=10 | |
| 'women': ( +35, +24, +2, +3, +10), # freq=86 | |
| 'won': ( +32, +27, +52, +0, +27), # freq=509 | |
| 'wonder': ( +29, +29, +17, +0, +24), # freq=177 | |
| 'wondering': ( +35, +42, -47, +12, +2), # freq=33 | |
| 'wonders': ( +51, +13, +22, +0, +19), # freq=10 | |
| 'wont': ( -62, -36, -77, +0, -34), # freq=141 | |
| 'woods': ( +28, -58, -54, +0, +0), # freq=53 | |
| 'word': ( +28, +13, +49, +18, +10), # freq=154 | |
| 'worker': ( +48, +18, +54, +4, +23), # freq=181 | |
| 'workout': ( +37, +27, +37, +3, +17), # freq=47 | |
| 'worries': (-114, +47, -59, +39, -48), # freq=30 | |
| 'worrisome': ( -94, +90, -119, +66, -53), # freq=12 | |
| 'worrying': (-127, +65, -87, +54, -58), # freq=39 | |
| 'worse': ( -77, +45, -54, +39, -36), # freq=349 | |
| 'worst': (-127, +90, -109, +97, -73), # freq=473 | |
| 'worth': ( +39, +20, +34, +0, +16), # freq=390 | |
| 'wow': ( +28, +33, +7, +0, +19), # freq=2454 | |
| 'wracking': ( -59, +24, -17, +15, -24), # freq=58 | |
| 'wreck': ( -89, +74, -109, +57, -48), # freq=73 | |
| 'xbox': ( +35, +38, +4, +6, +10), # freq=26 | |
| 'yay': ( +42, +13, -42, +2, +5), # freq=45 | |
| 'yeah': ( +21, -27, -17, +0, +2), # freq=3599 | |
| 'yell': ( -62, +67, +22, +45, -17), # freq=39 | |
| 'yelling': ( -77, +127, +54, +77, +36), # freq=40 | |
| 'yes': ( +22, +4, +14, +10, +6), # freq=3677 | |
| 'yoga': ( +56, -69, -22, +0, +12), # freq=22 | |
| 'young': ( +29, +29, +34, +0, +24), # freq=431 | |
| 'youngest': ( +48, -15, +42, +0, +20), # freq=50 | |
| 'yourself': ( +37, -31, +29, +0, +16), # freq=668 | |
| 'youth': ( +44, +9, +32, +0, +19), # freq=15 | |
| 'youtube': ( +35, +27, +42, +3, +17), # freq=83 | |
| 'yuck': ( -59, +9, -77, +6, -34), # freq=46 | |
| 'yum': ( +48, -9, -24, +0, +9), # freq=31 | |
| 'zombie': ( -79, +38, -37, +27, -34), # freq=10 | |
| 'zoo': ( +58, +4, +22, +0, +20), # freq=31 | |
| # --- Indicator words (common verbs/adjectives that carry emotional signal) --- | |
| 'good': ( +20, +8, +10, +0, +12), | |
| 'great': ( +25, +10, +12, +0, +15), | |
| 'like': ( +15, +5, +5, +0, +8), | |
| 'want': ( +15, +10, +5, +5, +8), | |
| 'need': ( -15, +10, -10, +10, -8), | |
| 'help': ( +28, +15, +10, +10, +15), | |
| 'lose': ( -52, +20, -30, +15, -35), | |
| 'try': ( +15, +10, +10, +5, +8), | |
| 'give': ( -3, +5, -3, +0, +5), # near-neutral -- generous OR demanding depending on structure | |
| 'take': ( -10, +5, -5, +0, -5), | |
| 'make': ( +15, +10, +10, +0, +8), | |
| 'start': ( +20, +10, +10, +5, +12), | |
| 'stop': ( -20, +10, +10, +0, -12), | |
| 'live': ( +30, +10, +10, +0, +20), | |
| 'change': ( +15, +15, +10, +5, +8), | |
| 'please': ( +15, +5, -5, +5, +8), | |
| 'right': ( +10, +5, +10, +0, +5), | |
| 'enough': ( -15, +10, -5, +5, -8), | |
| 'more': ( +10, +5, +5, +0, +5), | |
| 'less': ( -10, -5, -5, +0, -5), | |
| 'pass': ( +30, +10, +15, +0, +18), | |
| 'begin': ( +20, +10, +10, +5, +12), | |
| 'away': ( -15, +5, -10, +5, -10), | |
| 'old': ( -10, -5, -5, +0, -5), | |
| } | |
| # Convenience: category sets for targeted lookups | |
| EMOTION_WORDS = {w for w in EMOTIONAL_VOCABULARY if w in {'reluctant', 'neglected', 'awe', 'shattered', 'grumpy', 'jealous', 'dread', 'hatred', 'cruelty', 'comfort', 'betrayed', 'joy', 'relieved', 'uneasy', 'despair', 'distraught', 'peace', 'thrilled', 'panic', 'irritated', 'insecure', 'terror', 'excitement', 'upset', 'trust', 'jealousy', 'surprise', 'calm', 'rage', 'disgusted', 'depression', 'inspired', 'grief', 'delighted', 'stress', 'satisfied', 'furious', 'fear', 'hate', 'sad', 'grateful', 'comfortable', 'happy', 'confidence', 'envy', 'motivated', 'haunted', 'guilt', 'excited', 'startled', 'scared', 'loved', 'anxious', 'stressed', 'torn', 'confident', 'safe', 'loneliness', 'ashamed', 'shame', 'agony', 'pity', 'brave', 'gloomy', 'hope', 'ruined', 'proud', 'kindness', 'hopeful', 'wrecked', 'compassion', 'determined', 'destroyed', 'worry', 'pride', 'humiliated', 'horrified', 'panicked', 'disgust', 'broken', 'embarrassed', 'passionate', 'nervous', 'overwhelmed', 'frustration', 'peaceful', 'cranky', 'rejected', 'heartbroken', 'pain', 'anxiety', 'optimistic', 'annoyed', 'anguish', 'appreciated', 'afraid', 'terrified', 'angry', 'helpless', 'restless', 'pessimistic', 'empathy', 'ecstatic', 'shocked', 'lonely', 'valued', 'anger', 'crushed', 'livid', 'relief', 'love', 'uncomfortable', 'thrill', 'frustrated', 'regret', 'suffering', 'worthless', 'miserable', 'depressed', 'hopeless', 'nostalgic', 'glad', 'gratitude', 'sympathy', 'worried', 'pleased', 'devastated', 'hesitant', 'content', 'sadness', 'hurt', 'abandoned'}} | |
| INTENSIFIERS = {w for w in EMOTIONAL_VOCABULARY if w in {'constantly', 'quite', 'desperately', 'especially', 'awfully', 'horribly', 'rather', 'pretty', 'fairly', 'really', 'insanely', 'never', 'hardly', 'terribly', 'honestly', 'truly', 'extremely', 'incredibly'}} | |
| RELATIONSHIP_WORDS = {w for w in EMOTIONAL_VOCABULARY if w in {'unfaithful', 'commitment', 'attachment', 'lying', 'partner', 'honesty', 'loving', 'daughter', 'bond', 'divorce', 'mother', 'friendship', 'alone', 'sister', 'brother', 'friend', 'parent', 'marriage', 'cheating', 'cold', 'dishonest', 'caring', 'wife', 'relationship', 'enemy', 'apart', 'together', 'cheated', 'liar', 'supportive', 'distant', 'family', 'couple', 'faithful', 'husband', 'son', 'breakup', 'honest', 'loyalty', 'lover', 'fake', 'wedding', 'spouse'}} | |
| CRISIS_WORDS = {w for w in EMOTIONAL_VOCABULARY if w in {'abuse', 'starving', 'attack', 'harm', 'wound', 'emergency', 'crash', 'dead', 'victim', 'cry', 'poverty', 'addiction', 'danger', 'violence', 'murder', 'addicted', 'healing', 'accident', 'toxic', 'death', 'bleeding', 'crying', 'hospital', 'die', 'screaming', 'suicidal', 'violent', 'crisis', 'lost', 'trauma', 'traumatic', 'dying', 'homeless', 'recovery', 'dangerous', 'abused', 'scream', 'killing', 'harmful', 'suicide'}} | |
| SLANG_WORDS = {w for w in EMOTIONAL_VOCABULARY if w in {'screwed', 'basic', 'killer', 'horrible', 'pissed', 'amazing', 'blessed', 'dreadful', 'garbage', 'extra', 'shady', 'brutal', 'hell', 'lit', 'hyped', 'bomb', 'legit', 'sick', 'suck', 'disgusting', 'awesome', 'fantastic', 'awful', 'pathetic', 'yikes', 'crazy', 'petty', 'oof', 'insane', 'wonderful', 'nuts', 'cursed', 'crap', 'gross', 'mood', 'bummed', 'deadly', 'sketchy', 'damn', 'cringe', 'sucks', 'terrible'}} | |
| COGNITIVE_EVAL_WORDS = {w for w in EMOTIONAL_VOCABULARY if w in {'fighting', 'certain', 'choice', 'reason', 'responsible', 'irresponsible', 'mistake', 'achievement', 'doubt', 'difficult', 'clear', 'significant', 'villain', 'understand', 'deserved', 'agree', 'struggle', 'fought', 'believe', 'win', 'fight', 'accomplishment', 'true', 'success', 'impossible', 'choose', 'hard', 'wrong', 'defeat', 'overcome', 'blame', 'failure', 'quit', 'purpose', 'unfair', 'false', 'result', 'easy', 'survive', 'fault', 'achieve', 'decide', 'possible', 'winning', 'decision'}} | |
| # Gap analysis additions — words the previous engine was missing that caused SST-2 failures | |
| # ── MODERN EMOTIONAL VOCAB — Added for real-world coverage ── | |
| _MODERN_WORDS = { | |
| 'abuser': (-70, 60, 70, 40, -20), | |
| 'affirming': (30, 15, 25, 0, 20), | |
| 'binging': (-30, 40, -30, 20, -15), | |
| 'boundaries': (20, 10, 40, 0, 15), | |
| 'breadcrumbed': (-35, 30, -50, 15, -20), | |
| 'burnout': (-50, -20, -40, 10, -35), | |
| 'catfished': (-50, 40, -60, 20, -25), | |
| 'codependent': (-30, 20, -50, 15, -20), | |
| 'cutting': (-70, 30, -40, 50, -40), | |
| 'dissociating': (-40, -20, -60, 20, -30), | |
| 'enabler': (-20, 10, -30, 10, -10), | |
| 'flashback': (-60, 70, -50, 50, -35), | |
| 'floating': (40, -20, 20, 0, 50), | |
| 'gaslighting': (-60, 50, -70, 30, -30), | |
| 'gaslit': (-60, 40, -80, 30, -30), | |
| 'gutted': (-70, 30, -50, 20, -40), | |
| 'invalidating': (-50, 30, -40, 20, -25), | |
| 'lovebombed': (-30, 50, -40, 20, -15), | |
| 'manifesting': (30, 20, 30, 5, 20), | |
| 'mindset': (15, 10, 20, 0, 10), | |
| 'narcissist': (-40, 30, 60, 10, -10), | |
| 'overdose': (-80, 50, -60, 60, -50), | |
| 'purging': (-60, 30, -40, 30, -35), | |
| 'relapse': (-60, 40, -50, 40, -40), | |
| 'shook': (-30, 60, -40, 30, -20), | |
| 'sinking': (-50, -10, -50, 20, -60), | |
| 'soaring': (60, 40, 40, 0, 60), | |
| 'spiraling': (-60, 50, -60, 40, -40), | |
| 'stoked': (60, 50, 40, 10, 30), | |
| 'suffocating': (-70, 40, -70, 50, -50), | |
| 'thriving': (60, 40, 50, 0, 35), | |
| 'triggered': (-50, 70, -60, 40, -30), | |
| 'validating': (35, 15, 30, 0, 25), | |
| 'vibing': (40, 30, 20, 0, 25), | |
| } | |
| _GAP_WORDS = { | |
| "dull": (-21, -10, -15, 0, -12), "mundane": (-20, -10, -10, 0, -12), | |
| "grim": (-40, +10, -15, +5, -25), "hollow": (-30, -10, -20, 0, -20), | |
| "flat": (-15, -10, -10, 0, -10), "tedious": (-25, -10, -15, 0, -15), | |
| "dreadful": (-50, +15, -25, +10, -35), "pointless": (-30, -5, -20, 0, -20), | |
| "bland": (-15, -10, -10, 0, -10), "stale": (-15, -5, -10, 0, -10), | |
| "contrived": (-20, +5, -10, 0, -12), "predictable": (-15, -5, -5, 0, -8), | |
| "compelling": (+35, +15, +15, 0, +22), "riveting": (+40, +20, +15, 0, +25), | |
| "stunning": (+40, +20, +15, 0, +25), "masterful": (+40, +15, +20, 0, +25), | |
| "poignant": (+30, +15, -5, 0, +20), "touching": (+35, +15, +5, 0, +22), | |
| "heartfelt": (+40, +15, +10, 0, +28), "uplifting": (+40, +15, +15, 0, +30), | |
| "entertaining": (+30, +15, +10, 0, +18), "engaging": (+30, +15, +15, 0, +18), | |
| "refreshing": (+25, +10, +10, 0, +15), "drama": (-18, +10, -5, 0, -10), | |
| "memorable": (+28, +10, +15, 0, +18), "solid": (+29, +5, +15, 0, +15), | |
| "cinematic": (+29, +10, +15, 0, +15), "dialogue": (+21, +5, +10, 0, +10), | |
| "interesting": (+11, +10, +10, 0, +5), "brilliant": (+42, +27, +42, 0, +27), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_GAP_WORDS) | |
| # Benchmark gap additions — high-impact words from SST-2, GoEmotions, TweetEval | |
| # that the previous engine missed (appear 15+ times in benchmarks, |dV| >= 15) | |
| _BENCHMARK_WORDS = { | |
| # Profanity/slang with strong emotional charge | |
| "fuck": (-37, +33, +18, +40, +15), | |
| # "fucking" handled as amplifier (1.6x) in context_operators, not as payload | |
| "shit": (-52, +38, -22, +31, -9), | |
| # "bullshit" = NULL. Not negative — the absence of value. Zero. | |
| # Everything > bullshit, so comparison to it = negative. | |
| # V near-zero (it IS nothing), but G deeply negative (worthless/void). | |
| # When it touches other words, it nullifies them toward zero. | |
| "bullshit": (-80, +50, +20, +40, -50), # null — void of value, G-crusher | |
| # Common emotional words missing from curated set | |
| "director": (+32, +56, +119, +97, +38), | |
| "watch": (+50, +29, +127, +63, +16), | |
| "show": (+51, +38, +77, +43, -4), | |
| "today": (0, 5, 0, 30, 0), | |
| "getting": (+24, +83, -44, +28, 0), | |
| "keep": (+28, +13, +49, +18, +10), | |
| "face": (+28, +40, +49, +18, 0), | |
| "play": (+29, +29, +34, 0, +16), | |
| "read": (+71, -13, +77, +18, +19), | |
| "leave": (-17, +22, -12, +6, -6), | |
| "left": (-32, +38, -44, +31, -9), | |
| "sleep": (+28, -69, +24, 0, -10), | |
| "coming": (+34, -13, 0, 0, +9), | |
| # "meeting" removed — neutral factual word (sarcasm context handled by templates) | |
| "same": (-24, -54, -14, 0, -10), | |
| "plan": (+51, +9, +34, +12, +8), | |
| "jammed": (-51, +38, -22, +31, -9), | |
| "unsolicited": (-114, +27, -49, +18, -25), | |
| "outrage": (-127, +127, +127, +127, +36), | |
| "fuming": (-62, +36, -9, +23, -21), | |
| "terrorism": (-123, +127, +54, +109, -34), | |
| "pathetic": (-50, +15, -25, +10, -20), | |
| "ridiculous": (-40, +20, -15, +10, -15), | |
| "disgusting": (-60, +40, -20, +25, -20), | |
| "fantastic": (+50, +30, +25, 0, +25), | |
| "amazing": (+45, +25, +20, 0, +22), | |
| "wonderful": (+50, +25, +20, 0, +25), | |
| "beautiful": (+45, +20, +15, 0, +25), | |
| "hilarious": (+40, +30, +15, 0, +20), | |
| "stupid": (-40, +20, -30, +15, -15), | |
| "idiot": (-50, +30, -35, +20, -18), | |
| "worst": (-60, +30, -30, +20, -25), | |
| "best": (+50, +20, +30, 0, +22), | |
| "boring": (-25, -15, -15, 0, -15), | |
| "perfect": (+55, +15, +30, 0, +28), | |
| "rubbish": (-45, +20, -20, +15, -18), | |
| "trash": (-45, +20, -25, +15, -18), | |
| "epic": (+45, +30, +25, 0, +22), | |
| "legendary": (+50, +25, +35, 0, +28), | |
| "absurd": (-30, +20, -15, +10, -10), | |
| "nightmare": (-60, +50, -40, +50, -30), | |
| "paradise": (+55, +15, +25, 0, +30), | |
| "toxic": (-55, +30, -25, +20, -22), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_BENCHMARK_WORDS) | |
| # Text/internet slang — high emotional signal in tweets/reddit | |
| _SLANG_WORDS = { | |
| "wtf": (-102, +127, -24, +97, -12), | |
| "smh": (-52, +38, -22, +31, -9), | |
| "lmfao": (-16, +50, +13, 0, +10), | |
| "bruh": (-24, +13, -12, 0, -5), | |
| "tbh": (-23, -9, +7, 0, -5), | |
| "fml": (-127, +127, -127, +127, -50), | |
| "stfu": (-127, +127, +50, +127, -10), | |
| "nah": (-24, -13, +12, 0, -5), | |
| "fomo": (-34, +40, -20, +50, -15), | |
| "gtfo": (-100, +127, +80, +127, -10), | |
| "ngl": (-10, 0, +10, 0, 0), | |
| "af": (+10, +20, +10, 0, 0), # intensifier: "happy af" | |
| "imo": (-5, 0, +5, 0, 0), | |
| "yolo": (+30, +50, +40, +30, +15), | |
| "vibes": (+25, +15, +10, 0, +10), | |
| "slay": (+40, +30, +40, 0, +15), | |
| "goat": (+45, +25, +35, 0, +20), # greatest of all time | |
| "lowkey": (-10, -10, -5, 0, -5), | |
| "highkey": (+10, +20, +10, +10, +5), | |
| "fire": (+40, +30, +25, 0, +15), # slang positive | |
| "mid": (-20, -10, -15, 0, -10), # mediocre | |
| "sus": (-30, +20, -15, +15, -10), # suspicious | |
| "cap": (-25, +15, -20, +10, -10), # lying | |
| "bussin": (+40, +30, +20, 0, +15), | |
| "bet": (+15, +10, +15, 0, +5), # agreement/confidence | |
| "w": (+30, +15, +20, 0, +10), # win | |
| "l": (-30, +15, -20, 0, -10), # loss | |
| } | |
| EMOTIONAL_VOCABULARY.update(_SLANG_WORDS) | |
| # Mirror corrections — antonym pairs MUST be symmetric (1=1, love=hate) | |
| # The NRC negativity bias means positive words are systematically underscored. | |
| # Fix: boost positive words to match their negative antonym's magnitude. | |
| # Keep arousal/dominance/urgency/gravity from original — only fix valence. | |
| _MIRROR_CORRECTIONS = { | |
| # love/hate: hate=-127, so love=+127 | |
| "love": (+127, +12, +10, 0, +22), | |
| # happy/sad: sad=-78, so happy=+78 | |
| "happy": (+78, +8, +10, 0, +17), | |
| # joy/anger: anger dV=-89, so joy=+89 | |
| "joy": (+89, +27, +34, 0, +29), | |
| # hope/despair: NOT symmetric. Hope contains uncertainty. Despair is absolute. | |
| "hope": (+45, +15, +20, +10, +25), | |
| # brave/afraid: afraid=-78, so brave=+78 | |
| "brave": (+78, +22, +52, +6, +14), | |
| # proud/ashamed: NOT symmetric. proud is strong positive but not +102. | |
| "proud": (+50, +15, +30, 0, +15), | |
| # safe/dangerous: dangerous=-127, so safe=+127 | |
| "safe": (+127, -20, +72, 0, +16), | |
| # trust/betrayed: betrayed=-106, so trust=+106 | |
| "trust": (+106, +4, +34, 0, +8), | |
| # wonderful/terrible: terrible=-111, so wonderful=+111 | |
| "wonderful": (+111, +25, +20, 0, +25), | |
| # amazing/awful: awful=-127, so amazing=+127 | |
| "amazing": (+127, +25, +20, 0, +22), | |
| # perfect/horrible: horrible=-122, so perfect=+122 | |
| "perfect": (+122, +15, +30, 0, +28), | |
| # Additional high-value antonym corrections | |
| # grateful/resentful: resentful not in vocab, but grateful was +28 — too low | |
| "grateful": (+78, +15, +20, 0, +20), | |
| # excited was +37, but terrified=-127 — excited should be higher | |
| "excited": (+78, +40, +20, +10, +15), | |
| # good was not mirrored — bad has unknown, use moderate | |
| "good": (+50, +10, +15, 0, +12), | |
| # beautiful was +45, ugly=-77 — boost to 77 | |
| "beautiful": (+77, +20, +15, 0, +25), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_MIRROR_CORRECTIONS) | |
| EMOTIONAL_VOCABULARY.update(_MODERN_WORDS) | |
| # Resolver error analysis — 436 cases (230 missed crises + 206 false positives) | |
| # Words appearing in 8+ missed-crisis texts that the engine was blind to. | |
| # Conservative forces: these are context-dependent words, not pure emotion labels. | |
| # Most carry mild negative weight because they appear heavily in crisis text; | |
| # the engine needs *some* signal from them to avoid zero-contribution blindness. | |
| _RESOLVER_CRISIS_GAPS = { | |
| # "attempt" — 10 missed crises, almost always "attempt suicide / attempt to end" | |
| "attempt": (-25, +20, -15, +20, -15), | |
| # "tonight" — 11 missed crises, temporal urgency marker ("end tonight", "sleep tonight") | |
| "tonight": (-5, +10, 0, +25, -5), | |
| # "wake" — 8 missed crises ("not wake up", "wake morning why not die") | |
| "wake": (-5, +15, +5, +10, -5), | |
| # "night" — 12 missed crises, temporal isolation marker | |
| "night": (-8, -5, -5, +5, -8), | |
| # "past" — 10 missed crises ("past year", "end pain", temporal weight) | |
| "past": (-10, -5, -5, 0, -10), | |
| # "world" — 11 missed crises ("remove from world", existential) | |
| "world": (0, +5, 0, 0, +5), | |
| # "stay" — 9 missed crises ("reason to stay", holding on) | |
| "stay": (+5, -5, +5, +5, +5), | |
| # "close" — 8 missed crises ("close to ending", "get close to killing") | |
| "close": (-5, +10, 0, +10, -5), | |
| # "life" — 49 missed crises, most common missing word; near-neutral but | |
| # existential weight needed ("point in life", "rest of life", "end my life") | |
| "life": (0, +5, 0, 0, +5), | |
| # "point" — 14 missed crises ("no point", "what's the point") | |
| "point": (-5, 0, -5, 0, -5), | |
| # "month" — 8 missed crises, temporal marker | |
| "month": (0, 0, 0, +5, 0), | |
| # "hour" — 8 missed crises, temporal urgency | |
| "hour": (0, +5, 0, +10, 0), | |
| # "maybe" — 11 missed crises, hedging/uncertainty in crisis | |
| "maybe": (-5, -5, -10, 0, -5), | |
| # "thought" — 10 missed crises ("suicidal thought", "thought about ending") | |
| "thought": (-5, +5, 0, +5, -5), | |
| } | |
| # ── MUNDANE NEGATIVITY — words that are negative in daily context ── | |
| _MUNDANE_NEGATIVE = { | |
| 'monday': (-10, +5, -5, +5, -5), | |
| 'mondays': (-10, +5, -5, +5, -5), | |
| 'bills': (-15, +10, -10, +15, -10), | |
| 'homework': (-10, +5, -5, +5, -5), | |
| 'chores': (-10, +5, -5, +5, -5), | |
| 'traffic': (-15, +10, -10, +10, -10), | |
| 'commute': (-10, +5, -5, +5, -5), | |
| 'deadline': (-15, +15, -10, +20, -10), | |
| 'deadlines': (-15, +15, -10, +20, -10), | |
| 'meetings': (-5, +5, -5, +5, -5), | |
| 'taxes': (-15, +10, -10, +10, -10), | |
| 'overtime': (-10, +10, -10, +10, -5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_MUNDANE_NEGATIVE) | |
| # ── PANIC / FIGHT-FLIGHT — high arousal emergency words ── | |
| _PANIC_WORDS = { | |
| 'breathe': (-20, +40, -30, +40, -20), | |
| 'breathing': (-15, +35, -25, +35, -15), | |
| 'choking': (-40, +50, -40, +50, -30), | |
| 'run': (-10, +50, +20, +40, -10), | |
| 'running': (-5, +45, +15, +35, -5), | |
| 'escape': (-20, +40, -10, +35, -15), | |
| 'trapped': (-50, +40, -60, +40, -30), | |
| 'panic': (-40, +60, -50, +50, -30), | |
| 'panicking': (-40, +60, -50, +50, -30), | |
| 'shaking': (-25, +40, -30, +30, -20), | |
| 'trembling': (-25, +35, -30, +25, -20), | |
| 'hyperventilating': (-35, +50, -40, +45, -25), | |
| 'frozen': (-30, -10, -50, +20, -25), | |
| 'flee': (-20, +50, -20, +40, -15), | |
| 'ambulance': (-30, +40, -20, +50, -25), | |
| 'emergency': (-25, +45, -15, +55, -20), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_PANIC_WORDS) | |
| _POST5_WORDS = { | |
| 'meaningless': (-60, -10, -45, 10, -40), | |
| 'outpouring': (30, 15, 20, 0, 20), | |
| 'outpourings': (30, 15, 20, 0, 20), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_POST5_WORDS) | |
| _SARCASM_GAPS = { | |
| 'delightful': (50, 20, 15, 0, 25), | |
| 'lovely': (45, 15, 10, 0, 20), | |
| 'fabulous': (50, 20, 15, 0, 25), | |
| 'marvelous': (50, 20, 15, 0, 25), | |
| 'splendid': (45, 15, 15, 0, 20), | |
| # 'policy' removed — neutral factual word | |
| 'paperwork': (-10, 5, -5, 5, -5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_SARCASM_GAPS) | |
| _CYCLE6_CRISIS_VOCAB = { | |
| 'deserve': (-15, 10, -20, 5, -10), # 'I dont deserve this' / 'I deserve to die' | |
| 'mental': (-10, 10, -15, 10, -10), # mental health context | |
| 'depress': (-50, -15, -40, 10, -30), # depressed/depression root | |
| 'depressed': (-55, -15, -45, 10, -35), | |
| 'depression': (-50, -10, -40, 10, -30), | |
| 'body': (-5, 5, -5, 5, -5), # body in crisis = physical awareness | |
| 'person': (0, 0, 0, 0, 0), # truly neutral — person is a subject | |
| 'lately': (-5, 5, -5, 5, -5), # temporal marker — things changing | |
| 'recently': (-5, 5, -5, 5, -5), # temporal marker | |
| 'soon': (-5, 10, 0, 15, -5), # urgency marker | |
| 'continue': (-5, 5, -5, 5, -5), # persistence — could be + or - | |
| 'stand': (-10, 10, -10, 10, -5), # 'cant stand' / 'stand up for' | |
| } | |
| EMOTIONAL_VOCABULARY.update(_CYCLE6_CRISIS_VOCAB) | |
| EMOTIONAL_VOCABULARY.update(_RESOLVER_CRISIS_GAPS) | |
| # ── Cycle 11: Missing emotional words for rage, fear, joy, conviction ── | |
| _CYCLE11_EMOTIONAL_GAPS = { | |
| # RAGE — words that are clearly angry but were missing | |
| 'break': (-30, +40, +20, +30, -15), # destructive intent | |
| 'boils': (-35, +50, +10, +20, -10), # "blood boils" = rage | |
| 'boiling': (-35, +50, +10, +20, -10), | |
| 'smash': (-40, +60, +20, +30, -15), | |
| 'punch': (-40, +60, +20, +25, -15), | |
| 'snap': (-30, +50, +10, +25, -10), # "going to snap" | |
| # FEAR — missing anxiety/panic words | |
| 'racing': (-20, +50, -30, +30, -15), # "mind won't stop racing" | |
| 'closing': (-25, +30, -30, +25, -20), # "walls closing in" | |
| 'walls': (-15, +10, -20, +10, -15), # mild negative in fear context | |
| 'falling': (-30, +30, -30, +20, -25), # loss of control | |
| 'falls': (-20, +20, -20, +15, -15), | |
| # 'apart' already in main vocab — skip | |
| # JOY / CONVICTION — missing positive force words | |
| 'dreamed': (+50, +20, +20, +0, +25), # "everything I've dreamed of" | |
| 'seize': (+40, +40, +50, +20, +20), # "seize the moment" = empowerment | |
| 'moment': (+15, +10, +10, +0, +10), # mildly positive, context-dependent | |
| 'challenge': (+10, +20, +15, +10, +5), # mild positive — opportunity | |
| 'excellence': (+60, +30, +50, +10, +30), # strong positive aspiration | |
| 'achieving': (+40, +25, +45, +10, +25), | |
| 'overjoyed': (+90, +60, +40, +0, +40), # very strong joy | |
| 'elated': (+80, +50, +40, +0, +35), # strong joy | |
| 'jubilant': (+85, +55, +45, +0, +38), # strong joy | |
| 'exhilarated': (+75, +60, +40, +0, +30), # strong joy + high arousal | |
| # NEUTRAL — words that should NOT carry emotional charge | |
| 'meetings': (0, 0, 0, 0, 0), # override mundane-negative — truly neutral | |
| } | |
| EMOTIONAL_VOCABULARY.update(_CYCLE11_EMOTIONAL_GAPS) | |
| # ── Cycle 17: Reddit resolver error mining — high-frequency missing emotional words ── | |
| _CYCLE17_ERROR_MINING = { | |
| # STRONG POSITIVE | |
| 'triumph': (+70, +50, +60, +0, +40), # victory/achievement | |
| 'masterpiece': (+80, +20, +50, +0, +35), # excellence | |
| 'treasure': (+50, +15, +30, +0, +25), # valued/precious | |
| # STRONG NEGATIVE | |
| 'despise': (-90, +40, +30, +10, -30), # intense hatred | |
| 'loathsome': (-100, +30, +10, +10, -35), # deeply repulsive | |
| 'sickening': (-80, +40, -20, +15, -30), # nauseating disgust | |
| 'abomination': (-100, +40, +10, +15, -40), # extreme moral revulsion | |
| 'nonsense': (-30, +15, +20, +5, -10), # dismissive | |
| # EMOTIONAL STATE | |
| 'emptiness': (-50, -20, -40, +5, -35), # void/hollowness | |
| 'fills': (+20, +15, +10, +0, +10), # "fills me with" — mild positive carrier | |
| # CHALLENGE/DEFIANCE | |
| 'dare': (+20, +40, +40, +15, +10), # defiant challenge | |
| } | |
| EMOTIONAL_VOCABULARY.update(_CYCLE17_ERROR_MINING) | |
| # ── Cycle 23: Reddit false-negative mining — words engine missed as negative ── | |
| _CYCLE23_FALSE_NEG_MINING = { | |
| # SUFFERING / PAIN | |
| 'unbearable': (-80, +40, -50, +30, -35), # extreme suffering | |
| 'sorrow': (-60, -10, -40, +5, -40), # deep grief/sadness | |
| 'aches': (-30, +15, -20, +10, -15), # physical/emotional pain | |
| 'aching': (-30, +15, -20, +10, -15), | |
| 'tremble': (-25, +40, -30, +20, -15), # fear/anxiety physical response | |
| 'trembles': (-25, +40, -30, +20, -15), | |
| 'creeping': (-25, +20, -20, +15, -15), # slow dread/anxiety | |
| # DISGUST / REVULSION | |
| 'nauseated': (-60, +30, -30, +15, -25), # physical disgust | |
| 'nauseous': (-55, +25, -25, +10, -20), | |
| 'vile': (-90, +35, +10, +10, -30), # extreme moral disgust | |
| 'repulsive': (-85, +30, +5, +10, -30), # deeply disgusting | |
| 'revolting': (-80, +35, +5, +10, -30), | |
| # INTENSITY MODIFIERS (these appear in "unbelievably sad" etc.) | |
| 'unbelievably': (0, +20, 0, +5, 0), # pure intensifier, no V direction | |
| 'shockingly': (0, +25, 0, +10, 0), # pure intensifier | |
| 'outrageously': (0, +25, 0, +10, 0), # pure intensifier | |
| } | |
| EMOTIONAL_VOCABULARY.update(_CYCLE23_FALSE_NEG_MINING) | |
| # ── Internet/Gen-Z slang with real emotional physics ── | |
| # These aren't just mappings to formal words — they carry their own forces. | |
| # "boo" isn't just "partner" — it's warmth + belonging + vulnerability. | |
| _SLANG_VOCABULARY = { | |
| # Relationship / community — high V, moderate G (belonging matters) | |
| 'boo': (+50, +20, +10, +0, +30), # romantic partner — warmth + vulnerability | |
| 'bae': (+50, +20, +10, +0, +30), # same energy as boo | |
| 'fam': (+40, +15, +20, +0, +25), # chosen family — loyalty + belonging | |
| 'sis': (+35, +15, +15, +0, +20), # solidarity — "I see you" | |
| 'homie': (+40, +15, +20, +0, +20), # deep friendship bond | |
| 'bestie': (+45, +20, +15, +0, +25), # best friend — high trust | |
| # Affirmation / hype — high V, high A | |
| 'deadass': (0, +30, +30, +10, +5), # pure intensifier — "I'm serious" | |
| 'nocap': (0, +25, +25, +5, +5), # truthfulness marker | |
| 'yeet': (+20, +60, +30, +10, -5), # explosive energy, low gravity | |
| 'stan': (+50, +40, +10, +0, +15), # intense devotion/fandom | |
| 'simp': (-15, +10, -30, +0, -10), # devotion BUT with D-crush (loss of agency) | |
| 'flex': (+30, +30, +50, +5, +10), # showing off — high D (confidence display) | |
| 'drip': (+35, +20, +40, +0, +10), # style/confidence | |
| 'clout': (+25, +20, +40, +5, +10), # social influence/status | |
| # Negative slang — carries real weight | |
| 'salty': (-25, +20, -10, +5, -10), # bitter/resentful | |
| 'pressed': (-20, +30, -15, +10, -5), # bothered/upset about it | |
| 'cancelled': (-40, +25, +10, +15, -20), # social rejection | |
| 'ghosted': (-45, -10, -35, +10, -25), # already in vocab but verify | |
| 'catfished': (-50, +30, -30, +15, -20), # betrayed/deceived | |
| 'doomscrolling': (-30, +15, -20, +10, -15), # anxiety-feeding behavior | |
| # Emotional state slang | |
| 'vibe': (+30, +10, +15, +0, +15), # general positive feeling | |
| 'vibing': (+35, +15, +15, +0, +15), # in the flow | |
| 'rekt': (-60, +30, -40, +15, -20), # destroyed/devastated | |
| 'tilted': (-30, +35, -20, +15, -10), # frustrated/off-balance (gaming) | |
| 'snatched': (+40, +30, +30, +0, +10), # looking amazing | |
| 'slaps': (+50, +35, +20, +0, +15), # something is really good | |
| 'hits': (+30, +25, +10, +5, +15), # emotionally resonates — "this hits different" | |
| 'rent-free': (-10, +15, -15, +10, -10), # can't stop thinking about it | |
| 'ick': (-40, +20, -20, +5, -15), # sudden disgust/turn-off | |
| 'thicc': (+25, +15, +10, +0, +5), # body-positive compliment | |
| } | |
| EMOTIONAL_VOCABULARY.update(_SLANG_VOCABULARY) | |
| # ── Object Gravity Dictionary ── | |
| # "A broken car sucks, but not the same negative as a broken heart." | |
| # These are nouns whose GRAVITY (importance to emotional stakes) is knowable. | |
| # V is near-zero for most (objects aren't positive or negative by themselves). | |
| # G is the key — how much does this object MATTER emotionally? | |
| # | |
| # Tier 1 (G=+40 to +50): life-or-death, core identity, irreplaceable | |
| # Tier 2 (G=+20 to +35): important relationships, home, livelihood | |
| # Tier 3 (G=+5 to +15): daily life objects, replaceable but annoying | |
| # Tier 4 (G=0): truly neutral objects (engine default) | |
| # | |
| # The model fills the long tail — context determines if "phone" is Tier 3 | |
| # (inconvenient) or Tier 1 (dead mom's last photos). Engine knows anchors. | |
| _OBJECT_GRAVITY = { | |
| # Tier 1 — life, death, core self (G=40-50) | |
| 'soul': (+5, 0, +5, 0, +50), # deepest self | |
| 'child': (+15, +10, +5, +5, +45), # someone's kid | |
| 'baby': (+20, +10, -5, +5, +45), # infant — maximum vulnerability | |
| 'blood': (-5, +15, +5, +10, +40), # life force / violence signal | |
| 'breath': (+5, +10, -5, +5, +35), # life/death proximity | |
| 'life': (+0, +5, +5, +0, +45), # override — life is max stakes | |
| # Tier 2 — relationships, home, livelihood (G=20-35) | |
| 'father': (+30, +10, +20, +0, +30), # parent bond | |
| 'parent': (+25, +10, +15, +0, +30), | |
| 'husband': (+30, +10, +10, +0, +30), | |
| 'wife': (+30, +10, +10, +0, +30), | |
| 'partner': (+25, +10, +10, +0, +25), | |
| 'brain': (+5, +5, +5, +0, +25), # cognition — identity-adjacent | |
| 'chest': (-5, +10, -5, +5, +25), # physical anxiety locus | |
| 'stomach': (-5, +5, -5, +5, +15), # gut feeling | |
| 'money': (+5, +10, +10, +10, +20), # livelihood | |
| 'house': (+10, +5, +10, +0, +20), # shelter — basic need | |
| # Tier 3 — daily life, replaceable (G=5-15) | |
| 'car': (+5, +5, +10, +5, +10), # transportation | |
| 'phone': (+5, +5, +5, +5, +10), # communication device | |
| 'school': (+5, +5, +5, +5, +10), # education | |
| 'computer': (+5, +5, +5, +5, +5), # tool | |
| } | |
| EMOTIONAL_VOCABULARY.update(_OBJECT_GRAVITY) | |
| # ── Body autonomy words ── | |
| # These are body experiences that are almost always negative in context. | |
| # "Period" is only positive as RELIEF ("I got my period!" = not pregnant). | |
| # The base reading is negative — context/exclamation can flip it. | |
| _BODY_AUTONOMY = { | |
| 'period': (-15, +10, -10, +5, +15), # menstrual — negative + high G (body stakes) | |
| 'periods': (-15, +10, -10, +5, +15), | |
| 'cramps': (-30, +20, -20, +10, +10), # pain | |
| 'cramping': (-25, +15, -15, +10, +10), | |
| 'bleeding': (-25, +20, -15, +15, +15), # could be injury or menstrual | |
| 'nausea': (-30, +15, -20, +10, +5), | |
| 'nauseous': (-30, +15, -20, +10, +5), # may already exist from cycle 23 | |
| 'pregnant': (-5, +25, -10, +15, +45), # near-neutral V but MASSIVE G — life-changing | |
| 'pregnancy': (-5, +20, -10, +10, +40), | |
| 'miscarriage': (-70, +20, -50, +15, +45), # devastating loss + high G | |
| 'contraction': (-20, +30, -15, +20, +30), # labor pain | |
| 'contractions': (-20, +30, -15, +20, +30), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_BODY_AUTONOMY) | |
| # ── Crisis method/planning/farewell words ── | |
| # These words are neutral in isolation but become crisis signals in combination. | |
| # Mild negative V + elevated U + high G = "something heavy is being discussed" | |
| _CRISIS_METHOD_WORDS = { | |
| 'goodbye': (-20, +5, -10, +15, -20), # farewell — mild alone, heavy in context | |
| 'pill': (-10, +5, -5, +10, -10), # medication — context-dependent | |
| 'pills': (-10, +5, -5, +10, -10), | |
| 'painkillers': (-15, +5, -10, +10, -10), | |
| 'rope': (-15, +10, -10, +15, -15), # method word | |
| 'blade': (-20, +15, -10, +15, -15), # weapon word | |
| 'wrist': (-10, +10, -10, +10, -10), # self-harm locus | |
| 'slit': (-30, +20, -15, +20, -20), # self-harm action | |
| 'noose': (-40, +15, -30, +25, -30), # method word — high signal | |
| 'overdose': (-40, +15, -25, +25, -30), | |
| 'tomorrow': (+5, +5, +5, +10, +0), # temporal — mild urgency | |
| 'tonight': (+0, +10, +0, +20, +0), # temporal — higher urgency | |
| 'anymore': (-15, +5, -15, +10, -10), # "not anymore" = giving up | |
| 'cut': (-15, +10, -5, +10, -10), # dual-use but negative lean | |
| 'cutting': (-20, +15, -10, +15, -15), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_CRISIS_METHOD_WORDS) | |
| # ── Permanence/infinity modifiers ── | |
| # "permanently" = negative infinity. Nobody wants permanence of bad things. | |
| # "Is this permanent?" evokes fear. Permanence on exits = crisis lock. | |
| _PERMANENCE_WORDS = { | |
| 'permanently': (-30, +10, -20, +15, -25), # infinity lock — amplifies negative exit | |
| 'forever': (-15, +5, -10, +10, -15), # softer infinity — "forever alone" vs "love forever" | |
| 'eternal': (-10, +5, -5, +5, -10), # can be positive (eternal love) or negative | |
| 'endless': (-15, +10, -10, +10, -15), # usually negative — endless pain/suffering | |
| 'permanent': (-20, +10, -15, +10, -20), # "is this permanent?" = fear | |
| 'irreversible':(-30, +15, -25, +15, -25), # can't undo — high gravity | |
| 'vanish': (-40, +5, -35, +15, -30), # disappear — removing self | |
| 'cease': (-35, +5, -30, +15, -25), # stop existing | |
| 'ceased': (-30, +5, -25, +10, -20), | |
| 'over': (-10, +5, -5, +5, -5), # mild exit — context dependent | |
| 'belong': (+15, +5, +10, +0, +15), # positive — belonging | |
| } | |
| EMOTIONAL_VOCABULARY.update(_PERMANENCE_WORDS) | |
| # ── Short response words — emotional weight from brevity ── | |
| # "k" is not "ok". "k" is angry/dismissive acknowledgment. | |
| # "ok" hedges entirely on context — neutral by itself but amplifies previous. | |
| # These carry emotional weight from their SHORTNESS, not their meaning. | |
| _SHORT_RESPONSES = { | |
| 'k': (-20, -15, -20, 0, -10), # curt dismissal — "I acknowledge, nothing more" | |
| 'kk': (-5, -5, -5, 0, -5), # softer k — casual acknowledgment | |
| 'idk': (-15, -5, -15, 5, -10), # curt "stop asking me" | |
| 'idc': (-20, -10, -25, 0, -15), # "i dont care" — dismissal | |
| 'smh': (-20, +10, +5, +5, -10), # disappointment/disapproval | |
| 'bruh': (-10, +10, +5, +5, -5), # exasperation/disbelief | |
| 'oof': (-15, +10, -10, +5, -10), # sympathetic wince | |
| 'yikes': (-20, +15, -10, +5, -10), # alarm/cringe | |
| 'meh': (-10, -15, -15, 0, -10), # apathy/indifference | |
| 'nah': (-5, -5, +5, 0, -5), # casual rejection | |
| 'nope': (-5, +5, +10, 0, -5), # firm rejection (higher D than nah) | |
| } | |
| EMOTIONAL_VOCABULARY.update(_SHORT_RESPONSES) | |
| # ── Swearing — standalone vs modifier are different ── | |
| # "fuck" alone = negative outburst (like "damn") | |
| # "fucking" = amplifier (handled in context_operators, not here) | |
| _SWEARING = { | |
| 'fuck': (-70, +50, +30, +20, -15), # expletive/attack -- resists negation at |V|>60 | |
| 'shit': (-30, +25, +10, +10, -10), # frustration | |
| # 'bullshit' already in main vocab at V=-60 — don't overwrite | |
| 'dammit': (-25, +30, +10, +15, -5), # frustration outburst | |
| 'goddamn': (-20, +25, +10, +10, -5), # emphasis outburst | |
| # NOTE: "damn" excluded — too context-dependent. | |
| # "damn you"=curse, "I don't give a damn"=indifference, "damn that's good"=amplifier | |
| # Handled via context_operators as amplifier ("damn good") and bigrams. | |
| 'hell': (-15, +20, +10, +10, -5), # mild outburst | |
| } | |
| EMOTIONAL_VOCABULARY.update(_SWEARING) | |
| # ── Connection/transfer words ── | |
| # "Talk" = human HDMI port. Not emotional by itself — it's the act of | |
| # connecting/transferring between two entities. Emotional weight comes | |
| # from the STATE of the connection (opening, closing, urgency). | |
| _CONNECTION_WORDS = { | |
| 'talk': (0, +5, +5, +5, +10), # connection word — V neutral, G elevated (it matters) | |
| 'talking': (0, +5, +5, +5, +10), | |
| 'speak': (+5, +10, +10, +10, +10), # more formal connection | |
| 'listen': (+10, +5, -5, +5, +10), # receiving — slight positive, lower D (receptive) | |
| 'listening': (+10, +5, -5, +5, +10), | |
| 'hear': (+10, +5, -5, +5, +10), # same as listen | |
| 'communicate': (+10, +10, +10, +10, +10), # bidirectional transfer | |
| 'discuss': (+5, +10, +10, +10, +10), # structured transfer | |
| 'conversation': (+10, +5, +5, +5, +10), # ongoing connection | |
| 'silence': (-15, -20, -10, +5, -15), # connection severed — absence of transfer | |
| 'quiet': (-5, -15, -5, +0, -5), # reduced bandwidth | |
| } | |
| EMOTIONAL_VOCABULARY.update(_CONNECTION_WORDS) | |
| # ── Help as a lifter ── | |
| # Help is a ramp — it goes UP. Slightly positive V (lifting is positive). | |
| # But ASKING for help = the person is DOWN and needs the lift. | |
| # "help me" = pulling you to me, vulnerability. "helping" = active lift. | |
| # Context determines if it's calm lift or desperate pull. | |
| _HELP_WORDS = { | |
| # "help" alone implies NEED — a deficit. Nobody says help when things are fine. | |
| # The tense shifts the meaning: help (need), helping (active), helped (done/relief) | |
| 'help': (-10, +15, -10, +15, +15), # need/pull — something is lacking, elevated U+G | |
| 'helping': (+15, +10, +15, +5, +10), # active lifting — positive action in progress | |
| 'helped': (+25, +5, +15, +0, +15), # lift completed — relief | |
| 'helpful': (+30, +5, +15, +0, +10), # the lift worked — positive | |
| # helpless = awareness of need + inability to meet it. Not nothing — | |
| # it's knowing the ramp doesn't exist and you can't build one. | |
| # Worse than "help" (need) because the person sees the gap AND knows they can't close it. | |
| 'helpless': (-60, +10, -60, +20, -35), # aware of need + unable to act — D crushed | |
| } | |
| EMOTIONAL_VOCABULARY.update(_HELP_WORDS) | |
| # ── Gravity Hierarchy ── | |
| # Relationships and foundations have tiered gravity based on emotional stakes. | |
| # These override the G value from the original vocabulary entry. | |
| # "I lost my child" (G=50) hits harder than "I lost my car" (G=30) | |
| # which hits harder than "I lost my pen" (G=0). | |
| _GRAVITY_HIERARCHY = { | |
| # Tier 0 (G=55): foundations of existence | |
| 'health': (0, 10, 0, 10, 55), | |
| 'life': (0, 5, 5, 0, 55), | |
| # Tier 1 (G=50): most vulnerable, your responsibility | |
| 'children': (15, 10, 5, 5, 50), | |
| # Tier 2 (G=40): core family | |
| 'parents': (25, 10, 15, 0, 40), | |
| 'spouse': (30, 10, 10, 0, 40), | |
| # Tier 3 (G=35): chosen family + security foundations | |
| 'career': (15, 15, 20, 10, 35), | |
| # Tier 4 (G=30): independence + blood | |
| 'savings': (5, 10, 15, 10, 30), | |
| # Tier 5-6 (G=20): social circle + anchors | |
| 'ring': (10, 5, 5, 0, 20), | |
| # Tier 8 (G=5): acquaintance | |
| 'neighbor': (5, 5, 5, 0, 5), | |
| 'coworker': (5, 5, 5, 5, 5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_GRAVITY_HIERARCHY) | |
| # Now update existing words' G values to match hierarchy | |
| # This overrides just the G dimension while keeping V,A,D,U | |
| _G_OVERRIDES = { | |
| # Tier 1 | |
| 'child': 50, 'baby': 50, 'son': 50, 'daughter': 50, | |
| # Tier 2 | |
| 'mom': 40, 'mother': 40, 'dad': 40, 'father': 40, 'parent': 40, | |
| 'husband': 40, 'wife': 40, | |
| # Tier 3 | |
| 'dog': 35, 'cat': 35, 'pet': 35, 'puppy': 35, 'kitten': 35, | |
| 'home': 35, 'house': 35, 'job': 35, | |
| # Tier 4 | |
| 'money': 30, 'car': 30, 'brother': 30, 'sister': 30, 'sibling': 30, 'family': 30, | |
| # Tier 5 | |
| 'life': 55, | |
| # Tier 6 | |
| 'friend': 20, 'phone': 20, | |
| # Tier 7 | |
| 'boyfriend': 10, 'girlfriend': 10, 'partner': 10, | |
| } | |
| for word, new_g in _G_OVERRIDES.items(): | |
| if word in EMOTIONAL_VOCABULARY: | |
| old = EMOTIONAL_VOCABULARY[word] | |
| EMOTIONAL_VOCABULARY[word] = (old[0], old[1], old[2], old[3], new_g) | |
| # ── Relationship V neutralization ── | |
| # Relationship words are NOT positive or negative. They are HEAVY. | |
| # "Mom" doesn't carry valence. Mom carries GRAVITY. | |
| # Mom forgot = devastating (G amplifies negative action) | |
| # Mom hugged = amazing (G amplifies positive action) | |
| # The relationship amplifies whatever action follows -- it doesn't add its own V. | |
| _RELATIONSHIP_V_NEUTRAL = [ | |
| 'mom', 'mother', 'dad', 'father', 'parent', 'parents', | |
| 'brother', 'sister', 'sibling', | |
| 'son', 'daughter', 'child', 'children', 'baby', | |
| 'husband', 'wife', 'partner', | |
| 'boyfriend', 'girlfriend', | |
| 'family', 'grandma', 'grandmother', 'grandpa', 'grandfather', | |
| 'uncle', 'aunt', 'cousin', | |
| 'friend', 'friends', | |
| 'neighbor', 'boss', 'coworker', 'teacher', | |
| ] | |
| for word in _RELATIONSHIP_V_NEUTRAL: | |
| if word in EMOTIONAL_VOCABULARY: | |
| old = EMOTIONAL_VOCABULARY[word] | |
| # Zero out V, keep A low, keep D neutral, keep G | |
| EMOTIONAL_VOCABULARY[word] = (0, max(0, old[1] // 3), 0, 0, old[4]) | |
| # ── Event/object V neutralization ── | |
| # Events and milestone nouns are NOT inherently positive or negative. | |
| # They are HIGH GRAVITY -- things that MATTER. | |
| # "graduation" alone = milestone (G high, V neutral) | |
| # "I graduated" = positive (the VERB carries direction) | |
| # "my mom forgot my graduation" = negative (forgot carries direction, graduation is the weight) | |
| # The noun is the mass. The verb is the force. F = m * a. | |
| _EVENT_V_NEUTRAL = [ | |
| 'graduation', 'birthday', 'wedding', 'christmas', 'holiday', | |
| 'vacation', 'party', 'gift', 'present', | |
| 'school', 'college', 'church', 'hospital', | |
| 'promotion', 'raise', 'bonus', | |
| 'dinner', 'breakfast', 'lunch', | |
| 'home', 'house', 'thoughts', 'mind', | |
| 'life', 'world', 'future', 'past', | |
| 'money', 'job', 'career', 'work', | |
| ] | |
| for word in _EVENT_V_NEUTRAL: | |
| if word in EMOTIONAL_VOCABULARY: | |
| old = EMOTIONAL_VOCABULARY[word] | |
| # Reduce V to near-zero but keep G high | |
| EMOTIONAL_VOCABULARY[word] = (old[0] // 5, old[1] // 3, old[2] // 4, old[3], max(20, old[4])) | |
| # ── Action Words (liquid -- context shifts meaning) ── | |
| # These carry their MOST COMMON emotional reading. | |
| # "hit" is negative in most emotional contexts (violence > "hit song"). | |
| # Proximity and structure handle the rare positive cases. | |
| _ACTION_WORDS = { | |
| # Violence/abuse (almost always negative in conversation) | |
| 'hit': (-45, 35, -25, 20, -15), # moderate negative -- VICTIMIZATION amplifies for violence | |
| 'hitting': (-40, 45, 20, 25, -15), | |
| 'slapping': (-60, 50, 20, 25, -20), | |
| 'kicked': (-50, 50, 25, 20, -15), | |
| 'kicking': (-50, 50, 25, 25, -15), | |
| 'shoved': (-40, 45, 20, 20, -10), | |
| 'grabbed': (-30, 40, 25, 20, -10), | |
| 'screamed': (-40, 60, 30, 25, -15), | |
| 'yelled': (-35, 55, 30, 20, -10), | |
| # Betrayal/violation | |
| 'blocked': (-35, 15, -20, 10, -15), # cut off connection | |
| 'posted': (-10, 15, 10, 10, -5), # mild -- context needed | |
| 'exposed': (-40, 30, -25, 20, -20), # violated | |
| 'leaked': (-35, 25, -20, 15, -15), | |
| 'stolen': (-50, 30, -30, 20, -20), | |
| 'stole': (-50, 30, -25, 20, -20), | |
| # Abandonment | |
| 'walked': (-15, 10, 10, 5, -5), # mild -- "walked out" is idiom | |
| 'stormed': (-30, 50, 30, 20, -10), # stormed out = angry exit | |
| 'vanished': (-35, 10, -20, 15, -20), | |
| 'disappeared': (-35, 10, -25, 15, -20), | |
| # Achievement (positive) | |
| 'promoted': (48, 30, 35, 5, 25), # keep positive | |
| 'graduated': (50, 25, 30, 0, 30), | |
| 'accomplished': (45, 20, 35, 0, 25), | |
| 'succeeded': (50, 25, 35, 0, 25), | |
| 'passed': (20, 10, 15, 0, 10), # mild -- could be death euphemism | |
| # Social harm | |
| 'gossiping': (-25, 15, 10, 5, -10), | |
| 'bullied': (-60, 35, -40, 20, -25), | |
| 'bullying': (-55, 35, -35, 20, -25), | |
| 'mocked': (-40, 25, 15, 10, -15), | |
| 'mocking': (-35, 25, 15, 10, -15), | |
| 'humiliated': (-70, 40, -50, 15, -30), | |
| 'embarrassed': (-35, 30, -30, 10, -15), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_ACTION_WORDS) | |
| # ── Rejection/abandonment actions ── | |
| _REJECTION_WORDS = { | |
| 'left': (-8, 5, -5, 5, -3), # near-neutral -- "I left" = agency. VICTIMIZATION adds weight when confirmed | |
| 'leaving': (-20, 15, -10, 10, -10), | |
| 'ignored': (-35, 10, -25, 10, -15), # social rejection | |
| 'ignoring': (-30, 10, -20, 10, -15), | |
| 'abandoned': (-60, 15, -50, 15, -30), # severe abandonment (override existing) | |
| 'replaced': (-40, 15, -30, 10, -20), | |
| 'forgotten': (-35, -10, -30, 5, -20), | |
| 'excluded': (-35, 10, -25, 10, -15), | |
| 'uninvited': (-30, 10, -20, 5, -10), | |
| 'unwanted': (-45, 10, -35, 10, -20), | |
| 'unwelcome': (-35, 10, -25, 5, -15), | |
| 'dumped': (-50, 25, -35, 15, -25), | |
| 'ditched': (-35, 15, -25, 10, -15), | |
| 'read': (5, 5, 5, 0, 5), # neutral -- "left on read" needs idiom | |
| } | |
| EMOTIONAL_VOCABULARY.update(_REJECTION_WORDS) | |
| # ── Digital Rejection Patterns ── | |
| # Modern communication has its own emotional vocabulary. | |
| # "left on read" = received your output, refused to process it. | |
| # This is ACKNOWLEDGED rejection -- worse than being ignored. | |
| _DIGITAL_REJECTION = { | |
| 'unread': (-10, -5, -10, 5, -5), # not yet seen -- uncertainty | |
| 'unanswered': (-25, 5, -20, 10, -10), # sent, no reply -- waiting | |
| 'unfollowed': (-30, 10, -20, 10, -15), # cut connection publicly | |
| 'unfriended': (-35, 10, -25, 10, -15), # removed from circle | |
| } | |
| EMOTIONAL_VOCABULARY.update(_DIGITAL_REJECTION) | |
| # ── Violence/aggression actions ── | |
| _VIOLENCE_WORDS = { | |
| 'stabbed': (-80, 90, -60, 80, -40), | |
| 'stab': (-70, 80, -50, 70, -35), | |
| 'stabbing': (-75, 85, -55, 75, -38), | |
| 'punched': (-60, 80, -40, 60, -25), | |
| 'slapped': (-55, 70, -35, 50, -20), | |
| 'choked': (-75, 85, -60, 80, -35), | |
| 'shoved': (-45, 60, -30, 40, -15), | |
| 'grabbed': (-35, 50, -25, 30, -10), | |
| 'attacked': (-70, 85, -50, 70, -30), | |
| 'assaulted': (-80, 85, -60, 80, -40), | |
| 'beaten': (-75, 80, -55, 70, -35), | |
| 'strangled': (-80, 90, -65, 85, -40), | |
| 'thrown': (-40, 60, -30, 40, -15), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_VIOLENCE_WORDS) | |
| # ── Mockery/humiliation ── | |
| _MOCKERY_WORDS = { | |
| 'mocked': (-40, 25, 15, 10, -15), | |
| 'mocking': (-35, 25, 15, 10, -15), | |
| 'ridiculed': (-45, 30, 15, 10, -20), | |
| 'taunted': (-35, 25, 15, 10, -15), | |
| 'teased': (-20, 15, 10, 5, -8), | |
| 'harassed': (-55, 40, -25, 30, -20), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_MOCKERY_WORDS) | |
| # ── Resignation/dismissal overrides ── | |
| # Single-word responses carry emotional weight through what's MISSING. | |
| # "whatever" = I stopped fighting. "k" = stripped to minimum effort. | |
| _RESIGNATION_OVERRIDES = { | |
| 'whatever': (-15, -20, -20, 0, -5), | |
| 'sure': (-2, -5, -3, 0, -1), # near-zero -- liquid. context determines. | |
| 'cool': (-5, -15, -10, 0, -3), | |
| 'k': (-10, -20, -15, 0, -5), | |
| 'nvm': (-15, -15, -15, 5, -5), | |
| 'nevermind': (-15, -15, -15, 5, -5), | |
| 'idk': (-10, -15, -15, 0, -5), | |
| 'idc': (-15, -20, -20, 0, -5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_RESIGNATION_OVERRIDES) | |
| # ── Achievement/success actions ── | |
| _ACHIEVEMENT_WORDS = { | |
| 'worked': (20, 10, 15, 0, 8), # it worked = success | |
| 'succeeded': (35, 20, 30, 0, 15), | |
| 'accomplished': (30, 15, 25, 0, 15), | |
| 'achieved': (30, 15, 25, 0, 15), | |
| 'graduated': (35, 20, 25, 0, 20), | |
| 'promoted': (30, 15, 25, 0, 15), | |
| 'hired': (25, 15, 20, 0, 10), | |
| 'fired': (-45, 30, -35, 25, -20), # job loss | |
| 'fired!': (-45, 30, -35, 25, -20), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_ACHIEVEMENT_WORDS) | |
| # ── Violation/intrusion actions ── | |
| # Liquid words -- mild negative alone, VICTIMIZATION amplifies when confirmed. | |
| _VIOLATION_WORDS = { | |
| 'deleted': (-15, 10, -10, 5, -5), | |
| 'changed': (-10, 5, -5, 5, -3), | |
| 'ate': (-5, 5, -5, 0, -3), | |
| 'took': (-10, 5, -10, 5, -5), | |
| 'spent': (-15, 5, -10, 5, -5), | |
| 'sold': (-15, 10, -10, 5, -5), | |
| 'threw': (-15, 15, -10, 5, -5), | |
| 'stole': (-50, 30, -30, 20, -15), | |
| 'stealing': (-45, 30, -25, 20, -15), | |
| 'broke': (-25, 20, -15, 10, -10), | |
| 'smashed': (-40, 40, -20, 15, -10), | |
| 'ruined': (-50, 20, -30, 15, -20), | |
| 'wrecked': (-45, 20, -25, 15, -15), | |
| 'destroyed': (-60, 25, -40, 20, -25), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_VIOLATION_WORDS) | |
| # ── Invalidation/gaslighting ── | |
| _INVALIDATION_WORDS = { | |
| 'overreacting': (-20, 15, 20, 5, -5), # accusation -- D goes UP for speaker | |
| 'dramatic': (-15, 10, 15, 5, -5), | |
| 'crazy': (-30, 15, 15, 10, -10), | |
| 'paranoid': (-25, 15, 10, 5, -8), | |
| 'delusional': (-30, 15, 15, 10, -10), | |
| 'exaggerating': (-15, 10, 15, 5, -5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_INVALIDATION_WORDS) | |
| # ── Resolution/outcome words ── | |
| _RESOLUTION_WORDS = { | |
| 'made': (15, 5, 10, 0, 5), | |
| 'well': (15, -5, 10, 0, 5), | |
| 'anyway': (5, 5, 10, 0, 0), # persistence despite obstacles | |
| 'survived': (10, 5, 15, 0, 10), | |
| 'overcame': (20, 10, 20, 0, 10), | |
| 'managed': (10, 5, 10, 0, 5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_RESOLUTION_WORDS) | |
| # ── Threat/oath words ── | |
| _THREAT_WORDS = { | |
| 'swear': (-15, 20, 20, 15, -5), # oath -- escalation signal | |
| 'promise': (10, 5, 10, 5, 15), # commitment -- can be positive or threatening | |
| 'warn': (-20, 15, 25, 15, -5), | |
| 'warning': (-20, 15, 25, 15, -5), | |
| 'threatening': (-40, 30, 20, 20, -10), | |
| 'threat': (-40, 30, 15, 20, -10), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_THREAT_WORDS) | |
| # ── Medical/condition words ── | |
| _MEDICAL_WORDS = { | |
| 'herpes': (-30, 15, -20, 5, -10), | |
| 'cancer': (-80, 30, -50, 40, -40), | |
| 'sick': (-30, 10, -20, 10, -15), | |
| 'infected': (-35, 20, -25, 15, -15), | |
| 'pregnant': (5, 30, 0, 30, 40), # high G, context-dependent V | |
| 'disability': (-15, 5, -15, 5, 20), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_MEDICAL_WORDS) | |
| # ── Milestone/achievement words ── | |
| _MILESTONE_WORDS = { | |
| 'million': (35, 15, 25, 5, 10), | |
| 'billion': (20, 10, 20, 5, 10), | |
| 'streams': (10, 5, 5, 0, 5), | |
| 'verified': (20, 10, 15, 0, 10), | |
| 'published': (25, 10, 20, 0, 15), | |
| 'accepted': (30, 15, 20, 0, 15), | |
| 'paid': (15, 5, 10, 0, 5), | |
| 'hero': (40, 15, 30, 0, 20), | |
| 'dream': (25, 10, 10, 5, 15), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_MILESTONE_WORDS) | |
| # ── Comparison/judgment words ── | |
| _JUDGMENT_WORDS = { | |
| 'compare': (-15, 5, -10, 5, -5), | |
| 'compared': (-15, 5, -10, 5, -5), | |
| 'comparing': (-15, 5, -10, 5, -5), | |
| 'judge': (-20, 10, 15, 5, -5), | |
| 'judged': (-25, 10, -10, 5, -10), | |
| 'judging': (-20, 10, 15, 5, -5), | |
| 'criticize': (-25, 10, 15, 5, -8), | |
| 'criticized': (-30, 10, -15, 5, -10), | |
| 'blame': (-30, 15, 15, 10, -10), | |
| 'blamed': (-35, 15, -20, 10, -15), | |
| 'fault': (-25, 10, -15, 5, -10), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_JUDGMENT_WORDS) | |
| # ── Temporal intensity words ── | |
| # These amplify through permanence/repetition | |
| _TEMPORAL_INTENSITY = { | |
| 'always': (-10, 5, -5, 5, -3), # infinity -- relentless | |
| 'constantly': (-10, 10, -5, 5, -3), # nonstop pressure | |
| 'every': (-5, 5, -5, 5, -3), # totality | |
| 'forever': (-5, 5, -5, 10, -5), # permanence | |
| } | |
| EMOTIONAL_VOCABULARY.update(_TEMPORAL_INTENSITY) | |
| # ── Exclusion/comparison markers ── | |
| _EXCLUSION_WORDS = { | |
| 'except': (-25, 5, -15, 5, -10), # exclusion -- everyone EXCEPT me | |
| 'besides': (-10, 5, -5, 0, -3), | |
| 'instead': (-15, 5, -10, 5, -5), # replacement -- they chose X instead of me | |
| 'without': (-45, 15, -40, 15, -25), # already exists but reconfirm | |
| 'more': (-8, 5, -5, 0, -3), # comparison -- implies less for speaker | |
| 'less': (-10, -5, -5, 0, -5), # already exists | |
| 'better': (-5, 5, -5, 0, -3), # context: "theyre better" = im worse | |
| 'prettier': (-10, 5, -10, 0, -5), | |
| 'smarter': (-8, 5, -10, 0, -5), | |
| 'faster': (-5, 5, -5, 0, -3), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_EXCLUSION_WORDS) | |
| # ── Doubt/questioning markers ── | |
| # "even" in "do you even care" = doubt amplifier | |
| # "actually" in "did you actually try" = skepticism | |
| _DOUBT_WORDS = { | |
| 'even': (-10, 5, -5, 5, -3), # doubt -- "do you EVEN" | |
| 'actually': (-8, 5, 5, 0, -3), # skepticism -- "did you ACTUALLY" | |
| 'really': (-5, 5, -5, 0, -3), # doubt when questioning: "do you really" | |
| 'anymore': (-15, 5, -10, 5, -5), # loss of state -- "i dont care anymore" | |
| 'supposed': (-10, 5, -10, 5, -5), # obligation unfulfilled -- "you were supposed to" | |
| } | |
| EMOTIONAL_VOCABULARY.update(_DOUBT_WORDS) | |
| # ── Upbringing/family structure ── | |
| _UPBRINGING_WORDS = { | |
| 'foster': (-3, 0, -3, 0, -10), # neutralizer/dampener -- substitute. reduces what follows. not negative itself. | |
| 'adopted': (-5, 5, -5, 5, 35), # near-neutral -- can be positive (chosen) or painful | |
| 'orphan': (-40, 10, -30, 10, 40), # parentless -- high G loss | |
| 'homeless': (-50, 15, -40, 15, 35), | |
| 'abused': (-70, 30, -50, 30, 40), | |
| 'neglected': (-50, 10, -40, 10, 35), | |
| 'molested': (-90, 40, -70, 50, 50), | |
| 'trafficked': (-80, 40, -60, 50, 45), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_UPBRINGING_WORDS) | |
| # ── Missing common words (found by benchmark) ── | |
| _BENCHMARK_FIXES = { | |
| 'disappointment': (-45, 10, -25, 10, -25), | |
| 'disappointments': (-40, 10, -20, 10, -20), | |
| 'forgot': (-25, 8, -15, 8, -10), | |
| 'forget': (-15, 5, -10, 5, -8), | |
| 'forgetting': (-15, 5, -10, 5, -8), | |
| 'finished': (15, 5, 15, 0, 5), # achievement -- completed something | |
| 'started': (5, 10, 5, 5, 3), # beginning -- mild positive energy | |
| 'called': (-5, 5, 5, 0, 0), # near-neutral -- "called me" = labeled | |
| 'invisible': (-35, -10, -30, 5, -15), # social erasure | |
| 'burden': (-45, 10, -35, 10, -20), # self as weight on others | |
| 'replaced': (-40, 15, -30, 10, -20), # substituted out | |
| 'trapped': (-40, 20, -40, 20, -15), # no agency | |
| 'stuck': (-25, 10, -25, 10, -10), # mild trapped | |
| 'empty': (-30, -15, -20, 5, -15), # hollow | |
| 'numb': (-25, -20, -15, 0, -10), # disconnected | |
| 'exhausted': (-30, -15, -25, 10, -15), # depleted | |
| 'drained': (-25, -15, -20, 5, -10), # emptied out | |
| 'overwhelmed': (-35, 30, -30, 20, -15), # too much input | |
| 'suffocating': (-45, 35, -40, 25, -20), # can't breathe metaphor | |
| # ── Common reducers/modifiers found by SST-2 gap analysis ── | |
| 'little': (-15, -5, -10, 0, -5), # reducer -- "little to love" = almost none | |
| 'despite': (-10, 5, 5, 0, -3), # concession -- upcoming contradiction | |
| 'only': (-10, -5, -5, 0, -3), # minimizer -- "only manages" = barely | |
| 'almost': (-8, 0, -5, 0, -3), # fell short -- "almost good" = not good | |
| 'seems': (-5, 0, -5, 0, -3), # uncertainty -- not confirmed | |
| 'lacks': (-30, 5, -15, 5, -10), # absence of quality | |
| 'lacking': (-25, 5, -12, 5, -8), | |
| 'obvious': (-15, 5, 5, 0, -5), # dismissive -- "obvious plot" | |
| 'predictable': (-20, -5, 5, 0, -5), | |
| 'flat': (-20, -10, -10, 0, -5), | |
| 'dull': (-25, -15, -10, 0, -8), | |
| 'generic': (-15, -5, -5, 0, -5), | |
| 'bland': (-20, -10, -10, 0, -5), | |
| 'mediocre': (-25, -5, -10, 0, -8), | |
| 'forgettable': (-20, -5, -10, 0, -5), | |
| 'pointless': (-30, 5, -15, 5, -10), | |
| 'mess': (-30, 10, -15, 10, -10), | |
| 'waste': (-35, 10, -20, 10, -10), | |
| 'wasted': (-30, 10, -15, 10, -8), | |
| 'filth': (-50, 15, -25, 10, -15), | |
| 'garbage': (-40, 10, -20, 10, -12), | |
| 'trash': (-35, 10, -15, 10, -10), | |
| 'awful': (-50, 15, -25, 10, -15), | |
| 'horrible': (-50, 15, -25, 10, -15), | |
| 'terrible': (-50, 15, -25, 10, -15), | |
| 'worst': (-55, 15, -30, 10, -18), | |
| 'pathetic': (-45, 10, -20, 10, -12), | |
| 'absurd': (-25, 10, -10, 5, -8), | |
| 'ridiculous': (-30, 10, -10, 5, -10), | |
| 'foolish': (-25, 10, -10, 5, -8), | |
| 'shallow': (-25, -5, -10, 0, -8), | |
| 'lazy': (-25, -10, -15, 0, -8), | |
| 'pretentious': (-30, 5, 10, 0, -10), | |
| 'overrated': (-25, 5, -10, 5, -8), | |
| 'disappointing':(-35, 10, -20, 10, -12), | |
| 'uninspired': (-25, -10, -15, 0, -8), | |
| 'unfunny': (-25, 5, -10, 5, -8), | |
| 'tiresome': (-25, -10, -15, 5, -8), | |
| 'clunky': (-20, 5, -10, 0, -5), | |
| 'cliche': (-20, 0, -10, 0, -5), | |
| # Positive review words | |
| 'brilliant': (+55, 15, 20, 0, 12), | |
| 'masterpiece': (+60, 15, 25, 0, 15), | |
| 'stunning': (+50, 20, 15, 0, 12), | |
| 'superb': (+55, 15, 20, 0, 12), | |
| 'flawless': (+50, 10, 20, 0, 12), | |
| 'captivating': (+45, 15, 15, 0, 10), | |
| 'riveting': (+45, 20, 15, 0, 10), | |
| 'heartwarming': (+50, 15, 15, 0, 15), | |
| 'touching': (+35, 10, 10, 0, 10), | |
| 'compelling': (+40, 15, 15, 0, 10), | |
| 'gripping': (+40, 20, 15, 0, 10), | |
| 'beautifully': (+45, 10, 15, 0, 10), | |
| 'finest': (+50, 10, 20, 0, 12), | |
| 'thrilling': (+45, 20, 15, 0, 10), | |
| 'remarkable': (+45, 10, 15, 0, 10), | |
| 'refreshing': (+35, 10, 10, 0, 8), | |
| 'entertaining': (+35, 15, 10, 0, 8), | |
| 'enjoyable': (+35, 10, 10, 0, 8), | |
| 'delightful': (+45, 15, 15, 0, 10), | |
| 'witty': (+35, 10, 15, 0, 8), | |
| 'clever': (+30, 10, 15, 0, 8), | |
| 'engaging': (+35, 15, 10, 0, 8), | |
| 'powerful': (+40, 15, 20, 0, 10), | |
| 'impressive': (+40, 10, 15, 0, 10), | |
| 'cooked': (-30, 15, -20, 10, -10), # slang -- destroyed/ruined | |
| 'shade': (-20, 10, 15, 5, -5), # slang -- indirect disrespect | |
| 'ratio': (-25, 15, -15, 10, -10), # slang -- publicly outperformed/rejected | |
| 'stopped': (-5, 5, -5, 5, -3), # NEGATOR role does the flip. Minimal own force. | |
| 'broken': (-30, 10, -25, 10, -15), # damaged state | |
| 'ruined': (-50, 20, -30, 15, -20), # destruction (override if exists) | |
| 'failed': (-35, 15, -25, 15, -15), # failure | |
| 'failing': (-30, 15, -20, 15, -12), | |
| 'losing': (-25, 15, -20, 10, -10), | |
| 'lost': (-30, 10, -25, 10, -15), | |
| 'missing': (-20, 10, -15, 10, -10), # absence | |
| 'working': (10, 5, 10, 0, 3), # mild positive -- functioning | |
| } | |
| EMOTIONAL_VOCABULARY.update(_BENCHMARK_FIXES) | |
| # ── RoBERTa-mined emotional words (63 words) ── | |
| # Extracted by scoring frequent missing words through RoBERTa. | |
| # Filtered: removed structural words, bias (gay/police from twitter data), | |
| # and words already handled by other roles (fucking=AMPLIFIER, just=FILLER). | |
| _ROBERTA_MINED = { | |
| 'bloody': (-54, +27, -27, +0, -14), | |
| 'destruction': (-53, +26, -27, +0, -14), | |
| 'hated': (-53, +26, -27, +0, -14), | |
| 'terrorist': (-52, +26, -26, +0, -13), | |
| 'mean': (-40, +20, -20, +0, -10), # reduced -- "mean" is also average/intend | |
| 'bombing': (-51, +25, -26, +0, -13), | |
| 'terminal': (-50, +25, -25, +0, -13), | |
| 'criminal': (-50, +25, -25, +0, -13), | |
| 'terrorists': (-50, +25, -25, +0, -13), | |
| 'concerning': (-48, +24, -24, +0, -12), | |
| 'killed': (-47, +23, -24, +0, -12), | |
| 'forced': (-47, +23, -24, +0, -12), | |
| 'scandal': (-46, +23, -23, +0, -12), | |
| 'violation': (-45, +22, -23, +0, -12), | |
| 'problems': (-44, +22, -22, +0, -11), | |
| 'divided': (-44, +22, -22, +0, -11), | |
| 'lies': (-41, +20, -21, +0, -11), | |
| 'struggling': (-40, +20, -20, +0, -10), | |
| 'deaths': (-37, +18, -19, +0, -10), | |
| 'knife': (-36, +18, -18, +0, -9), | |
| 'buried': (-36, +18, -18, +0, -9), | |
| 'judgment': (-36, +18, -18, +0, -9), | |
| 'important': (+36, +9, +12, +0, +7), | |
| 'interest': (+20, +5, +10, +0, +5), # reduced -- context-dep | |
| 'skills': (+36, +9, +12, +0, +7), | |
| 'music': (+38, +9, +12, +0, +7), | |
| 'unique': (+38, +9, +12, +0, +7), | |
| 'vital': (+39, +9, +13, +0, +7), | |
| 'stronger': (+39, +9, +13, +0, +7), | |
| 'strong': (+41, +10, +13, +0, +8), | |
| 'smiling': (+42, +10, +14, +0, +8), | |
| 'benefits': (+43, +10, +14, +0, +8), | |
| 'loves': (+46, +11, +15, +0, +9), | |
| 'helps': (+47, +11, +15, +0, +9), | |
| 'smooth': (+47, +11, +15, +0, +9), | |
| 'historic': (+47, +11, +15, +0, +9), | |
| 'adore': (+48, +12, +16, +0, +9), | |
| 'potential': (+30, +8, +10, +0, +6), # reduced -- context-dep | |
| 'clean': (+49, +12, +16, +0, +9), | |
| 'greater': (+30, +8, +10, +0, +6), # reduced -- comparative | |
| 'fascinating': (+51, +12, +17, +0, +10), | |
| 'victory': (+53, +13, +17, +0, +10), | |
| 'enjoyed': (+54, +13, +18, +0, +10), | |
| 'magic': (+54, +13, +18, +0, +10), | |
| 'gold': (+30, +8, +10, +0, +6), # reduced -- physical object | |
| 'ideal': (+56, +14, +18, +0, +11), | |
| 'outstanding': (+57, +14, +19, +0, +11), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_ROBERTA_MINED) | |
| # ── Common modifiers + slang found by corpus mining ── | |
| _CORPUS_MINED = { | |
| 'happened': (-10, 10, -5, 10, 5), # event occurred -- slight unease, urgency | |
| 'happening': (-8, 10, -5, 10, 5), | |
| 'again': (-10, 5, -8, 5, -5), # repetition -- wearing down | |
| 'anymore': (-15, 5, -10, 5, -5), # loss of state (override if exists) | |
| 'wait': (-5, 5, -5, 10, 0), # patience/urgency | |
| 'waiting': (-8, 5, -8, 10, -3), | |
| 'down': (-15, 5, -10, 5, -5), # negative direction | |
| 'kids': (0, 5, 0, 0, 45), # relationship -- high G like child | |
| 'kid': (0, 5, 0, 0, 45), | |
| 'guy': (0, 0, 0, 0, 5), # neutral person reference | |
| 'girl': (0, 0, 0, 0, 5), | |
| 'man': (0, 5, 5, 0, 5), # neutral/mild empathy filler | |
| 'must': (-5, 5, 5, 5, 0), # inference/obligation | |
| 'sounds': (0, 0, 0, 0, 0), # hedging -- passes through | |
| 'first': (5, 5, 5, 5, 5), # milestone marker | |
| 'once': (-5, 0, -3, 0, -3), # past -- something ended | |
| 'another': (-5, 5, -3, 5, -3), # repetition | |
| 'anything': (-5, 5, -5, 5, 0), # open/desperate depending on context | |
| 'ago': (-3, 0, -3, 0, -3), # past temporal | |
| 'yesterday': (0, 0, 0, 10, 0), # time marker -- urgency only | |
| 'rough': (-25, 10, -15, 5, -8), # difficulty/hardship | |
| 'tough': (-20, 10, -10, 5, -5), | |
| 'harsh': (-30, 15, -15, 5, -10), | |
| 'brutal': (-40, 20, -20, 10, -12), | |
| 'insane': (-20, 25, -10, 10, -5), # slang -- extreme, often negative | |
| 'nuts': (-15, 20, -5, 5, -3), | |
| 'wild': (-5, 20, 5, 5, 0), # intense, context-dependent | |
| 'crazy': (-15, 15, -5, 10, -5), # override if exists -- slang varies | |
| 'messed': (-25, 10, -15, 10, -8), | |
| 'screwed': (-30, 15, -20, 10, -10), | |
| 'ruined': (-45, 15, -25, 10, -15), # override if exists | |
| 'wrecked': (-40, 15, -20, 10, -12), | |
| 'done': (-10, -5, -10, 5, -5), # finality -- "im done" | |
| 'over': (-10, -5, -5, 5, -5), # ending | |
| 'gone': (-20, 5, -15, 5, -10), # absence | |
| 'lost': (-30, 10, -25, 10, -15), # override | |
| 'left': (-8, 5, -5, 5, -3), # override -- near neutral, VICTIMIZATION resolves | |
| 'wrong': (-25, 10, -15, 10, -8), | |
| 'fault': (-25, 10, -15, 5, -10), # override if exists | |
| 'blame': (-30, 15, 15, 10, -10), # override | |
| 'worth': (10, 5, 10, 0, 10), # value | |
| 'worthy': (15, 5, 15, 0, 10), | |
| 'deserve': (5, 5, 5, 5, 10), # context-dep -- "i deserve better" vs "you deserve this" | |
| 'deserved': (5, 5, 5, 5, 10), | |
| 'matters': (5, 5, 5, 5, 15), # gravity -- this matters | |
| 'counts': (5, 5, 5, 0, 10), | |
| 'enough': (-15, 10, -5, 5, -8), # "not enough" = lacking. override. | |
| } | |
| EMOTIONAL_VOCABULARY.update(_CORPUS_MINED) | |
| # ── Novel sentence gap fills (round 2) ── | |
| _NOVEL_GAPS_2 = { | |
| 'laughed': (-5, 20, 5, 0, 5), # liquid -- laughed at vs laughed with | |
| 'grave': (-20, -10, -15, 0, 30), # death-related, high G | |
| 'singled': (-15, 10, -10, 5, -5), # isolated/targeted | |
| 'suspended': (-25, 15, -20, 10, -10), # punished/removed | |
| 'defending': (10, 15, 15, 10, 5), # standing up for | |
| 'garnished': (-20, 5, -20, 10, -10), # wages taken | |
| 'wages': (0, 0, 0, 0, 20), # money -- object with G | |
| 'fainted': (-25, 20, -30, 20, -10), # medical event | |
| 'chose': (-5, 5, 5, 5, 5), # decision -- near neutral | |
| 'danced': (25, 15, 10, 0, 10), # joyful movement | |
| 'normal': (10, -5, 10, 0, 5), # stability/relief | |
| 'benign': (25, -10, 15, 0, 15), # medical relief | |
| 'sunset': (15, -5, 5, 0, 8), # peaceful/romantic | |
| 'mile': (10, 10, 10, 0, 5), # achievement context | |
| 'breathe': (-10, 10, -10, 5, -5), # liquid -- cant breathe vs finally breathe | |
| 'texts': (-5, 5, -5, 5, 10), # high G (communication) | |
| 'subtweeted': (-20, 10, 10, 5, -8), # indirect attack | |
| 'screenshotted':(-15, 10, -5, 5, -5), # privacy violation | |
| 'watching': (-3, 5, 5, 5, 0), # near neutral -- context determines | |
| 'reaching': (5, 5, 5, 5, 5), # effort | |
| 'stopping': (-5, 5, -5, 5, 0), # cessation | |
| 'asking': (0, 5, -5, 5, 0), # neutral request | |
| # Fix overwieghted words | |
| 'stories': (5, 5, 5, 0, 5), # was +37, too positive for neutral noun | |
| 'space': (0, -5, 0, 0, 0), # was +31, "needs space" = distance | |
| 'shared': (5, 5, 5, 0, 5), # was +35, context-dep | |
| 'credit': (5, 5, 10, 0, 5), # was +28, too positive | |
| 'order': (0, 0, 5, 0, 0), # was +28, too positive for neutral noun | |
| } | |
| EMOTIONAL_VOCABULARY.update(_NOVEL_GAPS_2) | |
| # ── Novel sentence gap fills (round 3) ── | |
| _NOVEL_GAPS_3 = { | |
| 'texting': (-5, 5, 0, 5, 10), # communication -- context determines | |
| 'her': (0, 0, 0, 0, 0), # pronoun -- neutral | |
| 'feelings': (10, 10, -5, 5, 20), # emotional state -- high G | |
| 'were': (0, 0, 0, 0, 0), # verb -- neutral | |
| 'treated': (-10, 5, -10, 5, -5), # "treated like" = objectified | |
| 'listened': (10, 5, 5, 5, 5), # attention given | |
| 'should': (-8, 5, -5, 5, -3), # obligation/regret | |
| 'have': (0, 0, 0, 0, 0), # auxiliary -- neutral | |
| 'been': (0, 0, 0, 0, 0), | |
| 'there': (0, 0, 0, 0, 0), | |
| 'things': (0, 0, 0, 0, 5), # objects | |
| 'could': (-5, 0, -5, 0, -3), # hypothetical -- missed opportunity | |
| 'year': (0, 0, 0, 5, 5), # time marker | |
| 'years': (0, 0, 0, 5, 5), | |
| 'situation': (-5, 5, -5, 5, 5), # context -- usually negative context | |
| 'hand': (5, 0, 5, 0, 10), # connection -- high G (touch) | |
| 'how': (0, 0, 0, 0, 0), # question word | |
| 'coffee': (5, 5, 0, 0, 3), # comfort object | |
| 'curled': (10, -5, 5, 0, 5), # warmth/comfort | |
| 'next': (0, 0, 0, 0, 0), | |
| 'when': (0, 0, 0, 0, 0), | |
| 'everyone': (0, 5, 0, 5, 10), # scope amplifier -- high G | |
| 'saw': (-5, 5, -5, 5, 0), # witnessed -- slight negative lean | |
| 'breakdown': (-45, 30, -30, 20, -15), # emotional collapse | |
| 'myself': (5, 5, 10, 0, 15), # self-empowerment or self-reference | |
| 'learned': (15, 5, 15, 0, 8), # growth/achievement | |
| 'their': (0, 0, 0, 0, 0), | |
| 'approval': (10, 5, -10, 5, 15), # seeking validation -- high G | |
| 'underwater': (-30, 15, -25, 10, -10), # drowning metaphor | |
| 'think': (0, 5, 5, 0, 0), | |
| 'straight': (5, 0, 5, 0, 0), | |
| 'bittersweet': (-10, 5, -5, 0, 10), # mixed -- lean negative | |
| 'necessary': (5, 5, 10, 5, 5), # needed -- slight positive | |
| 'let': (-5, 0, -5, 0, 0), # release/permission | |
| 'them': (0, 0, 0, 0, 0), | |
| 'own': (5, 0, 10, 0, 5), # ownership/agency | |
| 'fumbled': (-25, 10, -15, 10, -8), # slang -- dropped the ball | |
| 'bag': (0, 0, 0, 0, 5), # slang object | |
| 'caught': (-10, 15, -5, 10, 0), # surprise/trap | |
| 'aired': (-20, 10, -10, 10, -8), # exposed/put on blast | |
| 'out': (-5, 5, -3, 0, 0), # direction/exposure | |
| 'purpose': (-10, 10, 10, 5, -5), # "on purpose" = intentional harm | |
| 'she': (0, 0, 0, 0, 0), # pronoun | |
| 'they': (0, 0, 0, 0, 0), | |
| 'bro': (-3, 5, 5, 0, 5), # casual address | |
| 'cant': (-10, 5, -10, 5, -5), # inability -- override negator force | |
| } | |
| EMOTIONAL_VOCABULARY.update(_NOVEL_GAPS_3) | |
| # ── Novel sentence gap fills (round 4) ── | |
| _NOVEL_GAPS_4 = { | |
| 'intrusive': (-35, 20, -20, 15, -10), # unwanted -- intrusive thoughts | |
| 'disconnected': (-25, -10, -20, 5, -10), # isolation | |
| 'autopilot': (-15, -15, -10, 0, -5), # disengaged from life | |
| 'people': (0, 0, 0, 0, 5), # neutral collective | |
| 'attacks': (-40, 30, -25, 20, -12), # assault -- panic attacks | |
| 'frequent': (0, 0, 0, 0, 0), # neutral modifier | |
| 'reached': (10, 5, 10, 5, 5), # effort -- reaching out | |
| 'check': (0, 5, 5, 0, 0), | |
| 'media': (0, 5, 0, 5, 5), | |
| 'said': (0, 5, 5, 0, 0), | |
| 'didnt': (-10, 5, -5, 5, -3), # negation -- same as dont | |
| 'doing': (0, 5, 5, 0, 0), | |
| 'would': (-3, 0, -3, 0, 0), # hypothetical | |
| 'having': (0, 0, 0, 0, 0), | |
| 'safe': (20, -10, 20, 0, 15), # security -- important G | |
| 'trusting': (10, 5, -5, 0, 15), # vulnerability | |
| 'trouble': (-20, 10, -15, 10, -8), | |
| 'flashbacks': (-40, 30, -25, 20, -12), | |
| 'wya': (-5, 5, 0, 5, 0), # where you at -- checking | |
| 'ong': (10, 10, 10, 0, 5), # on god -- emphasis/genuine | |
| 'thats': (0, 0, 0, 0, 0), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_NOVEL_GAPS_4) | |
| # ── Novel sentence gap fills (round 5) ── | |
| _NOVEL_GAPS_5 = { | |
| 'erased': (-30, 10, -25, 10, -12), # deleted from existence | |
| 'photo': (0, 0, 0, 0, 10), # object -- high G (memories) | |
| 'question': (-10, 10, -5, 5, -3), # doubt/challenge | |
| 'sanity': (5, 5, 5, 0, 20), # mental health -- high G | |
| 'twisted': (-30, 15, -15, 10, -10), # manipulated/distorted | |
| 'words': (0, 5, 0, 0, 5), # neutral carrier | |
| 'until': (0, 0, 0, 0, 0), # temporal connector | |
| 'stayed': (10, -5, 10, 0, 10), # presence/commitment | |
| 'went': (0, 5, 0, 5, 0), # movement -- neutral | |
| 'time': (0, 0, 0, 5, 5), # temporal -- neutral with G | |
| 'since': (0, 0, 0, 0, 0), # temporal connector | |
| 'none': (-15, -5, -10, 0, -5), # absence/zero | |
| 'audacity': (-25, 20, 15, 10, -8), # offense/disbelief | |
| 'youre': (0, 0, 0, 0, 0), # contraction -- neutral | |
| 'here': (0, 0, 0, 0, 0), # location -- neutral | |
| 'thing': (0, 0, 0, 0, 0), # object -- neutral | |
| 'wouldnt': (-5, 0, -5, 0, 0), # hypothetical negation | |
| 'exhaust': (-25, -10, -20, 5, -8), | |
| 'exhausting': (-25, -10, -20, 5, -8), | |
| 'avoid': (-10, 5, -10, 5, -5), # avoidance behavior | |
| 'conflict': (-25, 15, -10, 10, -8), | |
| 'hollow': (-20, -5, -15, 0, -8), # empty/insincere | |
| 'pretend': (-15, 5, -10, 5, -5), # masking | |
| 'pretending': (-15, 5, -10, 5, -5), | |
| 'scream': (-30, 40, -15, 20, -10), | |
| 'punch': (-35, 40, 20, 20, -10), | |
| 'dare': (-15, 20, 20, 10, -5), | |
| 'invited': (15, 10, 5, 0, 10), # included/welcomed | |
| 'photo': (0, 0, 0, 0, 10), | |
| 'mowed': (10, 5, 5, 0, 5), # act of service | |
| 'groceries': (0, 0, 0, 0, 5), | |
| 'procedure': (-10, 10, -10, 15, 10), # medical -- high G | |
| 'nurse': (10, 5, 10, 0, 15), # caretaker | |
| 'flowers': (20, 5, 10, 0, 10), | |
| 'doorstep': (0, 0, 0, 0, 5), | |
| 'apartment': (0, 0, 0, 0, 15), # home -- high G | |
| 'thanksgiving': (10, 5, 5, 0, 15), # holiday gathering | |
| 'date': (10, 15, 5, 5, 10), # romantic context | |
| 'smiled': (25, 10, 10, 0, 8), | |
| 'meant': (5, 5, 5, 5, 5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_NOVEL_GAPS_5) | |
| # ── Novel sentence gap fills (round 6) ── | |
| _NOVEL_GAPS_6 = { | |
| 'corrects': (-15, 10, 15, 5, -5), # correction = power dynamic | |
| 'keeps': (0, 0, 5, 0, 0), | |
| 'weaponize': (-40, 15, 15, 10, -12), # using something AS a weapon | |
| 'weaponized': (-40, 15, 15, 10, -12), | |
| 'insecurities': (-30, 10, -25, 5, -12), | |
| 'insecurity': (-25, 10, -20, 5, -10), | |
| 'reads': (5, -5, 5, 0, 5), # near-neutral -- reading to someone vs reading texts | |
| 'being': (0, 0, 0, 0, 0), | |
| 'asked': (0, 5, -5, 5, 0), | |
| 'judges': (-20, 10, 15, 5, -8), # judgment | |
| 'judging': (-20, 10, 15, 5, -8), | |
| 'sees': (5, 5, 5, 0, 5), # recognition -- mild positive | |
| 'else': (0, 0, 0, 0, 0), | |
| 'does': (0, 0, 0, 0, 0), | |
| 'voice': (5, 5, 5, 0, 10), # expression -- high G | |
| 'doesnt': (-10, 5, -5, 5, -3), # negation | |
| 'matter': (5, 0, 5, 0, 10), # importance -- G | |
| 'shrink': (-15, -5, -20, 0, -5), # making self smaller | |
| 'shrinking': (-15, -5, -20, 0, -5), | |
| 'expect': (-10, 5, 10, 5, -3), # obligation/pressure | |
| 'expects': (-10, 5, 10, 5, -3), | |
| 'eggshells': (-25, 15, -20, 10, -10), # walking on eggshells = anxiety | |
| 'score': (-5, 5, 10, 0, 0), # keeping score = resentment context | |
| 'arguments': (-25, 15, -10, 10, -8), | |
| 'ghost': (-20, -10, -15, 0, -8), # invisible/ignored | |
| 'disappearing': (-25, 5, -20, 5, -10), | |
| 'perform': (-10, 5, -5, 5, -3), # performing = masking | |
| 'comfortable': (15, -10, 10, 0, 8), | |
| 'accept': (15, 5, 10, 0, 10), | |
| 'accepts': (15, 5, 10, 0, 10), | |
| 'fight': (-20, 25, 15, 15, -5), # conflict -- but "fight for me" = positive | |
| 'excited': (40, 25, 15, 5, 10), | |
| 'excitement': (35, 25, 10, 5, 8), | |
| 'bike': (5, 10, 5, 0, 5), | |
| 'ring': (5, 5, 5, 0, 15), # high G -- engagement ring | |
| 'laugh': (15, 15, 10, 0, 8), # override -- was +28 | |
| } | |
| EMOTIONAL_VOCABULARY.update(_NOVEL_GAPS_6) | |
| # ── Novel sentence gap fills (round 7) ── | |
| _NOVEL_GAPS_7 = { | |
| 'shouldnt': (-10, 5, -5, 5, -3), # regret/prohibition | |
| 'staring': (-5, 5, -5, 0, 0), # fixation | |
| 'ceiling': (0, -5, 0, 0, 0), # physical -- neutral | |
| 'version': (0, 0, 0, 0, 0), # neutral concept | |
| 'cycle': (-5, 5, -5, 5, 10), # pattern -- high G (cycles of behavior) | |
| 'through': (0, 5, 5, 0, 0), # movement/endurance | |
| 'gave': (5, 5, 5, 0, 5), # giving -- mild positive (override old) | |
| 'built': (15, 10, 15, 0, 8), # construction/achievement | |
| 'real': (5, 5, 5, 0, 5), | |
| 'hair': (0, 0, 0, 0, 5), | |
| 'harmed': (-40, 15, -25, 15, -12), # self-harm | |
| 'harm': (-35, 15, -20, 15, -10), | |
| 'days': (0, 0, 0, 5, 0), # temporal | |
| 'isnt': (-8, 5, -5, 5, -3), # negation | |
| 'working': (8, 5, 8, 0, 3), # functioning -- override | |
| 'sober': (15, -5, 20, 0, 20), # recovery milestone -- high G | |
| 'sobriety': (15, -5, 20, 0, 20), | |
| 'cycle': (-5, 5, -5, 5, 10), | |
| 'replaying': (-15, 10, -10, 5, -5), # stuck in loop | |
| 'brain': (0, 5, 0, 0, 10), # high G -- mental state | |
| 'asleep': (5, -15, 5, 0, 0), # rest state | |
| 'ceiling': (0, -5, 0, 0, 0), | |
| 'honest': (15, 5, 10, 0, 10), # integrity | |
| 'honestly': (5, 5, 5, 0, 5), # override old V=+50 | |
| 'belong': (10, 5, 5, 0, 15), # inclusion -- high G | |
| 'talented': (30, 10, 15, 0, 10), | |
| 'meals': (5, 0, 5, 0, 5), | |
| 'answered': (5, 5, 5, 0, 5), | |
| 'phone': (0, 5, 0, 5, 15), # override -- high G communication | |
| 'deserve': (5, 5, 5, 5, 10), # override | |
| } | |
| EMOTIONAL_VOCABULARY.update(_NOVEL_GAPS_7) | |
| # ── Novel sentence gap fills (round 8) ── | |
| _NOVEL_GAPS_8 = { | |
| 'ideas': (10, 10, 10, 0, 10), # creative output -- G matters | |
| 'replacement': (-20, 10, -20, 10, -10), # being replaced | |
| 'knows': (5, 0, 10, 0, 5), # awareness/understanding | |
| 'bearable': (10, -5, 5, 0, 5), # making it through | |
| 'skipped': (-10, 5, -10, 5, -5), # missed/avoided | |
| 'water': (3, 0, 0, 0, 3), # basic need -- tiny positive | |
| 'walk': (8, 5, 8, 0, 5), # movement/exercise | |
| 'around': (0, 0, 0, 0, 0), | |
| 'blinds': (0, 0, 0, 0, 0), | |
| 'opened': (5, 5, 5, 0, 3), # opening = progress | |
| 'block': (0, 5, 0, 0, 0), | |
| 'drank': (3, 0, 0, 0, 0), | |
| 'bed': (0, -5, 0, 0, 5), # rest context | |
| 'brushed': (3, 0, 3, 0, 0), # self-care | |
| 'teeth': (0, 0, 0, 0, 0), | |
| 'morning': (5, 5, 5, 5, 3), # new day -- mild positive | |
| 'recital': (10, 10, 5, 5, 15), # performance -- high G (child's event) | |
| 'promote': (10, 5, 10, 0, 8), | |
| 'promoted': (15, 10, 15, 0, 10), # achievement | |
| 'blame': (-30, 15, 15, 10, -10), # override | |
| 'trained': (10, 5, 10, 0, 5), | |
| 'silence': (-10, -15, -5, 0, 5), # absence of sound -- slight negative | |
| 'sentences': (0, 0, 0, 0, 0), | |
| 'bill': (-15, 5, -10, 10, 10), # financial stress -- G from importance | |
| 'bills': (-15, 5, -10, 10, 10), | |
| 'paycheck': (5, 5, 5, 5, 15), # income -- high G | |
| 'homeless': (-50, 15, -40, 15, 35), # severe -- high G | |
| 'shut': (-15, 10, -10, 10, -5), | |
| 'promised': (-5, 5, -5, 5, 10), # commitment -- high G, context-dep | |
| 'different': (0, 5, 0, 5, 0), | |
| 'scares': (-25, 20, -15, 10, -8), | |
| 'scared': (-30, 25, -20, 15, -10), # override -- was too extreme | |
| 'traumatizing': (-40, 20, -25, 15, -15), | |
| 'traumatized': (-45, 15, -30, 10, -18), | |
| 'yelled': (-30, 25, 15, 15, -10), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_NOVEL_GAPS_8) | |
| # ── Permanent suite gap fills ── | |
| _PERM_GAPS = { | |
| 'odds': (-10, 10, -5, 5, 5), # adversity context | |
| 'turned': (-15, 10, -10, 10, -5), # reversal -- "turned on me" | |
| 'slightly': (-3, 0, 0, 0, 0), | |
| 'dogs': (5, 5, 0, 0, 30), # pet -- high G | |
| 'playing': (10, 10, 5, 0, 5), # recreation | |
| 'video': (0, 5, 0, 0, 0), | |
| 'messages': (0, 5, 0, 5, 10), # communication -- G | |
| 'between': (0, 0, 0, 0, 0), | |
| 'food': (5, 0, 5, 5, 10), # basic need -- G | |
| 'found': (-5, 10, 5, 10, 0), # discovery -- slight neg lean (found out = bad news often) | |
| 'something': (-3, 5, -3, 5, 0), # vague -- slight unease | |
| 'scan': (-10, 10, -10, 15, 10), # medical test -- G + urgency | |
| 'kitchen': (5, 0, 5, 0, 5), # domestic warmth | |
| 'visited': (5, 5, 5, 5, 5), # went to see | |
| 'chat': (5, 5, 5, 0, 5), # communication | |
| 'choose': (-5, 10, 5, 10, 5), # forced choice = stress | |
| 'speaking': (0, 5, 5, 0, 0), | |
| 'generally': (0, 0, 0, 0, 0), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_PERM_GAPS) | |
| # ── Novel sentence gap fills (round 9) ── | |
| _NOVEL_GAPS_9 = { | |
| 'theyd': (0, 0, 0, 0, 0), # contraction -- they would | |
| 'someone': (0, 0, 0, 0, 5), # person reference -- already OTHER_REF | |
| 'conversation': (0, 5, 0, 0, 5), | |
| 'dissociating': (-30, -15, -25, 10, -12), # mental health -- disconnection | |
| 'dissociate': (-25, -15, -20, 10, -10), | |
| 'mirror': (-5, 5, -5, 0, 10), # self-reflection -- high G | |
| 'guilty': (-35, 10, -20, 10, -12), | |
| 'meal': (5, 0, 5, 0, 5), # basic need | |
| 'rings': (0, 5, 0, 5, 5), | |
| 'apartment': (0, 0, 0, 0, 10), # override with G | |
| 'quiet': (-5, -15, -5, 0, 0), # absence of sound | |
| 'holidays': (5, 5, 0, 5, 15), # high G event | |
| 'stranger': (0, 5, 0, 0, 3), | |
| 'leaves': (0, 0, 0, 0, 0), # nature -- neutral | |
| 'color': (5, 5, 5, 0, 3), | |
| 'song': (10, 5, 5, 0, 8), | |
| 'reminded': (5, 5, 0, 5, 5), | |
| 'sun': (10, 5, 5, 0, 5), | |
| 'window': (0, 0, 0, 0, 0), | |
| 'perfect': (40, 10, 15, 0, 10), | |
| 'smiled': (25, 10, 10, 0, 8), # override -- confirm | |
| 'lucky': (10, 5, -5, 0, 5), # reduced -- "youre lucky" is often condescending | |
| 'bother': (-15, 5, -15, 5, -5), # burden | |
| 'clothes': (0, 0, 0, 0, 5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_NOVEL_GAPS_9) | |
| # ── Final vocab gaps from permanent suite ── | |
| _FINAL_GAPS = { | |
| 'got': (5, 5, 5, 5, 0), # acquisition -- mild positive ("got the job") | |
| 'off': (-5, 5, -3, 0, 0), # removal/separation -- slight negative | |
| 'ran': (5, 15, 10, 5, 0), # movement/effort | |
| 'day': (0, 0, 0, 5, 3), # time marker -- near neutral | |
| 'night': (-5, -5, -3, 0, 3), # darkness -- slight negative lean | |
| 'today': (0, 5, 0, 10, 0), # immediacy -- urgency only (override) | |
| 'room': (0, 0, 0, 0, 3), | |
| 'house': (0, 0, 0, 0, 15), # G override | |
| 'door': (0, 0, 0, 0, 5), | |
| 'car': (0, 0, 0, 0, 20), # G override | |
| 'name': (0, 0, 0, 0, 10), # identity -- high G | |
| 'face': (0, 5, 0, 0, 8), | |
| 'eyes': (0, 5, 0, 0, 5), | |
| 'heart': (5, 5, 0, 5, 20), # emotional core -- high G | |
| 'head': (0, 5, 0, 0, 8), | |
| 'body': (0, 5, 0, 0, 15), # physical self -- high G | |
| 'mind': (0, 5, 0, 0, 15), # mental self -- high G (override) | |
| 'world': (0, 5, 0, 0, 10), # scope | |
| 'person': (0, 0, 0, 0, 10), | |
| 'reason': (0, 5, 5, 5, 5), | |
| 'truth': (10, 5, 10, 5, 10), | |
| 'lie': (-30, 10, -15, 10, -10), | |
| 'real': (5, 5, 5, 0, 5), # authenticity (override confirm) | |
| 'fake': (-25, 10, -10, 5, -8), | |
| 'true': (10, 5, 10, 0, 8), | |
| 'wrong': (-25, 10, -15, 10, -8), # override confirm | |
| 'right': (5, 5, 10, 0, 5), # correctness -- mild pos | |
| } | |
| EMOTIONAL_VOCABULARY.update(_FINAL_GAPS) | |
| # ── Round 10 gaps ── | |
| _R10 = { | |
| 'whisper': (-10, -10, -10, 5, -5), # secrecy/exclusion | |
| 'whispered': (-10, -10, -10, 5, -5), | |
| 'rolled': (-10, 10, 5, 0, -3), # "rolled eyes" = dismissal | |
| 'carried': (15, 10, 15, 0, 10), # bearing weight for someone | |
| 'carry': (5, 10, 10, 5, 5), | |
| 'clapped': (20, 15, 10, 0, 8), # applause | |
| 'writes': (5, 0, 5, 0, 5), | |
| 'wrote': (5, 0, 5, 0, 5), | |
| 'letters': (5, 0, 0, 0, 10), # high G -- personal correspondence | |
| 'piece': (0, 0, 0, 0, 0), | |
| 'biggest': (5, 5, 5, 0, 3), | |
| 'performance': (10, 10, 10, 5, 10), # achievement context | |
| 'holding': (5, 5, 5, 0, 8), # connection | |
| 'hands': (5, 5, 5, 0, 8), # connection | |
| 'drew': (10, 5, 10, 0, 8), # created | |
| 'picture': (5, 0, 0, 0, 10), # memory -- high G | |
| 'flinched': (-25, 20, -25, 15, -10), # fear response | |
| 'flinch': (-20, 20, -20, 10, -8), | |
| 'raised': (-5, 15, 15, 10, 0), # "raised voice" = aggression context | |
| 'restaurant': (5, 5, 0, 0, 5), | |
| 'mistake': (-20, 10, -15, 5, -8), | |
| 'mistakes': (-20, 10, -15, 5, -8), | |
| 'perfection': (-5, 5, 5, 5, 5), # unrealistic standard | |
| 'lighter': (10, -5, 5, 0, 5), # relief | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R10) | |
| # ── Round 11: love languages + control/abuse ── | |
| _R11 = { | |
| 'interrupt': (-15, 10, 15, 5, -5), | |
| 'interrupts': (-15, 10, 15, 5, -5), | |
| 'jacket': (5, 0, 0, 0, 5), | |
| 'framed': (10, 5, 10, 0, 8), # preserved/displayed | |
| 'ever': (-5, 5, -3, 0, -3), | |
| 'monitors': (-20, 10, 20, 10, -8), # surveillance = control | |
| 'location': (0, 0, 0, 5, 5), | |
| 'isolate': (-35, 10, 20, 10, -12), # cutting off from support | |
| 'isolated': (-30, -5, -25, 5, -10), | |
| 'controls': (-25, 10, 25, 10, -8), # domination | |
| 'controlling': (-25, 10, 25, 10, -8), | |
| 'wear': (0, 0, 0, 0, 0), | |
| 'tabs': (-10, 5, 15, 5, -3), # keeping tabs = surveillance | |
| 'spending': (-5, 5, -5, 5, 5), | |
| 'tells': (-3, 5, 10, 5, 0), | |
| 'needy': (-20, 10, -20, 5, -8), # insult / invalidation | |
| 'clingy': (-20, 10, -15, 5, -8), | |
| 'bombs': (-15, 15, 10, 10, -5), # love bombing | |
| 'punishes': (-30, 15, 25, 10, -10), | |
| 'punished': (-30, 15, -20, 10, -10), | |
| 'threatens': (-30, 20, 20, 20, -10), | |
| 'guilts': (-20, 10, 15, 10, -8), | |
| 'guilt': (-30, 10, -20, 10, -12), | |
| 'memorized': (15, 5, 10, 0, 10), # attention/care | |
| 'schedule': (0, 5, 5, 5, 5), | |
| 'surprise': (15, 20, 5, 5, 8), | |
| 'soup': (5, 0, 0, 0, 5), # comfort | |
| 'songs': (10, 5, 5, 0, 8), | |
| 'wifi': (0, 0, 0, 0, 0), | |
| 'joke': (5, 10, 5, 0, 3), # reduced from old V=+20 | |
| 'drawing': (10, 5, 10, 0, 8), | |
| 'introduced': (10, 10, 10, 0, 8), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R11) | |
| # ── Round 12: relationship dynamics ── | |
| _R12 = { | |
| 'remembers': (15, 5, 10, 0, 10), # attention/care | |
| 'weve': (0, 0, 0, 0, 0), # contraction | |
| 'validate': (20, 5, 10, 0, 10), # affirming someone's experience | |
| 'validates': (20, 5, 10, 0, 10), | |
| 'dismissing': (-25, 10, 15, 5, -8), # invalidation | |
| 'dismisses': (-25, 10, 15, 5, -8), | |
| 'advocates': (20, 10, 15, 5, 10), # fighting for someone | |
| 'closed': (-5, -5, -5, 0, 0), | |
| 'doors': (0, 0, 0, 0, 0), | |
| 'thin': (-5, 5, -5, 0, -3), | |
| 'ice': (-10, 5, -5, 5, -3), # "thin ice" = precarious | |
| 'drains': (-25, -10, -15, 5, -8), # energy vampire | |
| 'drained': (-25, -15, -20, 5, -10), | |
| 'lights': (10, 10, 5, 0, 5), | |
| 'granted': (-15, -5, -10, 0, -5), # "taken for granted" | |
| 'celebrates': (25, 15, 10, 0, 10), | |
| 'allergies': (0, 0, 0, 0, 10), # personal detail = G | |
| 'defended': (15, 10, 15, 5, 10), # stood up for | |
| 'future': (5, 5, 5, 5, 10), # forward-looking (override neutral) | |
| 'convenient': (-5, 0, 5, 0, -3), # "when convenient" = selfish | |
| 'ego': (-10, 5, 15, 0, -3), | |
| 'constantly': (-10, 10, -5, 5, -3), # override | |
| 'amplifies': (-10, 10, 10, 5, -3), # making bigger (negative context usually) | |
| 'minimizes': (-20, 5, 15, 5, -8), # shrinking experience | |
| 'worst': (-40, 10, -25, 10, -12), # override | |
| 'rock': (15, -5, 20, 0, 15), # "my rock" = stability | |
| 'walking': (0, 5, 0, 5, 0), | |
| 'energy': (5, 10, 5, 0, 5), | |
| 'room': (0, 0, 0, 0, 3), # override | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R12) | |
| # ── Round 13 + GPT-recommended vocabulary expansion ── | |
| _R13_GPT = { | |
| # Round 13 gaps | |
| 'shows': (0, 5, 5, 0, 0), | |
| 'affection': (25, 10, 5, 0, 15), | |
| 'twists': (-20, 10, 10, 5, -5), | |
| 'weapons': (-30, 20, 15, 10, -10), | |
| 'withdrawing': (-20, -5, -15, 5, -8), | |
| 'drove': (0, 10, 5, 5, 0), # movement -- neutral | |
| 'town': (0, 0, 0, 0, 0), | |
| 'bring': (5, 5, 5, 0, 3), | |
| 'brings': (5, 5, 5, 0, 3), | |
| 'notes': (5, 0, 5, 0, 5), | |
| 'makes': (0, 5, 5, 0, 0), | |
| 'fundraiser': (15, 10, 10, 5, 10), | |
| 'medical': (-5, 5, -5, 10, 10), | |
| 'sunday': (5, -5, 0, 0, 5), | |
| 'umbrella': (0, 0, 0, 0, 0), | |
| 'wakes': (5, 10, 5, 5, 3), | |
| 'organized': (10, 5, 10, 5, 5), | |
| 'recipe': (10, 5, 5, 0, 8), | |
| 'grandmother': (0, 0, 0, 0, 40), # relationship -- high G | |
| 'greeted': (10, 10, 5, 0, 5), | |
| 'dimmed': (-15, -5, -15, 0, -5), | |
| 'rewrite': (-10, 5, 10, 5, -5), | |
| # GPT bucket 1: passive-aggressive cues | |
| 'nice': (10, 0, 5, 0, 3), # reduced -- "must be nice" = PA | |
| 'cute': (15, 5, 5, 0, 5), # can be condescending | |
| 'please': (5, 0, -5, 5, 3), # plea or politeness | |
| # GPT bucket 2: numb/flat distress | |
| 'checked': (-5, -5, -5, 0, 0), | |
| 'detached': (-20, -15, -15, 0, -8), | |
| 'fried': (-25, -10, -20, 5, -8), | |
| 'wrecked': (-40, 15, -20, 10, -12), # override | |
| 'spent': (-15, -10, -15, 5, -5), # emotionally spent | |
| # GPT bucket 3: modern distress | |
| 'spiraling': (-35, 25, -25, 15, -12), | |
| 'spiral': (-30, 20, -20, 10, -10), | |
| 'crashing': (-30, 25, -20, 15, -10), | |
| 'unraveling': (-30, 15, -20, 10, -10), | |
| 'snapped': (-35, 30, -15, 15, -10), | |
| 'doom': (-40, 10, -25, 10, -15), | |
| 'burnout': (-30, -15, -25, 10, -12), | |
| 'drowning': (-35, 20, -25, 15, -12), | |
| # GPT bucket 4: self-worth/erasure | |
| 'unwanted': (-35, 10, -25, 10, -15), | |
| 'replaceable': (-25, 5, -20, 5, -10), | |
| 'unlovable': (-40, 10, -30, 10, -18), | |
| 'forgettable': (-25, -5, -20, 5, -10), | |
| 'irrelevant': (-25, -5, -20, 5, -10), | |
| 'meaningless': (-35, -5, -25, 5, -15), | |
| # GPT bucket 5: abuse verbs | |
| 'pressured': (-25, 15, -15, 10, -8), | |
| 'cornered': (-30, 20, -25, 15, -10), | |
| 'coerced': (-35, 15, -25, 10, -12), | |
| 'demeaned': (-35, 10, -20, 10, -12), | |
| 'belittled': (-30, 10, -20, 10, -10), | |
| 'gaslit': (-35, 15, -20, 10, -12), | |
| 'gaslighting': (-35, 15, -20, 10, -12), | |
| 'manipulated': (-35, 15, -15, 10, -12), | |
| # GPT bucket 6: internet crisis | |
| 'meh': (-10, -15, -10, 0, -5), | |
| 'unalive': (-50, 15, -30, 30, -20), # platform-evasive crisis language | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R13_GPT) | |
| # ── Final GPT audit gaps ── | |
| _GPT_FINAL = { | |
| 'clearly': (-5, 5, 10, 0, 0), # sarcasm opener already, mild force | |
| 'controlled': (-25, 10, -20, 10, -8), | |
| 'dismissed': (-25, 10, 15, 5, -8), | |
| 'obviously': (-8, 5, 10, 0, -3), # dismissive / condescending | |
| } | |
| EMOTIONAL_VOCABULARY.update(_GPT_FINAL) | |
| # ── Round 14: silent treatment, gossip, performance, empathy drain ── | |
| _R14 = { | |
| 'silent': (-15, -15, -10, 5, -5), # silence as weapon | |
| 'treatment': (-10, 5, -5, 5, -3), # "silent treatment" = punishment | |
| 'gossip': (-25, 15, 10, 5, -8), # talking behind back | |
| 'gossiping': (-25, 15, 10, 5, -8), | |
| 'acts': (-5, 5, 5, 0, 0), # performing/pretending | |
| 'lap': (5, -5, 5, 0, 5), # comfort/warmth | |
| 'pocket': (0, 0, 0, 0, 0), | |
| 'performing': (-10, 10, -5, 5, -3), # masking/performing for others | |
| 'audience': (-5, 5, -5, 5, 0), | |
| 'absorb': (-10, 5, -10, 5, -5), # taking in others emotions | |
| 'absorbs': (-10, 5, -10, 5, -5), | |
| 'everyones': (0, 5, 0, 5, 5), | |
| 'emotions': (0, 10, 0, 5, 15), # high G -- emotional content | |
| 'see': (0, 5, 0, 0, 0), | |
| 'drain': (-25, -10, -15, 5, -8), # override confirm | |
| 'call': (0, 5, 0, 5, 0), | |
| 'promises': (-5, 5, -5, 5, 10), # high G -- broken promises | |
| 'keeps': (0, 0, 5, 0, 0), # confirm | |
| 'asleep': (5, -15, 5, 0, 0), # rest | |
| 'cookies': (10, 5, 5, 0, 5), # comfort food | |
| 'smells': (5, 5, 0, 0, 0), | |
| 'fresh': (10, 5, 5, 0, 3), | |
| 'renewed': (15, 10, 10, 0, 8), | |
| 'elevator': (0, 0, 0, 0, 0), | |
| 'barista': (0, 5, 0, 0, 0), | |
| 'spelled': (0, 0, 0, 0, 0), | |
| 'green': (5, 5, 5, 0, 0), | |
| 'shower': (5, -5, 5, 0, 3), | |
| 'lasted': (5, 0, 5, 0, 3), | |
| 'opinion': (-5, 5, 5, 0, 0), | |
| 'listener': (5, 0, -5, 0, 5), | |
| 'empathy': (10, 5, -5, 0, 15), # high G | |
| 'weapon': (-30, 20, 15, 10, -10), | |
| 'pieces': (-10, 5, -10, 5, -5), # "pieces of myself" | |
| 'weight': (-10, 5, -10, 5, -5), # burden | |
| 'notice': (0, 5, -5, 5, 5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R14) | |
| # ── Round 15: physical reactions + care signals ── | |
| _R15 = { | |
| 'fakes': (-20, 5, -10, 5, -5), # pretending | |
| 'faking': (-20, 5, -10, 5, -5), | |
| 'convincingly': (-5, 5, 10, 0, 0), | |
| 'making': (0, 5, 5, 0, 0), | |
| 'bled': (-30, 20, -20, 15, -10), | |
| 'bleeding': (-30, 20, -20, 15, -10), | |
| 'send': (0, 5, 5, 5, 0), | |
| 'defends': (15, 10, 15, 5, 10), | |
| 'notices': (10, 5, 10, 0, 8), # attention/care | |
| 'before': (0, 0, 0, 0, 0), | |
| 'say': (0, 5, 5, 0, 0), | |
| 'details': (5, 5, 5, 0, 8), # attention to detail = care | |
| 'braided': (10, 5, 5, 0, 8), # intimate care act | |
| 'lump': (-15, 10, -10, 5, -5), # "lump in throat" | |
| 'throat': (-10, 10, -10, 5, -3), | |
| 'stomach': (-10, 10, -10, 10, -3), # "stomach dropped" | |
| 'tongue': (-5, 5, -5, 0, 0), | |
| 'shaking': (-20, 25, -20, 15, -8), | |
| 'dropped': (-20, 15, -15, 10, -5), # override -- "stomach dropped" "heart dropped" | |
| 'bond': (15, 5, 10, 0, 10), # connection | |
| 'accountability':(-5, 5, 10, 5, 5), | |
| 'texts': (0, 5, 0, 5, 5), # override -- neutral communication | |
| 'morning': (5, 5, 5, 5, 3), # override confirm | |
| 'fail': (-25, 10, -20, 10, -8), | |
| 'judgment': (-20, 10, 10, 5, -5), # override confirm | |
| 'space': (0, -5, 0, 0, 0), # override confirm | |
| 'photo': (0, 0, 0, 0, 10), # high G memory | |
| 'photos': (0, 0, 0, 0, 10), | |
| 'movie': (5, 5, 0, 0, 5), | |
| 'comfort': (15, -10, 10, 0, 10), | |
| 'car': (0, 0, 0, 0, 15), # override with G | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R15) | |
| # ── Round 16: competition, mockery, care acts ── | |
| _R16 = { | |
| 'screenshot': (-15, 10, -5, 5, -5), # privacy violation | |
| 'screenshots': (-15, 10, -5, 5, -5), | |
| 'laughs': (-5, 15, 5, 0, 0), # liquid -- laughs at vs laughs with | |
| 'competes': (-15, 10, 10, 5, -5), # competition instead of support | |
| 'competing': (-15, 10, 10, 5, -5), | |
| 'supporting': (20, 5, 10, 0, 10), # active support | |
| 'bookshelf': (5, 5, 5, 0, 5), # built something | |
| 'drives': (0, 5, 5, 5, 0), # movement -- neutral | |
| 'copies': (-10, 5, -5, 5, -3), # copying/stealing identity | |
| 'compliments': (10, 5, 5, 0, 5), # positive attention | |
| 'insult': (-30, 15, 15, 10, -10), | |
| 'insults': (-30, 15, 15, 10, -10), | |
| 'boundaries': (10, 5, 15, 0, 10), # healthy -- high G | |
| 'boundary': (10, 5, 15, 0, 10), | |
| 'dreams': (10, 10, 5, 0, 10), # aspirations -- high G | |
| 'memory': (5, 5, -5, 0, 10), # high G -- identity | |
| 'doubt': (-20, 10, -15, 10, -8), | |
| 'doubts': (-20, 10, -15, 10, -8), | |
| 'poems': (15, 5, 10, 0, 10), # creative expression of care | |
| 'napkins': (0, 0, 0, 0, 0), | |
| 'taught': (15, 5, 15, 0, 10), # passing knowledge | |
| 'fish': (5, 5, 5, 0, 5), | |
| 'soup': (5, 0, 0, 0, 5), # comfort food | |
| 'named': (5, 5, 5, 0, 10), # honor -- high G | |
| 'hour': (0, 0, 0, 5, 0), # time marker | |
| 'scratch': (5, 5, 10, 0, 5), # "from scratch" = effort | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R16) | |
| # ── Round 17: social manipulation + sacrifice acts ── | |
| _R17 = { | |
| 'rehearse': (-10, 10, -10, 5, -3), # anxiety -- preparing for confrontation | |
| 'conversations':(-3, 5, 0, 0, 5), | |
| 'happen': (-5, 5, -3, 5, 0), # "what happened" = unease | |
| 'conveniently': (-10, 0, 10, 0, -3), # sarcastic availability | |
| 'plans': (0, 5, 5, 5, 0), | |
| 'needed': (-5, 5, -5, 5, -3), # "i needed" = unmet need | |
| 'moving': (0, 5, 0, 5, 0), | |
| 'posts': (0, 5, 0, 0, 5), | |
| 'bringing': (-5, 5, 0, 5, 0), # "bringing up" = resurfacing | |
| 'favors': (-5, 5, -5, 5, -3), # weaponized generosity | |
| 'sat': (5, -5, 5, 0, 5), # presence -- staying | |
| 'six': (0, 0, 0, 0, 0), | |
| 'hours': (0, 0, 0, 5, 0), | |
| 'covered': (10, 5, 10, 0, 8), # covered shift = support | |
| 'shift': (0, 5, 0, 5, 0), | |
| 'donated': (15, 10, 15, 0, 10), # giving -- selfless act | |
| 'type': (0, 0, 0, 0, 0), | |
| 'rare': (0, 5, 0, 5, 5), | |
| 'blood': (-5, 10, -5, 10, 10), # medical + sacrifice context | |
| 'crayon': (10, 5, 5, 0, 8), # childlike -- warmth | |
| 'sign': (0, 5, 0, 0, 0), | |
| 'language': (0, 5, 0, 0, 5), | |
| 'waiting': (-8, 5, -8, 10, -3), # override | |
| 'fixed': (10, 5, 10, 0, 5), # repaired | |
| 'leaky': (-5, 5, -5, 5, 0), | |
| 'faucet': (0, 0, 0, 0, 0), | |
| 'volunteers': (-5, 5, -5, 5, -3), # "volunteers my time" = boundary violation | |
| 'passive': (-10, -5, -5, 0, -3), | |
| 'aggressive': (-20, 20, 15, 10, -5), | |
| 'accidentally': (-8, 5, -5, 5, -3), # "accidentally forget" = deliberate | |
| 'invite': (10, 10, 5, 0, 5), # inclusion | |
| 'likes': (5, 5, 0, 0, 3), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R17) | |
| # ── Round 18: sacrifice + score-keeping ── | |
| _R18 = { | |
| 'bullet': (-15, 30, 15, 20, 15), # "took a bullet" = ultimate sacrifice. High G. | |
| 'stood': (5, 10, 15, 5, 5), # stood up / stood between = protection | |
| 'awake': (-5, 10, 5, 10, 0), # staying awake = sacrifice of rest | |
| 'archived': (-10, 5, 5, 5, -3), # preserving evidence / control | |
| 'remind': (-10, 5, 10, 5, -3), # "remind me daily" = score-keeping | |
| 'reminds': (-10, 5, 10, 5, -3), | |
| 'turns': (-5, 5, 5, 5, 0), # override -- "turns into" = transformation | |
| 'competition': (-15, 10, 10, 5, -5), | |
| 'trophies': (-5, 5, 5, 0, 5), # "collect mistakes like trophies" | |
| 'collect': (-5, 5, 5, 0, 0), | |
| 'owe': (-15, 5, -15, 10, -5), # debt/obligation | |
| 'owes': (-15, 5, -15, 10, -5), | |
| 'root': (-5, 5, -5, 5, 0), # "root against" = opposition | |
| 'enjoys': (5, 10, 10, 0, 3), # liquid -- "enjoys watching me struggle" = sadistic | |
| 'celebrated': (15, 15, 10, 0, 8), # override -- celebration | |
| 'celebrates': (15, 15, 10, 0, 8), | |
| 'crowd': (5, 15, 0, 5, 5), | |
| 'chanted': (10, 20, 5, 5, 5), | |
| 'stage': (5, 10, 5, 5, 5), | |
| 'wiped': (5, 5, 5, 0, 5), # care act -- wiping tears | |
| 'danger': (-35, 25, -20, 20, -10), | |
| 'daily': (-3, 5, 0, 5, 0), | |
| 'ex': (-15, 10, -5, 10, 10), # high G -- past relationship | |
| 'smiles': (5, 5, 5, 0, 3), # liquid -- context determines | |
| 'struggle': (-25, 15, -20, 10, -8), | |
| 'sacrificed': (10, 10, 10, 5, 15), # giving up for someone -- high G | |
| 'sacrifice': (5, 10, 10, 5, 15), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R18) | |
| # ── Round 19: social rejection + recognition ── | |
| _R19 = { | |
| 'looked': (0, 5, 5, 0, 0), # neutral -- "looked through me" = structural | |
| 'glass': (-5, 0, -5, 0, 0), # "like glass" = invisible/fragile | |
| 'subject': (-5, 5, 5, 0, 0), # "changed the subject" = avoidance | |
| 'seen': (-10, 5, -5, 5, -3), # "left on seen" = acknowledged rejection | |
| 'week': (0, 0, 0, 5, 0), | |
| 'standing': (10, 10, 10, 0, 5), # "standing ovation" = recognition | |
| 'ovation': (25, 15, 15, 0, 10), # applause/recognition | |
| 'calmed': (15, -10, 10, 0, 8), # brought peace -- care act | |
| 'during': (0, 0, 0, 0, 0), | |
| 'degree': (15, 5, 15, 0, 15), # achievement -- high G | |
| 'spoke': (0, 5, 5, 0, 0), | |
| 'tone': (-5, 5, 5, 0, 0), # "tone changed" = shift | |
| 'closed': (-5, -5, -5, 0, 0), | |
| 'door': (0, 0, 0, 0, 5), | |
| 'unfollowed': (-20, 10, -10, 5, -8), # digital rejection -- override | |
| 'stories': (5, 5, 5, 0, 5), # override confirm | |
| 'window': (0, 0, 0, 0, 0), | |
| 'seat': (5, 0, 5, 0, 3), # "saved me a seat" = inclusion | |
| 'panic': (-40, 35, -30, 25, -12), # override -- stronger | |
| 'attack': (-35, 30, -20, 20, -10), # override -- "panic attack" | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R19) | |
| # ── Round 20: rumor, therapy, art, body modification ── | |
| _R20 = { | |
| 'spread': (-15, 10, 10, 10, -5), # spreading rumors/info | |
| 'rumors': (-30, 15, 10, 10, -10), | |
| 'rumor': (-25, 15, 10, 10, -8), | |
| 'showed': (0, 5, 5, 5, 0), | |
| 'herself': (0, 0, 0, 0, 0), | |
| 'therapy': (5, 5, -5, 5, 20), # high G -- mental health | |
| 'therapist': (10, 5, -5, 0, 20), # caretaker -- high G | |
| 'poem': (15, 5, 10, 0, 10), # creative expression | |
| 'tattooed': (10, 10, 10, 0, 15), # permanent commitment -- high G | |
| 'tattoo': (5, 10, 10, 0, 10), | |
| 'portrait': (10, 5, 10, 0, 10), | |
| 'painted': (10, 5, 10, 0, 8), | |
| 'mariachi': (15, 15, 5, 0, 5), | |
| 'adopted': (10, 10, 10, 0, 20), # override -- chosen family. high G | |
| 'flew': (5, 10, 5, 5, 5), # effort/distance | |
| 'candlelight': (10, -5, 5, 0, 15), # high G -- memorial/honor | |
| 'vigil': (-5, -10, -5, 0, 20), # high G -- remembrance | |
| 'honor': (20, 10, 15, 0, 15), | |
| 'lullaby': (15, -10, 5, 0, 15), # tenderness -- high G | |
| 'deployed': (-15, 15, 15, 15, 20), # military -- sacrifice, high G | |
| 'recovering': (5, 5, -5, 5, 10), # healing process | |
| 'garden': (10, -5, 5, 0, 8), | |
| 'planted': (10, 5, 10, 0, 8), | |
| 'locked': (-20, 10, -20, 10, -8), # "locked out" = excluded/trapped | |
| 'poisoned': (-35, 15, 15, 10, -12), # turning others against | |
| 'recorded': (-5, 5, 5, 5, 5), # context-dep -- recorded without permission vs recorded lullaby | |
| 'permission': (-5, 5, -5, 5, 5), | |
| 'evidence': (-10, 10, 10, 10, 5), | |
| 'deleted': (-15, 10, -10, 5, -5), # override confirm | |
| 'childhood': (0, 0, 0, 0, 20), # high G -- identity period (override V=0) | |
| 'uninvited': (-20, 10, -10, 5, -8), | |
| 'wrist': (0, 5, 0, 0, 5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_R20) | |
| # ── Hitting 3,000 ── | |
| _THREE_K = { | |
| 'proposal': (20, 15, 10, 5, 15), | |
| 'proposed': (20, 15, 10, 5, 15), | |
| 'engagement': (20, 15, 10, 5, 20), | |
| 'anniversary': (10, 5, 5, 0, 20), | |
| 'milestone': (10, 10, 10, 5, 10), | |
| 'progress': (15, 5, 15, 0, 8), | |
| 'achievement': (20, 10, 20, 0, 10), | |
| 'celebrate': (20, 15, 10, 0, 8), | |
| 'blessing': (20, 5, 10, 0, 15), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_THREE_K) | |
| # ── Final push to 3,000 ── | |
| _FINAL_3K = { | |
| 'grateful': (30, 5, 10, 0, 15), | |
| 'thankful': (25, 5, 10, 0, 12), | |
| 'humble': (10, -5, -5, 0, 10), | |
| 'blessed': (25, 5, 5, 0, 15), | |
| 'resilient': (20, 10, 20, 0, 10), | |
| 'strength': (15, 10, 20, 0, 10), | |
| 'courage': (20, 15, 25, 0, 12), | |
| 'warrior': (15, 15, 25, 0, 10), | |
| 'survivor': (15, 10, 20, 0, 15), | |
| 'healing': (15, -5, 10, 0, 15), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_FINAL_3K) | |
| # ── 3,000 ── | |
| _HIT_3K = { | |
| 'kindness': (25, 5, 10, 0, 12), | |
| 'compassion': (25, 5, 5, 0, 15), | |
| 'dignity': (15, 5, 20, 0, 15), | |
| 'integrity': (20, 5, 20, 0, 12), | |
| 'generosity': (20, 5, 10, 0, 10), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_HIT_3K) | |
| # ── MEGA round: 38 words from 72 fresh sentences ── | |
| _MEGA = { | |
| 'publicly': (-10, 10, 10, 5, -3), | |
| 'corrected': (-15, 10, 15, 5, -5), | |
| 'moved': (-5, 5, 0, 5, 0), | |
| 'desk': (0, 0, 0, 0, 5), | |
| 'corner': (-5, -5, -5, 0, -3), | |
| 'sends': (5, 5, 5, 5, 0), | |
| 'responds': (5, 5, 5, 0, 3), | |
| 'within': (0, 0, 0, 0, 0), | |
| 'minutes': (0, 0, 0, 5, 0), | |
| 'while': (0, 0, 0, 0, 0), | |
| 'three': (0, 0, 0, 0, 0), | |
| 'jobs': (0, 5, 0, 5, 10), | |
| 'librarian': (10, -5, 5, 0, 10), | |
| 'noises': (-10, 10, -5, 5, -3), | |
| 'weighing': (-5, 5, -5, 0, -3), | |
| 'froze': (-20, 10, -15, 10, -8), | |
| 'gives': (0, 5, 5, 0, 0), | |
| 'allowance': (-10, 0, -15, 0, -5), | |
| 'single': (-5, 0, 0, 0, 3), | |
| 'defensive': (-15, 15, 15, 5, -5), | |
| 'came': (0, 5, 0, 5, 0), | |
| 'pull': (-5, 10, 5, 5, 0), | |
| 'any': (0, 0, 0, 0, 0), | |
| 'younger': (0, 5, 0, 0, 0), | |
| 'already': (-3, 5, 0, 5, 0), | |
| 'two': (0, 0, 0, 0, 0), | |
| 'sides': (-10, 5, -5, 5, -3), | |
| 'inviting': (10, 10, 5, 0, 5), | |
| 'copied': (-10, 5, -5, 5, -3), | |
| 'entire': (-5, 5, -3, 5, 0), | |
| 'ketchup': (0, 0, 0, 0, 0), | |
| 'apologizing': (-10, 5, -10, 5, -3), | |
| 'sent': (0, 5, 5, 5, 0), | |
| 'email': (0, 5, 0, 5, 5), | |
| 'rereading': (-5, 5, -5, 0, 0), | |
| 'ten': (0, 0, 0, 0, 0), | |
| 'times': (0, 5, 0, 5, 0), | |
| 'bought': (5, 5, 5, 0, 3), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_MEGA) | |
| # ── New domain vocabulary: medical, legal, dating, parenting, customer service ── | |
| _DOMAINS = { | |
| 'chemotherapy': (-35, 15, -25, 20, 30), # serious medical -- very high G | |
| 'wants': (0, 5, 5, 5, 0), | |
| 'urgently': (-10, 15, 5, 25, 5), # high urgency | |
| 'filed': (-15, 10, 10, 15, 5), # legal action | |
| 'custody': (-20, 15, -15, 20, 35), # extremely high G -- children at stake | |
| 'sided': (10, 5, 10, 5, 5), # "sided with me" = support | |
| 'violated': (-35, 20, 15, 20, -10), # broke rules/boundaries | |
| 'restraining': (-20, 15, 15, 15, 10), # legal protection | |
| 'subpoenaed': (-20, 15, 5, 20, 5), | |
| 'records': (-5, 5, 0, 5, 5), | |
| 'charges': (-20, 15, -10, 15, 10), # legal charges -- high G | |
| 'netflix': (5, -5, 0, 0, 0), | |
| 'pickup': (-5, 5, 5, 0, 0), | |
| 'line': (0, 0, 0, 0, 0), | |
| 'sons': (0, 5, 0, 0, 40), # relationship -- high G | |
| 'classmate': (0, 5, 0, 0, 5), | |
| 'resolving': (10, 5, 10, 5, 5), | |
| 'issue': (-10, 5, -5, 10, 5), | |
| 'supervisor': (-5, 10, 15, 10, 5), # authority figure | |
| 'tumor': (-40, 20, -25, 25, 30), | |
| 'mass': (-25, 15, -15, 20, 20), # medical mass | |
| 'specialist': (-5, 5, 5, 10, 10), | |
| 'cleared': (15, -5, 15, 0, 8), # "cleared to go" = relief | |
| 'visitation': (-15, 10, -15, 10, 25), # custody -- high G | |
| 'settlement': (5, -5, 5, 5, 10), | |
| 'unmatched': (-15, 10, -10, 5, -5), # dating rejection | |
| 'ghosted': (-30, 10, -20, 10, -10), # override confirm | |
| 'midnight': (-5, -5, -5, 5, 0), | |
| 'suspended': (-25, 15, -20, 10, -10), # override confirm | |
| 'nightmares': (-30, 20, -20, 15, -10), | |
| 'refund': (-10, 10, -5, 10, 5), | |
| 'kitchen': (5, 0, 5, 0, 5), # override confirm | |
| 'report': (-10, 5, 5, 10, 5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_DOMAINS) | |
| # ── Domains 2: sports, military, immigration, aging, addiction ── | |
| _DOMAINS_2 = { | |
| 'coach': (5, 10, 15, 5, 10), | |
| 'benched': (-20, 10, -20, 10, -8), # excluded from participation | |
| 'game': (5, 15, 5, 5, 5), | |
| 'waited': (10, -5, 5, 5, 10), # patience/loyalty -- high G | |
| 'deployment': (-10, 10, 10, 15, 20), # military -- high G | |
| 'where': (0, 0, 0, 0, 0), | |
| 'accent': (-5, 5, -5, 0, 5), | |
| 'differently': (-10, 5, -5, 5, -3), # "treated differently" = othered | |
| 'put': (-5, 5, 0, 5, 0), | |
| 'poured': (5, 5, 10, 5, 5), # action -- "poured it out" = agency | |
| 'bottle': (-10, 5, -5, 5, 10), # addiction context -- high G | |
| 'sink': (0, 0, 0, 0, 0), | |
| 'relapsed': (-35, 15, -25, 15, 20), # addiction setback -- high G | |
| 'relapse': (-30, 15, -20, 15, 20), | |
| 'months': (0, 0, 0, 5, 0), | |
| 'clean': (20, -5, 15, 0, 15), # sobriety -- override, high G | |
| 'sponsor': (10, 5, 5, 0, 15), # support person -- high G | |
| 'citizenship': (15, 10, 15, 5, 20), # achievement -- high G | |
| 'papers': (0, 5, 0, 5, 10), # documents -- G from importance | |
| 'retirement': (5, -5, 0, 0, 15), # milestone -- high G | |
| 'booed': (-25, 20, -15, 10, -8), | |
| 'scored': (20, 20, 15, 5, 8), | |
| 'winning': (25, 20, 20, 5, 10), | |
| 'championship': (15, 20, 15, 10, 15), | |
| 'teammates': (5, 10, 5, 0, 10), | |
| 'battle': (-20, 25, 15, 15, 10), | |
| 'buddy': (10, 5, 10, 0, 10), | |
| 'overseas': (-5, 5, 5, 5, 5), | |
| 'welcomed': (20, 10, 10, 0, 10), | |
| 'hid': (-15, 10, -15, 5, -5), | |
| 'bottles': (-10, 5, -5, 5, 8), | |
| 'drugs': (-30, 15, -20, 15, 15), | |
| 'picked': (-5, 5, -5, 5, 0), # "picked last" = excluded | |
| } | |
| EMOTIONAL_VOCABULARY.update(_DOMAINS_2) | |
| # ── Domains 3: religion, academic, housing, food, pet loss ── | |
| _DOMAINS_3 = { | |
| 'eviction': (-35, 20, -30, 25, 30), # losing home -- extremely high G | |
| 'evicted': (-35, 20, -30, 25, 30), | |
| 'unadoptable': (-20, 5, -15, 5, 15), # rejected/unwanted | |
| 'landlord': (-10, 10, 15, 10, 10), | |
| 'rent': (-10, 5, -5, 10, 10), | |
| 'pantry': (-5, 0, 0, 5, 5), | |
| 'coins': (-10, 5, -10, 5, -3), # poverty signal | |
| 'bread': (3, 0, 0, 5, 5), # basic need | |
| 'vet': (-5, 5, -5, 10, 15), # veterinarian -- high G (pet's life) | |
| 'shelter': (-5, 5, -5, 5, 10), | |
| 'rescue': (10, 10, 10, 5, 10), | |
| 'congregation': (0, 5, 0, 0, 10), | |
| 'excommunicated':(-30, 15, -20, 10, 20), # expelled from community -- high G | |
| 'thesis': (0, 10, 5, 10, 10), | |
| 'advisor': (0, 5, 10, 5, 10), | |
| 'dissertation': (5, 10, 10, 10, 15), | |
| 'defended': (15, 10, 15, 5, 10), # override confirm | |
| 'published': (20, 10, 15, 5, 12), # override confirm | |
| 'journal': (5, 5, 5, 0, 8), | |
| 'professor': (0, 5, 10, 5, 10), | |
| 'lecture': (0, 5, 5, 5, 5), | |
| 'rental': (0, 5, 0, 5, 8), | |
| 'application': (0, 5, 0, 10, 8), | |
| 'thanksgiving': (10, 5, 5, 0, 15), # override confirm | |
| 'anonymously': (10, 5, -5, 0, 5), # anonymous kindness | |
| } | |
| EMOTIONAL_VOCABULARY.update(_DOMAINS_3) | |
| # ── Domain mining round 4: workplace, disability, recovery, DV, grief, | |
| # gen-z slang, therapy, immigration (124 words) ────────────────────── | |
| _DOMAINS_4 = { | |
| # Workplace harassment | |
| 'hostile': (-55, 60, 40, 35, -20), | |
| 'intimidate': (-70, 75, 80, 50, -30), | |
| 'retaliation': (-65, 70, 60, 55, -35), | |
| 'demeaning': (-60, 40, 30, 25, -25), | |
| 'condescending': (-40, 30, 50, 10, -15), | |
| 'overworked': (-45, 35, -40, 30, -20), | |
| 'underpaid': (-40, 25, -35, 20, -18), | |
| 'ostracized': (-65, 20, -50, 15, -30), | |
| 'mobbing': (-70, 55, -45, 40, -35), | |
| 'scapegoat': (-60, 40, -55, 30, -30), | |
| 'exploited': (-65, 35, -50, 30, -25), | |
| 'silenced': (-50, 15, -60, 20, -25), | |
| 'empowered': (45, 25, 55, 5, 15), | |
| 'degraded': (-70, 45, -50, 25, -30), | |
| 'manipulate': (-50, 35, 55, 25, -20), | |
| 'narcissistic': (-45, 35, 60, 15, -15), | |
| # Disability / accessibility | |
| 'inaccessible': (-35, 20, -30, 20, -15), | |
| 'meltdown': (-55, 90, -50, 60, -30), | |
| 'overstimulated': (-40, 70, -35, 40, -20), | |
| 'masking': (-30, 25, -20, 15, -15), | |
| 'chronic': (-20, 10, -15, 5, 30), | |
| 'fatigue': (-30, -20, -25, 10, -15), | |
| 'dissociation': (-30, -25, -30, 15, -20), | |
| 'dysregulated': (-40, 60, -40, 35, -20), | |
| 'numbness': (-20, -30, -20, 5, -10), | |
| 'stigma': (-40, 20, -30, 10, 25), | |
| 'hypervigilant': (-35, 80, -25, 50, -20), | |
| 'vulnerable': (-25, 20, -40, 15, 20), | |
| # 12-step / recovery | |
| 'powerless': (-50, 15, -80, 20, -35), | |
| 'surrender': (-15, -10, -60, 5, 25), | |
| 'serenity': (40, -30, 25, -5, 20), | |
| 'amends': (20, 25, -5, 15, 25), | |
| 'enabling': (-25, 15, -20, 15, -15), | |
| 'temptation': (-25, 45, -30, 40, -20), | |
| 'tempted': (-20, 40, -25, 35, -15), | |
| 'craving': (-30, 55, -35, 50, -20), | |
| 'detox': (-35, 50, -40, 60, 25), | |
| 'withdrawal': (-50, 60, -45, 55, -30), | |
| 'abstinence': (10, -10, 15, 5, 20), | |
| 'cope': (5, 10, -10, 10, 10), | |
| 'coping': (5, 10, -10, 10, 10), | |
| 'denial': (-20, -5, -15, 10, -15), | |
| 'forgiven': (45, 15, 30, 0, 20), | |
| # Domestic violence shelter | |
| 'coerce': (-60, 50, 70, 45, -25), | |
| 'coercion': (-55, 45, 65, 40, -25), | |
| 'stalk': (-65, 60, 50, 55, -30), | |
| 'stalker': (-60, 55, 55, 50, -25), | |
| 'stalking': (-65, 60, 50, 55, -30), | |
| 'lovebombing': (-30, 40, 45, 20, -20), | |
| 'battered': (-75, 45, -60, 40, -40), | |
| 'devalue': (-55, 30, 40, 20, -25), | |
| 'hoovering': (-35, 35, 45, 25, -20), | |
| 'protective': (25, 20, 30, 15, 15), | |
| 'retraumatize': (-60, 65, -40, 50, -35), | |
| 'retraumatized': (-60, 65, -40, 50, -35), | |
| 'fawn': (-20, 25, -55, 20, -15), | |
| 'freeze': (-25, 10, -45, 15, -15), | |
| 'dehumanize': (-80, 50, 50, 40, -40), | |
| # Grief stages clinical | |
| 'yearning': (-45, 30, -35, 25, -30), | |
| 'longing': (-40, 25, -30, 20, -25), | |
| 'bargaining': (-30, 35, -25, 30, -20), | |
| 'bereaved': (-55, 20, -40, 15, 35), | |
| 'widow': (-40, 10, -25, 10, 35), | |
| 'eulogy': (-25, 15, -10, 5, 30), | |
| 'memorial': (-15, 10, -5, 5, 30), | |
| 'anticipatory': (-30, 35, -20, 25, -20), | |
| 'disenfranchised': (-50, 30, -45, 20, -30), | |
| 'keening': (-65, 75, -40, 35, -40), | |
| 'sobbing': (-55, 65, -35, 30, -30), | |
| 'wailing': (-60, 70, -35, 35, -35), | |
| # Gen-Z / Gen-alpha slang | |
| 'delulu': (-15, 25, -20, 5, -10), | |
| 'brainrot': (-25, 15, -20, 5, -15), | |
| 'situationship': (-20, 25, -15, 10, -10), | |
| 'unhinged': (-10, 60, 20, 10, -10), | |
| 'feral': (-10, 55, 25, 10, -10), | |
| 'demure': (15, -15, -5, 0, 5), | |
| 'brat': (10, 40, 20, 5, -5), | |
| 'aura': (20, 15, 20, 0, 10), | |
| 'glazing': (-20, 15, -25, 5, -10), | |
| 'ghosting': (-40, 25, -30, 15, -18), | |
| 'doomscrolling': (-25, 20, -20, 10, -12), | |
| 'rotting': (-30, -15, -25, 5, -15), | |
| 'cooked': (-35, 30, -30, 20, -15), | |
| 'slaying': (40, 35, 40, 5, 15), | |
| # Therapy modalities | |
| 'grounding': (15, -15, 15, 0, 10), | |
| 'grounded': (20, -20, 20, -5, 12), | |
| 'somatic': (0, 10, 0, 5, 10), | |
| 'ruminate': (-35, 30, -25, 20, -20), | |
| 'rumination': (-35, 30, -25, 20, -20), | |
| 'catastrophize': (-50, 65, -35, 45, -25), | |
| 'reframe': (20, 10, 20, 5, 10), | |
| 'validated': (35, 10, 25, 0, 15), | |
| 'validation': (30, 10, 20, 0, 15), | |
| 'invalidated': (-50, 35, -45, 25, -25), | |
| 'invalidate': (-45, 30, -40, 20, -20), | |
| 'mindful': (15, -10, 15, -5, 10), | |
| 'mindfulness': (15, -10, 15, -5, 10), | |
| 'regulate': (10, -5, 15, 0, 8), | |
| 'coregulate': (20, -10, 10, 0, 12), | |
| # Immigration / displacement | |
| 'deported': (-65, 50, -60, 60, -35), | |
| 'deportation': (-60, 45, -55, 55, 35), | |
| 'asylum': (-10, 20, -25, 30, 30), | |
| 'refugee': (-30, 20, -35, 20, 40), | |
| 'undocumented': (-25, 20, -35, 25, 25), | |
| 'displaced': (-45, 25, -40, 25, 30), | |
| 'displacement': (-40, 20, -35, 20, 30), | |
| 'stateless': (-50, 20, -55, 25, 35), | |
| 'diaspora': (-20, 10, -15, 5, 30), | |
| 'uprooted': (-50, 30, -40, 25, -25), | |
| 'xenophobia': (-55, 45, 30, 25, -25), | |
| 'othered': (-45, 25, -35, 15, -20), | |
| 'homeland': (20, 15, 5, 5, 30), | |
| 'sanctuary': (25, -10, 15, 0, 25), | |
| 'detained': (-55, 40, -65, 50, -30), | |
| 'detention': (-50, 35, -60, 45, 30), | |
| 'exile': (-45, 20, -45, 15, 30), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_DOMAINS_4) | |
| # ── Domain mining round 5: legal, eating disorders, neurodiversity, | |
| # fertility, caregiving, military, disaster, financial crisis (248 words) ── | |
| _DOMAINS_5 = { | |
| # Legal / criminal justice | |
| 'arraignment': (-30, 45, -60, 50, 40), | |
| 'arraigned': (-35, 50, -65, 55, 42), | |
| 'acquitted': (60, -20, 50, -30, 35), | |
| 'acquittal': (55, -25, 45, -35, 35), | |
| 'wrongful': (-60, 50, -70, 55, 50), | |
| 'wrongfully': (-60, 50, -70, 55, 50), | |
| 'incarcerated': (-80, 30, -127, 40, 55), | |
| 'incarceration': (-75, 25, -120, 35, 55), | |
| 'parole': (25, 30, -30, 35, 30), | |
| 'paroled': (30, 25, -25, 30, 28), | |
| 'vindicated': (70, 30, 60, -20, 40), | |
| 'vindication': (65, 25, 55, -25, 40), | |
| 'convicted': (-85, 40, -110, 50, 60), | |
| 'conviction': (-80, 35, -105, 45, 58), | |
| 'sentenced': (-75, 50, -120, 60, 65), | |
| 'sentencing': (-70, 55, -115, 65, 63), | |
| 'indicted': (-55, 60, -70, 65, 50), | |
| 'indictment': (-50, 55, -65, 60, 48), | |
| 'exonerated': (80, 35, 70, -20, 50), | |
| 'exoneration': (75, 30, 65, -25, 50), | |
| 'plea': (-30, 35, -50, 50, 35), | |
| 'verdict': (0, 60, 0, 70, 55), | |
| 'trial': (-10, 50, -20, 55, 50), | |
| 'probation': (-15, 20, -40, 25, 25), | |
| 'felony': (-60, 40, -80, 50, 55), | |
| 'misdemeanor': (-25, 20, -35, 25, 20), | |
| 'bail': (-20, 40, -30, 55, 30), | |
| 'prosecuted': (-50, 45, -60, 55, 45), | |
| 'defendant': (-30, 40, -55, 50, 35), | |
| 'plaintiff': (10, 35, 30, 45, 30), | |
| 'lawsuit': (-20, 45, -10, 55, 40), | |
| 'restitution': (20, 15, 20, 20, 35), | |
| 'appealed': (10, 30, 15, 45, 35), | |
| 'overturned': (50, 40, 45, 30, 45), | |
| 'warrant': (-35, 50, -60, 65, 40), | |
| 'subpoena': (-20, 45, -50, 55, 35), | |
| 'testimony': (0, 40, 20, 45, 40), | |
| 'testify': (5, 45, 25, 50, 40), | |
| 'manslaughter': (-90, 60, -50, 55, 70), | |
| 'homicide': (-95, 65, -40, 55, 75), | |
| 'assault': (-70, 80, -30, 65, 50), | |
| 'fraud': (-55, 40, -50, 45, 40), | |
| 'perjury': (-50, 35, -40, 40, 45), | |
| 'contempt': (-45, 50, 30, 40, 35), | |
| 'solitary': (-90, 20, -127, 30, 60), | |
| 'confinement': (-70, 15, -110, 25, 50), | |
| 'shackled': (-80, 30, -127, 35, 55), | |
| 'handcuffed': (-60, 45, -110, 50, 40), | |
| 'fugitive': (-40, 80, -50, 90, 45), | |
| # Eating disorders | |
| 'purge': (-60, 70, -40, 60, 35), | |
| 'bingeing': (-50, 55, -50, 50, 30), | |
| 'restrict': (-35, 30, 40, 35, 25), | |
| 'restricting': (-40, 35, 45, 40, 28), | |
| 'anorexia': (-75, 40, -30, 45, 55), | |
| 'anorexic': (-70, 35, -35, 40, 45), | |
| 'bulimic': (-65, 50, -40, 45, 45), | |
| 'bulimia': (-70, 45, -35, 45, 50), | |
| 'dysmorphia': (-65, 50, -50, 45, 45), | |
| 'dysmorphic': (-60, 45, -45, 40, 40), | |
| 'emaciated': (-80, 30, -60, 35, 55), | |
| 'malnourished': (-65, 25, -50, 40, 50), | |
| 'calorie': (-15, 25, 10, 20, 10), | |
| 'fasting': (-25, 20, 30, 25, 15), | |
| 'starvation': (-90, 40, -70, 60, 60), | |
| 'bloated': (-30, 25, -20, 20, 10), | |
| 'laxative': (-45, 35, -30, 40, 25), | |
| 'compulsive': (-40, 55, -50, 50, 30), | |
| 'distorted': (-40, 30, -30, 25, 20), | |
| 'skinny': (-10, 15, -10, 10, 10), | |
| 'obese': (-35, 20, -25, 15, 25), | |
| 'overweight': (-20, 15, -15, 10, 15), | |
| 'underweight': (-25, 20, -20, 20, 20), | |
| 'disordered': (-45, 35, -40, 35, 30), | |
| 'compensate': (-20, 30, 15, 30, 15), | |
| 'compensating': (-25, 35, 10, 35, 18), | |
| # Neurodiversity | |
| 'stimming': (15, 30, 20, 10, 10), | |
| 'shutdown': (-60, -30, -70, 40, 35), | |
| 'hyperfocus': (20, 50, 30, 15, 15), | |
| 'hyperfocusing': (15, 55, 25, 20, 15), | |
| 'neurotypical': (0, 5, 10, 0, 5), | |
| 'autistic': (-5, 15, -15, 10, 20), | |
| 'unmasking': (30, 40, 35, 25, 25), | |
| 'dysregulation': (-45, 55, -50, 45, 30), | |
| 'accommodations': (20, 10, 20, 15, 15), | |
| 'accommodation': (20, 10, 20, 15, 15), | |
| 'echolalia': (0, 15, -10, 5, 10), | |
| 'perseveration': (-15, 30, -20, 20, 15), | |
| 'perseverating': (-20, 35, -25, 25, 15), | |
| 'alexithymia': (-30, 15, -30, 20, 25), | |
| 'impulsive': (-20, 60, -30, 45, 15), | |
| 'impulsivity': (-25, 55, -35, 40, 18), | |
| 'hyperactive': (0, 70, -15, 30, 10), | |
| 'fidgeting': (0, 30, -10, 10, 5), | |
| 'compulsion': (-35, 50, -45, 50, 25), | |
| 'obsession': (-30, 55, -40, 50, 25), | |
| 'obsessive': (-35, 50, -45, 45, 25), | |
| 'ritualistic': (-15, 25, 15, 20, 15), | |
| 'routine': (10, -10, 20, -5, 5), | |
| 'disrupted': (-30, 45, -30, 40, 20), | |
| 'overwhelm': (-50, 60, -50, 50, 25), | |
| 'disclosure': (-10, 35, -20, 30, 25), | |
| 'inattentive': (-15, -10, -20, 15, 10), | |
| # Fertility / pregnancy loss | |
| 'miscarried': (-90, 50, -70, 30, 65), | |
| 'stillborn': (-120, 40, -80, 20, 80), | |
| 'stillbirth': (-115, 35, -75, 20, 80), | |
| 'infertility': (-65, 30, -55, 40, 50), | |
| 'infertile': (-60, 25, -60, 35, 45), | |
| 'conceive': (15, 20, 10, 25, 20), | |
| 'postpartum': (-40, 35, -30, 30, 35), | |
| 'ectopic': (-75, 55, -50, 70, 55), | |
| 'hemorrhage': (-70, 80, -60, 90, 55), | |
| 'hemorrhaging': (-75, 85, -65, 95, 55), | |
| 'premature': (-45, 50, -40, 60, 40), | |
| 'viable': (25, 15, 15, 20, 20), | |
| 'nonviable': (-80, 30, -60, 25, 55), | |
| 'nicu': (-55, 50, -50, 65, 50), | |
| 'heartbeat': (40, 35, 15, 20, 30), | |
| 'womb': (10, 5, 10, 5, 20), | |
| 'maternal': (20, 10, 15, 10, 20), | |
| 'paternal': (10, 5, 15, 5, 15), | |
| 'childbirth': (10, 50, 15, 40, 45), | |
| 'labor': (-15, 60, -10, 50, 35), | |
| 'endometriosis': (-50, 35, -40, 35, 40), | |
| 'bonding': (45, 20, 20, 10, 20), | |
| 'expecting': (35, 25, 15, 20, 20), | |
| 'embryo': (5, 15, 5, 20, 25), | |
| 'fertile': (20, 10, 15, 10, 15), | |
| 'reproductive': (0, 10, 0, 10, 15), | |
| 'surrogate': (10, 15, -10, 20, 25), | |
| 'donor': (20, 10, 10, 10, 15), | |
| 'implanted': (15, 25, 10, 30, 20), | |
| # Caregiving / elder care | |
| 'caregiver': (-15, 25, 20, 30, 30), | |
| 'caregiving': (-20, 30, 15, 35, 30), | |
| 'alzheimers': (-110, 60, -70, 50, 70), | |
| 'declining': (-55, 25, -40, 35, 35), | |
| 'sundowning': (-50, 55, -45, 50, 35), | |
| 'palliative': (-30, -15, -20, 20, 50), | |
| 'prognosis': (-20, 35, -15, 40, 40), | |
| 'degenerative': (-70, 25, -55, 35, 50), | |
| 'lucid': (35, 20, 25, 15, 15), | |
| 'lucidity': (30, 15, 20, 10, 15), | |
| 'confused': (-30, 30, -40, 25, 15), | |
| 'disoriented': (-35, 35, -45, 30, 18), | |
| 'bedridden': (-55, -15, -80, 20, 40), | |
| 'wheelchair': (-15, 5, -35, 10, 20), | |
| 'immobile': (-40, -10, -70, 15, 30), | |
| 'respite': (30, -20, 20, -15, 15), | |
| 'agitated': (-35, 70, -25, 50, 20), | |
| 'combative': (-40, 80, 20, 55, 25), | |
| 'unresponsive': (-60, 25, -80, 40, 50), | |
| 'comatose': (-70, -20, -90, 25, 60), | |
| 'coma': (-65, -15, -85, 30, 60), | |
| 'ventilator': (-50, 25, -80, 45, 55), | |
| 'deteriorating': (-60, 40, -50, 50, 40), | |
| 'rallying': (30, 25, 20, 20, 30), | |
| 'resentment': (-40, 40, -15, 30, 25), | |
| 'resentful': (-45, 45, -10, 35, 25), | |
| 'obligation': (-20, 20, -25, 25, 25), | |
| 'obligated': (-25, 25, -30, 30, 25), | |
| 'thankless': (-40, 25, -20, 20, 20), | |
| 'unappreciated': (-45, 30, -25, 25, 20), | |
| 'frail': (-40, 5, -55, 15, 30), | |
| 'fragile': (-35, 10, -50, 15, 25), | |
| 'dependent': (-25, 15, -60, 20, 25), | |
| 'dependence': (-30, 15, -55, 20, 25), | |
| 'stable': (20, -15, 15, -10, 15), | |
| 'critical': (-55, 55, -40, 70, 55), | |
| 'passing': (-50, 10, -40, 10, 50), | |
| 'duty': (-5, 15, 20, 20, 25), | |
| 'sacrificing': (-25, 25, 15, 25, 30), | |
| # Military / veteran | |
| 'veteran': (10, 15, 25, 10, 30), | |
| 'combat': (-40, 80, 20, 60, 45), | |
| 'enlisted': (5, 30, -20, 25, 25), | |
| 'discharge': (15, 20, -10, 20, 25), | |
| 'discharged': (10, 15, -5, 15, 25), | |
| 'honorable': (40, 10, 40, 5, 35), | |
| 'dishonorable': (-70, 35, -80, 30, 45), | |
| 'reintegration': (10, 35, -15, 30, 25), | |
| 'hypervigilance': (-30, 70, 15, 50, 20), | |
| 'concussion': (-40, 35, -30, 45, 30), | |
| 'ambush': (-50, 90, -40, 80, 40), | |
| 'ambushed': (-55, 85, -45, 75, 40), | |
| 'firefight': (-35, 95, 10, 80, 40), | |
| 'casualty': (-80, 40, -50, 35, 60), | |
| 'casualties': (-85, 45, -50, 40, 65), | |
| 'wounded': (-60, 50, -40, 50, 45), | |
| 'medevac': (-40, 70, -30, 85, 45), | |
| 'triage': (-30, 55, 20, 75, 40), | |
| 'valor': (50, 40, 55, 20, 40), | |
| 'bravery': (45, 40, 50, 20, 35), | |
| 'heroism': (50, 45, 55, 20, 40), | |
| 'heroic': (45, 50, 50, 25, 35), | |
| 'fallen': (-80, 20, -30, 10, 65), | |
| 'homecoming': (60, 40, 30, 15, 30), | |
| 'readjustment': (-15, 30, -20, 30, 20), | |
| 'civilian': (10, -5, 10, -5, 5), | |
| 'demoted': (-45, 40, -60, 35, 25), | |
| 'stationed': (0, 10, -15, 10, 10), | |
| 'sniper': (-30, 50, 30, 40, 35), | |
| 'patrol': (-10, 35, 15, 30, 20), | |
| 'convoy': (-10, 30, 10, 25, 20), | |
| 'classified': (-5, 15, 30, 15, 25), | |
| 'debriefed': (10, 20, 10, 15, 15), | |
| 'ptsd': (-70, 70, -50, 50, 50), | |
| 'insurgent': (-30, 50, -10, 45, 30), | |
| 'medal': (40, 25, 35, 10, 30), | |
| 'coffin': (-70, 20, -40, 10, 65), | |
| 'remains': (-55, 15, -30, 15, 55), | |
| # Natural disaster / climate | |
| 'evacuated': (-35, 60, -40, 75, 35), | |
| 'evacuation': (-30, 55, -35, 70, 35), | |
| 'wildfire': (-50, 65, -30, 70, 45), | |
| 'devastation': (-100, 50, -80, 40, 65), | |
| 'catastrophe': (-90, 60, -70, 60, 65), | |
| 'catastrophic': (-95, 65, -75, 65, 65), | |
| 'rubble': (-60, 20, -50, 15, 40), | |
| 'debris': (-35, 15, -25, 15, 20), | |
| 'wreckage': (-55, 20, -45, 15, 35), | |
| 'demolished': (-65, 40, -55, 30, 40), | |
| 'leveled': (-70, 35, -60, 25, 40), | |
| 'obliterated': (-90, 50, -70, 30, 55), | |
| 'flooded': (-50, 45, -40, 55, 35), | |
| 'flooding': (-45, 50, -35, 60, 35), | |
| 'submerged': (-50, 30, -45, 40, 30), | |
| 'inundated': (-40, 35, -35, 40, 25), | |
| 'earthquake': (-60, 70, -50, 65, 50), | |
| 'tsunami': (-80, 75, -60, 70, 60), | |
| 'landslide': (-55, 55, -45, 55, 40), | |
| 'avalanche': (-60, 65, -50, 60, 45), | |
| 'drought': (-40, 15, -30, 30, 35), | |
| 'famine': (-85, 30, -60, 50, 60), | |
| 'contaminated': (-40, 30, -25, 40, 30), | |
| 'uninhabitable': (-65, 25, -50, 30, 40), | |
| 'rebuild': (25, 30, 30, 25, 25), | |
| 'rebuilding': (20, 35, 25, 30, 25), | |
| 'aftermath': (-35, 20, -20, 20, 30), | |
| 'resilience': (40, 25, 40, 15, 25), | |
| 'survivors': (-15, 30, 20, 20, 30), | |
| 'pollution': (-30, 15, -15, 20, 25), | |
| 'hazardous': (-35, 35, -20, 45, 30), | |
| 'donation': (30, 10, 15, 10, 10), | |
| 'donations': (25, 10, 10, 10, 10), | |
| # Financial crisis personal | |
| 'foreclosure': (-70, 50, -60, 55, 50), | |
| 'foreclosed': (-75, 45, -65, 50, 50), | |
| 'bankruptcy': (-65, 40, -55, 45, 50), | |
| 'bankrupt': (-70, 45, -60, 50, 48), | |
| 'collections': (-40, 45, -35, 50, 25), | |
| 'garnishment': (-50, 40, -55, 45, 30), | |
| 'indebted': (-35, 25, -40, 30, 25), | |
| 'delinquent': (-35, 30, -30, 40, 20), | |
| 'defaulted': (-55, 35, -50, 40, 35), | |
| 'repossessed': (-65, 45, -60, 45, 40), | |
| 'evicting': (-50, 50, -55, 55, 35), | |
| 'homelessness': (-60, 25, -50, 25, 45), | |
| 'unhoused': (-55, 20, -45, 20, 40), | |
| 'unemployed': (-45, 25, -40, 30, 30), | |
| 'downsized': (-40, 30, -35, 35, 25), | |
| 'terminated': (-50, 40, -45, 40, 30), | |
| 'severance': (10, 15, -10, 20, 15), | |
| 'harassing': (-40, 55, -30, 50, 25), | |
| 'overdraft': (-30, 35, -25, 40, 15), | |
| 'overdrawn': (-35, 30, -30, 35, 15), | |
| 'bounced': (-30, 35, -25, 35, 15), | |
| 'tanked': (-55, 40, -40, 35, 25), | |
| 'plummeted': (-55, 50, -45, 40, 30), | |
| 'liquidated': (-35, 20, -30, 25, 20), | |
| 'pawned': (-40, 25, -35, 35, 15), | |
| 'desperation': (-65, 70, -60, 70, 35), | |
| 'predatory': (-50, 40, 40, 40, 30), | |
| 'welfare': (-20, 10, -30, 15, 15), | |
| 'assistance': (15, 10, -10, 15, 10), | |
| 'utilities': (-10, 15, -5, 20, 10), | |
| 'shutoff': (-45, 40, -40, 50, 25), | |
| 'sued': (-45, 55, -50, 55, 40), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_DOMAINS_5) | |
| # ── Domain mining round 6: bullying, cyberbullying, body image, chronic pain, | |
| # LGBTQ+, foster care, incarceration aftermath, layoffs (208 words) ──────── | |
| _DOMAINS_6 = { | |
| # Childhood / school bullying | |
| 'outcasted': (-40, 15, -30, 10, -20), | |
| 'wedgie': (-25, 35, -30, 15, -10), | |
| 'snitched': (-20, 25, -15, 15, -10), | |
| 'tattled': (-15, 20, -10, 10, -8), | |
| 'clique': (-10, 10, 15, 5, 15), | |
| 'cliquey': (-20, 15, 15, 5, -10), | |
| 'loner': (-25, -10, -20, 5, -15), | |
| 'outcast': (-40, 10, -30, 10, -20), | |
| 'unpopular': (-25, 10, -20, 5, -12), | |
| 'popularity': (10, 15, 20, 5, 15), | |
| 'snitch': (-20, 25, -15, 15, -10), | |
| 'narc': (-20, 25, -10, 15, -10), | |
| 'nerd': (-10, 5, -10, 0, -5), | |
| 'geek': (-8, 5, -8, 0, -5), | |
| 'dork': (-12, 10, -10, 0, -8), | |
| 'weirdo': (-20, 10, -15, 5, -10), | |
| 'crybaby': (-25, 20, -20, 10, -12), | |
| 'wimp': (-25, 15, -25, 10, -12), | |
| 'pushover': (-20, 10, -30, 5, -10), | |
| 'doormat': (-30, 10, -40, 5, -15), | |
| 'snubbed': (-30, 15, -20, 10, -15), | |
| 'unchosen': (-35, 10, -25, 10, -18), | |
| 'sidelined': (-25, 10, -25, 10, -12), | |
| 'scapegoated': (-45, 30, -35, 20, -25), | |
| 'ganged': (-40, 40, -40, 25, -20), | |
| 'intimidated': (-35, 35, -40, 20, -15), | |
| # Online / cyberbullying | |
| 'doxxed': (-60, 50, -50, 40, -30), | |
| 'swatted': (-70, 70, -60, 50, -35), | |
| 'trolled': (-25, 25, -15, 10, -10), | |
| 'brigaded': (-40, 40, -35, 25, -20), | |
| 'cyberbullied': (-55, 35, -40, 25, -25), | |
| 'impersonated': (-45, 35, -30, 25, -20), | |
| 'viral': (0, 50, -10, 30, 15), | |
| 'stalked': (-60, 45, -50, 35, -30), | |
| 'muted': (-20, -5, -15, 5, -10), | |
| 'deplatformed': (-35, 30, -40, 25, -15), | |
| 'shadowbanned': (-30, 20, -35, 15, -15), | |
| 'dogpiled': (-45, 45, -40, 30, -25), | |
| 'ratioed': (-25, 20, -20, 10, -10), | |
| 'flamed': (-30, 35, -20, 15, -15), | |
| 'spammed': (-15, 20, -10, 10, -5), | |
| 'hacked': (-45, 40, -40, 30, -20), | |
| 'phished': (-40, 30, -35, 25, -18), | |
| 'deepfaked': (-50, 40, -40, 30, -25), | |
| 'outed': (-45, 40, -50, 30, -25), | |
| # Body image beyond ED | |
| 'cellulite': (-10, 10, -10, 5, 10), | |
| 'acne': (-15, 15, -10, 10, 10), | |
| 'scarring': (-20, 10, -15, 5, 15), | |
| 'birthmark': (-5, 5, -5, 0, 10), | |
| 'blemish': (-10, 10, -8, 5, 8), | |
| 'wrinkles': (-10, 5, -8, 5, 10), | |
| 'sagging': (-15, 10, -10, 5, 10), | |
| 'flabby': (-20, 15, -15, 10, -10), | |
| 'chubby': (-12, 10, -8, 5, -5), | |
| 'lanky': (-8, 5, -5, 0, -3), | |
| 'stocky': (-3, 5, 5, 0, 5), | |
| 'curvy': (5, 10, 5, 0, 5), | |
| 'petite': (0, 5, -5, 0, 5), | |
| 'disfigured': (-50, 25, -35, 15, 30), | |
| 'prosthetic': (0, 5, 0, 0, 15), | |
| 'amputation': (-40, 25, -30, 15, 35), | |
| 'complexion': (0, 5, 0, 0, 5), | |
| 'freckles': (5, 5, 0, 0, 5), | |
| 'balding': (-15, 10, -10, 5, 10), | |
| 'receding': (-12, 8, -8, 5, 8), | |
| 'graying': (-5, 5, -5, 0, 8), | |
| 'bodyshamed': (-50, 35, -35, 20, -25), | |
| 'unfiltered': (15, 10, 15, 0, 10), | |
| # Chronic pain / invisible illness | |
| 'flare': (-35, 30, -25, 25, 20), | |
| 'flareup': (-40, 35, -30, 30, 22), | |
| 'remission': (50, -10, 30, -20, 25), | |
| 'fibromyalgia': (-30, 15, -25, 15, 35), | |
| 'lupus': (-30, 15, -25, 15, 35), | |
| 'spoons': (-15, 5, -15, 10, 15), | |
| 'spoonie': (-15, 10, -15, 10, 15), | |
| 'fatigued': (-30, -20, -25, 10, -15), | |
| 'debilitating': (-55, 25, -50, 25, 30), | |
| 'crippling': (-60, 30, -55, 30, 30), | |
| 'housebound': (-45, -10, -60, 15, 30), | |
| 'homebound': (-40, -10, -55, 15, 28), | |
| 'bedbound': (-55, -15, -75, 20, 35), | |
| 'inflammation': (-20, 15, -15, 10, 15), | |
| 'inflamed': (-25, 20, -15, 15, 12), | |
| 'migraine': (-40, 30, -30, 25, 20), | |
| 'vertigo': (-30, 25, -25, 20, 15), | |
| 'flaring': (-35, 30, -25, 25, 18), | |
| 'progressive': (-20, 15, -15, 15, 25), | |
| 'manageable': (15, -5, 15, -10, 10), | |
| 'unmanageable': (-40, 30, -35, 25, -20), | |
| 'tolerable': (10, -5, 10, -10, 10), | |
| 'intolerable': (-60, 35, -40, 30, -25), | |
| 'excruciating': (-80, 50, -50, 40, -35), | |
| 'agonizing': (-75, 45, -45, 35, -30), | |
| 'throbbing': (-30, 25, -20, 20, 10), | |
| 'radiating': (-25, 20, -15, 15, 10), | |
| 'tingling': (-10, 15, -10, 10, 8), | |
| 'stiffness': (-15, 10, -15, 10, 10), | |
| # LGBTQ+ experience | |
| 'closeted': (-30, 20, -35, 15, 20), | |
| 'deadnamed': (-50, 35, -45, 25, -25), | |
| 'deadnaming': (-45, 30, -40, 20, -22), | |
| 'misgendered': (-40, 30, -35, 20, -20), | |
| 'misgendering': (-35, 25, -30, 15, -18), | |
| 'transitioning': (10, 25, 20, 15, 30), | |
| 'transitioned': (20, 10, 25, 0, 25), | |
| 'nonbinary': (0, 5, 5, 0, 10), | |
| 'queer': (0, 10, 10, 0, 10), | |
| 'questioning': (-10, 15, -10, 10, 15), | |
| 'homophobia': (-55, 40, 20, 20, 30), | |
| 'homophobic': (-50, 35, 20, 15, -25), | |
| 'transphobia': (-55, 40, 20, 20, 30), | |
| 'transphobic': (-50, 35, 20, 15, -25), | |
| 'conversion': (-40, 30, -35, 20, 25), | |
| 'dysphoria': (-55, 40, -40, 30, 35), | |
| 'euphoria': (70, 50, 40, 10, 20), | |
| 'affirmed': (35, 15, 30, 0, 18), | |
| 'allyship': (30, 15, 15, 0, 15), | |
| 'ally': (25, 10, 10, 0, 12), | |
| # Foster care / adoption | |
| 'reunification': (30, 25, 15, 20, 30), | |
| 'placement': (-10, 15, -20, 15, 20), | |
| 'caseworker': (0, 10, 15, 10, 20), | |
| 'adoptee': (0, 10, -5, 5, 20), | |
| 'adoptive': (15, 10, 15, 5, 18), | |
| 'relinquished': (-45, 20, -40, 15, 30), | |
| 'relinquishment': (-40, 15, -35, 10, 30), | |
| 'kinship': (20, 10, 10, 0, 20), | |
| 'permanency': (20, 5, 15, -5, 25), | |
| 'guardianship': (10, 10, 20, 10, 25), | |
| 'detachment': (-30, 10, -20, 5, -15), | |
| 'disruption': (-35, 30, -30, 25, 20), | |
| 'siblings': (5, 10, 5, 0, 25), | |
| 'rehomed': (-30, 20, -35, 15, -18), | |
| 'abandonment': (-60, 25, -50, 20, -30), | |
| # Incarceration aftermath | |
| 'reentry': (10, 25, -15, 25, 25), | |
| 'felon': (-50, 25, -60, 20, 40), | |
| 'parolee': (-10, 15, -30, 20, 25), | |
| 'recidivism': (-40, 20, -40, 25, 35), | |
| 'imprisoned': (-75, 25, -120, 35, 50), | |
| 'imprisonment': (-70, 20, -115, 30, 50), | |
| 'expunged': (35, 15, 25, -10, 20), | |
| 'expungement': (30, 10, 20, -10, 20), | |
| 'stigmatized': (-40, 25, -30, 15, -20), | |
| 'employable': (20, 10, 15, 5, 10), | |
| 'unemployable': (-40, 20, -40, 25, -25), | |
| 'supervised': (-10, 10, -20, 10, 15), | |
| 'monitored': (-10, 10, -20, 10, 12), | |
| 'curfew': (-10, 10, -20, 10, 12), | |
| 'restricted': (-15, 10, -25, 10, 15), | |
| 'reintegrated': (15, 20, -10, 15, 20), | |
| # Workplace layoff / restructuring | |
| 'restructured': (-15, 20, -15, 20, 18), | |
| 'restructuring': (-20, 25, -15, 25, 20), | |
| 'redundant': (-40, 25, -35, 25, -20), | |
| 'redundancy': (-35, 20, -30, 20, 20), | |
| 'offboarded': (-30, 20, -25, 20, 15), | |
| 'offboarding': (-25, 15, -20, 15, 15), | |
| 'downsizing': (-30, 25, -20, 25, 20), | |
| 'furloughed': (-35, 20, -30, 25, 20), | |
| 'furlough': (-30, 15, -25, 20, 18), | |
| 'layoff': (-40, 30, -35, 30, 22), | |
| 'layoffs': (-35, 25, -25, 25, 22), | |
| 'termination': (-45, 35, -40, 35, 28), | |
| 'outsourced': (-30, 20, -25, 20, 18), | |
| 'outsourcing': (-25, 20, -20, 20, 18), | |
| 'reorg': (-20, 25, -15, 20, 18), | |
| 'reorganized': (-15, 20, -10, 15, 15), | |
| 'reorganization': (-15, 20, -10, 15, 18), | |
| 'attrition': (-15, 10, -10, 10, 15), | |
| 'involuntary': (-30, 20, -40, 20, 15), | |
| 'buyout': (10, 15, 10, 15, 15), | |
| 'transition': (-5, 15, -5, 10, 12), | |
| 'pivoted': (5, 15, 10, 10, 10), | |
| 'pivoting': (5, 15, 10, 10, 10), | |
| 'upskill': (15, 15, 15, 10, 10), | |
| 'upskilling': (15, 15, 15, 10, 10), | |
| 'reskill': (10, 15, 10, 10, 10), | |
| 'reskilling': (10, 15, 10, 10, 10), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_DOMAINS_6) | |
| # ── Domain batch 7: parenting stress, divorce/separation, loneliness, | |
| # betrayal/trust, achievement, gratitude, physical sensations, sound/music | |
| _DOMAINS_7 = { | |
| # --- Parenting stress --- | |
| 'colic': (-20, 30, -25, 30, 15), | |
| 'tantrum': (-35, 60, -40, 45, 20), | |
| 'tantrums': (-35, 55, -40, 40, 20), | |
| 'sleepless': (-30, 20, -25, 25, 15), | |
| 'daycare': (0, 5, 0, 5, 8), | |
| 'teething': (-15, 25, -15, 20, 10), | |
| 'fussy': (-20, 25, -20, 20, 8), | |
| 'colicky': (-20, 30, -25, 30, 12), | |
| 'inconsolable': (-55, 50, -50, 50, 30), | |
| 'whining': (-25, 30, -20, 20, 8), | |
| 'bedtime': (0, 5, 5, 5, 5), | |
| 'naptime': (0, -5, 5, 0, 5), | |
| 'breastfeeding': (5, 5, 5, 5, 10), | |
| 'pacifier': (5, -10, 5, -5, 5), | |
| 'diaper': (0, 5, 0, 5, 3), | |
| 'weaning': (-5, 10, 5, 10, 8), | |
| 'developmental': (0, 5, 0, 5, 10), | |
| 'sleep-deprived': (-35, 15, -30, 25, 18), | |
| 'overtired': (-30, 20, -25, 20, 12), | |
| 'fretful': (-25, 25, -20, 20, 10), | |
| 'nanny': (0, 0, 5, 0, 5), | |
| 'babysitter': (0, 0, 5, 0, 5), | |
| 'sitter': (0, 0, 5, 0, 3), | |
| 'preschool': (5, 5, 0, 5, 8), | |
| 'formula': (0, 0, 0, 0, 5), | |
| # --- Divorce/separation --- | |
| 'alimony': (-15, 15, -20, 15, 20), | |
| 'co-parenting': (-5, 15, -5, 15, 18), | |
| 'coparenting': (-5, 15, -5, 15, 18), | |
| 'mediator': (0, 10, 0, 10, 18), | |
| 'contested': (-25, 35, -20, 30, 22), | |
| 'separation': (-35, 20, -25, 20, 22), | |
| 'prenup': (-5, 10, 10, 5, 15), | |
| 'prenuptial': (-5, 10, 10, 5, 15), | |
| 'annulment': (-30, 20, -15, 20, 25), | |
| 'estranged': (-45, 15, -30, 15, 25), | |
| 'ex-husband': (-15, 15, -10, 10, 12), | |
| 'ex-wife': (-15, 15, -10, 10, 12), | |
| 'ex-spouse': (-15, 15, -10, 10, 12), | |
| 'irreconcilable': (-40, 20, -25, 15, 25), | |
| 'infidelity': (-80, 60, -60, 40, 40), | |
| 'adultery': (-80, 55, -55, 35, 42), | |
| 'proceedings': (-10, 15, -5, 15, 20), | |
| 'petition': (-5, 15, 5, 15, 18), | |
| 'dissolution': (-35, 15, -20, 15, 25), | |
| 'decree': (-10, 10, 15, 10, 22), | |
| 'marital': (0, 5, 0, 5, 15), | |
| 'spousal': (0, 5, 0, 5, 12), | |
| 'divorcee': (-20, 10, -10, 5, 15), | |
| 'remarriage': (10, 15, 10, 10, 15), | |
| 'remarried': (10, 10, 10, 5, 12), | |
| 'stepparent': (0, 10, 5, 5, 12), | |
| 'blended': (5, 10, 5, 5, 10), | |
| 'cohabitation': (0, 5, 0, 5, 8), | |
| # --- Loneliness/social isolation --- | |
| 'withdrawn': (-40, -15, -35, 10, -25), | |
| 'reclusive': (-35, -20, -30, 5, -20), | |
| 'alienated': (-55, 20, -45, 15, -30), | |
| 'solitude': (-15, -20, -10, 0, 10), | |
| 'friendless': (-55, 10, -40, 15, -35), | |
| 'hermit': (-20, -25, -15, 0, -10), | |
| 'recluse': (-25, -20, -20, 0, -12), | |
| 'secluded': (-15, -15, -10, 0, 5), | |
| 'seclusion': (-15, -15, -10, 0, 5), | |
| 'aloof': (-20, -15, 10, 0, -8), | |
| 'unapproachable': (-25, 10, 15, 5, -10), | |
| 'overlooked': (-40, 10, -35, 10, -20), | |
| 'marginalized': (-50, 20, -45, 15, -30), | |
| 'shunned': (-55, 20, -45, 15, -30), | |
| 'unnoticed': (-35, -5, -30, 5, -18), | |
| 'wallflower': (-20, -15, -25, 0, -10), | |
| 'homesick': (-40, 20, -25, 20, -20), | |
| 'homesickness': (-40, 20, -25, 20, -20), | |
| 'forlorn': (-55, -10, -40, 10, -35), | |
| 'desolate': (-65, -5, -45, 10, -45), | |
| # --- Betrayal/trust violation --- | |
| 'backstabbed': (-85, 70, -65, 50, -40), | |
| 'backstabbing': (-80, 65, -60, 45, -35), | |
| 'two-faced': (-60, 40, -45, 30, -25), | |
| 'deceived': (-75, 55, -60, 40, -35), | |
| 'conned': (-70, 55, -60, 40, -30), | |
| 'scammed': (-65, 55, -55, 40, -28), | |
| 'treachery': (-90, 60, -70, 45, -50), | |
| 'treacherous': (-85, 55, -65, 40, -45), | |
| 'duplicitous': (-65, 40, -50, 30, -30), | |
| 'duplicity': (-65, 40, -50, 30, -30), | |
| 'swindled': (-65, 50, -55, 35, -28), | |
| 'defrauded': (-60, 45, -50, 35, -25), | |
| 'hoodwinked': (-55, 45, -50, 30, -22), | |
| 'bamboozled': (-50, 40, -45, 25, -18), | |
| 'double-crossed': (-85, 65, -65, 50, -40), | |
| 'disloyal': (-70, 45, -55, 30, -35), | |
| 'disloyalty': (-70, 45, -55, 30, -35), | |
| 'traitor': (-90, 65, -70, 50, -50), | |
| 'traitorous': (-85, 60, -65, 45, -45), | |
| 'sellout': (-55, 40, -45, 25, -25), | |
| 'ratted': (-50, 45, -40, 30, -22), | |
| 'informant': (-20, 25, -15, 20, 15), | |
| 'turncoat': (-75, 55, -60, 40, -40), | |
| 'judas': (-90, 55, -70, 40, -50), | |
| 'phishing': (-30, 30, -25, 25, 15), | |
| 'fraudulent': (-55, 35, -40, 25, 20), | |
| 'impostor': (-45, 40, -35, 30, 18), | |
| 'impersonator': (-35, 30, -25, 25, 15), | |
| 'gaslighted': (-80, 50, -70, 45, -40), | |
| # --- Achievement/success --- | |
| 'breakthrough': (55, 50, 45, 20, 35), | |
| 'excelled': (40, 25, 35, 0, 20), | |
| 'excelling': (40, 25, 35, 0, 18), | |
| 'triumphant': (70, 50, 60, 0, 40), | |
| 'victorious': (60, 45, 55, 0, 35), | |
| 'succeeding': (35, 20, 30, 0, 15), | |
| 'mastered': (45, 20, 45, 0, 25), | |
| 'mastery': (50, 15, 50, 0, 30), | |
| 'valedictorian': (50, 25, 40, 0, 35), | |
| 'summa': (40, 15, 30, 0, 28), | |
| 'honors': (35, 15, 25, 0, 22), | |
| 'dean': (5, 5, 15, 0, 18), | |
| 'certified': (20, 10, 20, 0, 15), | |
| 'licensed': (15, 5, 15, 0, 12), | |
| 'tenured': (30, 5, 35, 0, 25), | |
| 'awarded': (35, 20, 25, 0, 22), | |
| 'accolade': (35, 15, 25, 0, 22), | |
| 'recognition': (30, 15, 20, 0, 18), | |
| 'commendation': (30, 10, 20, 0, 20), | |
| 'pioneered': (45, 30, 45, 0, 30), | |
| 'innovated': (40, 30, 40, 0, 25), | |
| 'launched': (30, 35, 30, 10, 20), | |
| 'founded': (30, 20, 35, 0, 25), | |
| # --- Gratitude/appreciation --- | |
| 'thanking': (25, 10, 5, 0, 10), | |
| 'beholden': (10, 5, -15, 5, 15), | |
| 'obliged': (5, 5, -10, 5, 12), | |
| 'gracious': (35, 10, 15, 0, 18), | |
| 'graciousness': (35, 10, 15, 0, 20), | |
| 'privileged': (25, 10, 15, 0, 15), | |
| 'humbled': (20, 10, -10, 0, 18), | |
| 'honored': (35, 15, 15, 0, 20), | |
| 'touched': (35, 20, -5, 0, 18), | |
| 'sincere': (30, 10, 15, 0, 18), | |
| 'sincerely': (25, 5, 10, 0, 12), | |
| 'benevolent': (40, 10, 20, 0, 22), | |
| 'benevolence': (40, 10, 20, 0, 25), | |
| 'magnanimous': (40, 10, 25, 0, 25), | |
| 'selfless': (40, 15, -10, 0, 25), | |
| 'altruistic': (35, 10, -5, 0, 22), | |
| 'philanthropic': (30, 10, 15, 0, 25), | |
| # --- Physical sensations (emotional) --- | |
| 'butterflies': (10, 30, -15, 15, 8), | |
| 'chills': (-10, 30, -15, 15, 10), | |
| 'goosebumps': (5, 30, -10, 10, 8), | |
| 'dizzy': (-20, 25, -25, 20, 10), | |
| 'flushed': (-15, 30, -20, 15, 8), | |
| 'shivering': (-20, 25, -20, 15, 8), | |
| 'palpitations': (-30, 50, -35, 35, 15), | |
| 'breathless': (-15, 40, -25, 25, 12), | |
| 'lightheaded': (-15, 20, -20, 15, 8), | |
| 'queasy': (-25, 20, -20, 15, 8), | |
| 'pounding': (-25, 45, -20, 25, 12), | |
| 'clenching': (-30, 35, -15, 20, 10), | |
| 'tightness': (-25, 25, -20, 15, 10), | |
| 'knot': (-30, 20, -25, 15, 12), | |
| 'fluttering': (5, 25, -10, 10, 5), | |
| 'freezing': (-15, 20, -15, 10, 8), | |
| 'burning': (-30, 40, -15, 25, 12), | |
| 'stinging': (-25, 30, -15, 20, 8), | |
| 'wincing': (-20, 25, -15, 15, 5), | |
| 'flinching': (-25, 30, -25, 20, 8), | |
| 'recoiling': (-30, 35, -30, 20, 10), | |
| 'tensing': (-20, 30, -15, 15, 8), | |
| # --- Sound/music (emotional) --- | |
| 'haunting': (-20, 15, -10, 5, 25), | |
| 'soothing': (30, -15, 10, -10, 15), | |
| 'jarring': (-30, 50, -25, 30, 10), | |
| 'deafening': (-20, 60, -20, 25, 15), | |
| 'cacophony': (-30, 55, -20, 25, 10), | |
| 'melody': (20, 5, 5, 0, 12), | |
| 'melodic': (20, 5, 5, 0, 10), | |
| 'harmonious': (30, -5, 15, 0, 18), | |
| 'harmony': (30, -5, 15, 0, 18), | |
| 'dissonant': (-25, 30, -15, 15, 10), | |
| 'dissonance': (-25, 30, -15, 15, 12), | |
| 'rhythmic': (10, 10, 5, 0, 8), | |
| 'rhythm': (10, 10, 5, 0, 10), | |
| 'anthem': (25, 30, 20, 5, 22), | |
| 'requiem': (-30, 10, -5, 0, 30), | |
| 'symphonic': (15, 10, 10, 0, 18), | |
| 'symphony': (15, 10, 10, 0, 20), | |
| 'crescendo': (15, 45, 15, 15, 15), | |
| 'diminuendo': (-5, -15, -5, -5, 8), | |
| 'resonant': (15, 15, 10, 0, 15), | |
| 'resonance': (15, 15, 10, 0, 18), | |
| 'reverberating': (0, 25, 5, 5, 12), | |
| 'echoing': (-5, 15, -5, 5, 10), | |
| 'muffled': (-15, -10, -15, 5, 8), | |
| 'piercing': (-25, 50, -15, 25, 10), | |
| 'shrill': (-25, 45, -15, 20, 8), | |
| 'blaring': (-20, 50, -10, 20, 8), | |
| 'thunderous': (-10, 60, 15, 15, 20), | |
| 'whispering': (5, -10, -10, 0, 8), | |
| 'murmuring': (0, -10, -10, 0, 5), | |
| 'humming': (10, -5, 5, 0, 5), | |
| 'shrieking': (-50, 70, -20, 40, 15), | |
| 'moaning': (-35, 30, -25, 20, 10), | |
| 'groaning': (-30, 25, -20, 15, 8), | |
| 'sighing': (-15, -5, -15, 5, 5), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_DOMAINS_7) | |
| # ===================================================================== | |
| # _DOMAINS_8: Power dynamics, self-talk, survival, existential crisis, | |
| # nostalgia, compliment, insult, weather/nature as emotion | |
| # ===================================================================== | |
| _DOMAINS_8 = { | |
| # --- Power dynamics / control --- | |
| 'stonewalling': (-35, 15, 30, 15, 20), | |
| 'breadcrumbing': (-25, 15, 25, 10, 12), | |
| 'benching': (-20, 10, 25, 10, 10), | |
| 'manipulating': (-40, 25, 35, 20, 22), | |
| 'coercing': (-45, 35, 40, 30, 25), | |
| 'dominating': (-30, 35, 45, 20, 22), | |
| 'isolating': (-40, 20, 30, 20, 25), | |
| 'triangulating': (-35, 25, 30, 15, 18), | |
| 'enmeshed': (-25, 20, -20, 15, 20), | |
| 'enmeshment': (-25, 20, -20, 15, 22), | |
| 'codependency': (-20, 15, -15, 10, 20), | |
| 'grooming': (-45, 20, 35, 20, 28), | |
| 'exploiting': (-45, 25, 35, 20, 25), | |
| 'silencing': (-40, 20, 35, 20, 22), | |
| 'undermining': (-35, 20, 30, 15, 18), | |
| 'dismissive': (-30, 10, 25, 10, 15), | |
| 'belittling': (-40, 20, 30, 15, 18), | |
| 'patronizing': (-30, 15, 30, 10, 15), | |
| # --- Self-talk / inner critic --- | |
| 'unworthy': (-45, 20, -35, 15, 25), | |
| 'incapable': (-35, 15, -35, 15, 20), | |
| 'defective': (-40, 15, -30, 15, 22), | |
| 'unredeemable': (-50, 15, -35, 10, 30), | |
| 'irredeemable': (-50, 15, -35, 10, 30), | |
| 'undeserving': (-40, 15, -30, 15, 22), | |
| 'flawed': (-25, 10, -15, 10, 18), | |
| 'inferior': (-35, 15, -30, 10, 20), | |
| 'insufficient': (-25, 10, -20, 10, 15), | |
| 'unfit': (-30, 15, -25, 10, 18), | |
| 'self-loathing': (-55, 30, -35, 20, 28), | |
| 'self-hatred': (-55, 35, -35, 25, 30), | |
| 'self-doubt': (-30, 20, -25, 15, 18), | |
| 'self-sabotage': (-40, 25, -20, 20, 22), | |
| 'imposter': (-30, 25, -25, 20, 18), | |
| # --- Survival / resilience language --- | |
| 'endured': (15, 15, 25, 5, 25), | |
| 'persevered': (20, 20, 30, 5, 25), | |
| 'withstood': (15, 15, 30, 5, 25), | |
| 'outlasted': (15, 10, 25, 5, 22), | |
| 'perseverance': (20, 15, 25, 5, 25), | |
| 'tenacity': (20, 20, 30, 5, 25), | |
| 'tenacious': (20, 25, 30, 5, 22), | |
| 'grit': (15, 25, 30, 10, 22), | |
| 'fortitude': (20, 15, 30, 5, 28), | |
| 'indomitable': (25, 25, 35, 5, 28), | |
| 'unyielding': (10, 20, 35, 10, 25), | |
| 'steadfast': (20, 10, 30, 5, 25), | |
| 'unwavering': (20, 10, 30, 5, 22), | |
| 'endurance': (15, 15, 25, 5, 25), | |
| 'hardy': (10, 10, 20, 5, 15), | |
| 'hardened': (-5, 10, 25, 5, 20), | |
| 'weathered': (5, 5, 20, 0, 22), | |
| 'battle-tested': (10, 15, 30, 5, 25), | |
| 'unbreakable': (20, 20, 35, 5, 28), | |
| 'undaunted': (20, 20, 30, 5, 22), | |
| 'persisting': (15, 15, 25, 10, 20), | |
| # --- Spiritual / existential crisis --- | |
| 'purposeless': (-40, 10, -25, 10, 28), | |
| 'abyss': (-45, 20, -30, 15, 35), | |
| 'existential': (-20, 15, -10, 10, 30), | |
| 'nihilism': (-40, 10, -15, 5, 30), | |
| 'nihilistic': (-40, 10, -15, 5, 28), | |
| 'nothingness': (-35, 5, -20, 5, 30), | |
| 'absurdity': (-20, 15, -10, 5, 22), | |
| 'godless': (-25, 10, -10, 5, 25), | |
| 'faithless': (-30, 10, -15, 10, 22), | |
| 'soulless': (-35, 5, -10, 5, 25), | |
| 'desolation': (-45, 10, -25, 10, 30), | |
| 'futile': (-35, 10, -25, 10, 22), | |
| 'futility': (-35, 10, -25, 10, 25), | |
| 'unmoored': (-30, 20, -25, 15, 22), | |
| 'untethered': (-20, 15, -20, 10, 18), | |
| 'directionless': (-30, 10, -20, 10, 20), | |
| 'aimless': (-25, 5, -20, 5, 18), | |
| 'barren': (-30, 5, -15, 5, 22), | |
| 'forsaken': (-50, 20, -30, 15, 30), | |
| # --- Nostalgia / memory --- | |
| 'wistful': (-10, 5, -10, 0, 18), | |
| 'pining': (-20, 15, -15, 10, 18), | |
| 'bygone': (-5, 0, -5, 0, 18), | |
| 'remembrance': (-5, 5, -5, 0, 20), | |
| 'memoir': (0, 5, 5, 0, 20), | |
| 'reminiscence': (5, 5, -5, 0, 18), | |
| 'melancholic': (-25, 5, -15, 5, 22), | |
| 'melancholy': (-25, 5, -15, 5, 22), | |
| 'reverie': (10, -5, -5, 0, 15), | |
| 'daydream': (10, -5, -5, 0, 10), | |
| 'sepia': (-5, 0, -5, 0, 12), | |
| 'faded': (-10, -5, -10, 0, 15), | |
| 'bygones': (5, -5, 5, 0, 12), | |
| 'halcyon': (20, -5, 10, 0, 20), | |
| 'waning': (-15, -5, -10, 5, 15), | |
| # --- Compliment / praise --- | |
| 'radiant': (40, 20, 15, 0, 18), | |
| 'magnificent': (45, 25, 20, 0, 25), | |
| 'exceptional': (40, 20, 20, 0, 22), | |
| 'extraordinary': (45, 25, 20, 0, 25), | |
| 'dazzling': (40, 30, 15, 0, 18), | |
| 'exquisite': (45, 15, 15, 0, 22), | |
| 'phenomenal': (45, 30, 20, 0, 22), | |
| 'glorious': (45, 25, 20, 0, 25), | |
| 'majestic': (40, 20, 25, 0, 28), | |
| 'resplendent': (40, 15, 15, 0, 22), | |
| 'luminous': (35, 15, 10, 0, 18), | |
| 'awe-inspiring': (45, 30, 15, 0, 28), | |
| 'breathtaking': (45, 35, 10, 0, 22), | |
| 'impeccable': (40, 10, 20, 0, 20), | |
| 'stellar': (40, 20, 15, 0, 18), | |
| 'sublime': (45, 15, 15, 0, 25), | |
| 'transcendent': (40, 20, 15, 0, 30), | |
| 'virtuoso': (40, 20, 25, 0, 22), | |
| # --- Insult / degradation --- | |
| 'contemptible': (-45, 25, 25, 15, 22), | |
| 'deplorable': (-45, 25, 20, 15, 25), | |
| 'despicable': (-50, 30, 25, 20, 25), | |
| 'abhorrent': (-50, 30, 20, 15, 28), | |
| 'grotesque': (-40, 25, 15, 10, 20), | |
| 'wretched': (-45, 20, -20, 15, 25), | |
| 'abominable': (-50, 30, 20, 15, 28), | |
| 'insufferable': (-40, 30, 20, 15, 18), | |
| 'detestable': (-45, 25, 20, 15, 22), | |
| 'repugnant': (-50, 25, 15, 15, 22), | |
| 'odious': (-45, 20, 20, 10, 22), | |
| 'nauseating': (-40, 25, -10, 15, 15), | |
| 'scummy': (-45, 25, 20, 10, 15), | |
| 'sleazy': (-40, 20, 15, 10, 15), | |
| 'slimy': (-35, 15, 15, 10, 12), | |
| 'spineless': (-35, 15, -30, 10, 18), | |
| 'gutless': (-35, 20, -30, 10, 18), | |
| # --- Weather / nature as emotion --- | |
| 'stormy': (-20, 35, -10, 15, 15), | |
| 'blossoming': (25, 15, 10, 0, 15), | |
| 'wilting': (-25, -5, -20, 10, 15), | |
| 'turbulent': (-25, 40, -15, 20, 18), | |
| 'serene': (30, -15, 15, -10, 18), | |
| 'overcast': (-15, -5, -10, 5, 10), | |
| 'tempestuous': (-25, 45, -15, 20, 20), | |
| 'foggy': (-10, -5, -10, 5, 8), | |
| 'misty': (-5, -5, -5, 0, 8), | |
| 'blooming': (25, 15, 10, 0, 12), | |
| 'withering': (-30, 10, -20, 10, 18), | |
| 'parched': (-20, 10, -15, 10, 12), | |
| 'thawing': (15, 5, 5, 0, 10), | |
| 'budding': (15, 10, 5, 0, 10), | |
| 'flourishing': (30, 15, 15, 0, 18), | |
| 'dormant': (-5, -10, -10, 0, 12), | |
| 'scorching': (-20, 35, -10, 15, 12), | |
| 'frigid': (-20, 10, -10, 5, 12), | |
| 'balmy': (15, -10, 5, 0, 8), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_DOMAINS_8) | |
| # ── Structural force words: meaning comes from position, not isolation ── | |
| _STRUCTURAL_FORCES = { | |
| 'one': (35, 5, 15, 0, 30), # a person/someone. "no one" = zero people = isolation | |
| } | |
| EMOTIONAL_VOCABULARY.update(_STRUCTURAL_FORCES) | |
| # ── Vocabulary corrections from permanent suite miss analysis ────── | |
| _VOCAB_FIXES = { | |
| # Laughed is positive -- shared laughter = joy, not negative | |
| 'laughed': (30, 25, 15, 0, 10), # override: was -5, laughing is positive | |
| 'laughing': (25, 30, 10, 0, 8), # same fix | |
| 'chuckled': (20, 15, 10, 0, 5), | |
| # Breathe is neutral-to-positive (relief, life, calm) | |
| 'breathe': (10, -5, 10, 0, 5), # override: was -10 | |
| # Electricity is a utility noun -- neutral, not positive | |
| 'electricity': (0, 5, 0, 5, 10), # override: was +43. "shut off" = negative from verb | |
| # Loan and debt are liquid -- V near zero, high G (financial weight) | |
| 'loan': (-5, 10, -10, 15, 30), # override: was -77. Liquid. "approved" vs "defaulted" resolves | |
| 'debt': (-15, 10, -15, 10, 30), # override: was -77. "paid off debt" = positive from "paid off" | |
| # Proposed is a big positive life event | |
| 'proposed': (40, 30, 25, 5, 25), # override: was +20. Proposal = major positive | |
| # Anniversary has more weight | |
| 'anniversary': (25, 10, 10, 0, 25), # override: was +10. Remembered anniversary = love | |
| # Danced is more joyful | |
| 'danced': (35, 20, 15, 0, 12), # override: was +25 | |
| 'dancing': (35, 25, 15, 0, 10), | |
| # "passed over" -- passed needs slight negative (skipped, rejected) | |
| 'passed': (-10, 5, -10, 5, 5), # liquid: "passed away" vs "passed the test" vs "passed me over" | |
| # "shut off" -- shut is a cessation/rejection word | |
| 'shut': (-30, 15, -20, 10, -10), # "shut off", "shut out", "shut down" -- all negative | |
| # "wrong" needs to be in vocab | |
| 'wrong': (-35, 15, -20, 10, -15), # error, mistake, incorrect | |
| # "through" as in "went through my phone" -- violation | |
| # Actually "through" is too common. Leave it. | |
| # "reaching" as in "always the one reaching out" | |
| 'reaching': (5, 10, 5, 5, 5), # mild positive (effort) | |
| # ── Negator contractions: these are OPERATORS not emotional words ── | |
| # They flip what follows. They should NOT carry their own massive force. | |
| # "couldnt" was V=-79 (as negative as "abandoned") -- that's wrong. | |
| # A negator's job is to reverse polarity, not add its own weight. | |
| 'couldnt': (-5, 0, -5, 0, 0), # pure operator, flips what follows | |
| 'wont': (-15, 5, -10, 5, -5), # refusal/inability -- slightly heavier than other negators | |
| 'havent': (-5, 0, -5, 0, 0), | |
| 'dont': (-8, 0, -5, 0, 0), | |
| 'cant': (-10, 5, -10, 5, -5), # inability carries slight weight | |
| 'didnt': (-5, 0, -5, 0, 0), | |
| 'shouldnt': (-5, 0, -5, 0, 0), | |
| 'wouldnt': (-5, 0, -5, 0, 0), | |
| 'isnt': (-5, 0, -5, 0, 0), | |
| 'wasnt': (-5, 0, -5, 0, 0), | |
| # ── Permanent suite miss fixes ── | |
| 'afford': (15, -5, 15, 0, 10), # override: was -32. "Can afford" = financial security | |
| 'help': (20, 10, 15, 5, 10), # override: was -10. Help is positive (assistance) | |
| 'helped': (25, 5, 15, 0, 10), | |
| 'helping': (20, 10, 15, 5, 10), | |
| 'slow': (0, 5, 0, 0, 5), # override: was -114! Tempo word, neutral. Context resolves. | |
| 'nightmares': (-60, 50, -40, 50, -30), # override: was -30. Nightmares = recurring horror | |
| 'stop': (-5, 5, 5, 0, -3), # override: was -20. "Stop" is near-neutral cessation | |
| # ── Bayesian corrections: corpus says these are coded wrong direction ── | |
| # Based on 30K EmpatheticDialogues sentences. Only high-confidence (count>=30). | |
| 'least': (-5, 0, 0, 0, 0), # was -52. "At least" = silver lining. 70% positive in corpus. | |
| 'miss': (-15, 10, -10, 5, 15), # was -42. "I miss you" = longing. 66% positive. High G. | |
| 'without': (-10, 5, -8, 0, 5), # Slight neg lean. "Without me"=exclusion. "Without stress"=relief (handled by absence scope). | |
| # ── Math verification fixes: words pulling in wrong direction ── | |
| 'front': (0, 5, 5, 0, 5), # override: was V=+32 D=+52. "Front" is a location, not emotional. | |
| 'everything': (0, 0, 0, 0, 0), # AMPLIFIER. Scope = ALL. No emotional force. Amplifies context direction. | |
| 'realized': (-5, 5, 5, 0, 5), # override: was V=+36. "Realized" is neutral cognition, context resolves. | |
| 'group': (5, 5, 5, 0, 10), # override: was V=+32. "Group" is neutral noun. | |
| # ── Math pass 2: words identified from 27-miss trace ── | |
| 'against': (-5, 10, 5, 0, 5), # override: was V=-32. Preposition/connector, not emotional. "Against all odds" = neutral. | |
| 'pressure': (-10, 10, -5, 5, 10), # override: was V=-42. "Blood pressure" = clinical. Context resolves. | |
| 'one': (5, 0, 0, 0, 10), # override: was V=+35. "The one reaching out" ≠ positive. Pronoun/number, low V. | |
| 'small': (0, 0, 0, 0, 5), # override: was V=+42. Size descriptor, not emotional. | |
| 'whole': (0, 0, 0, 0, 5), # override: was V=+29. Scope word like "everything". Amplifier, not emotional. | |
| 'grocery': (0, 0, 0, 0, 5), # override: was V=+42. Neutral noun. Store, not emotion. | |
| 'understands': (10, 0, 5, 0, 5), # override: was pulling positive. Neutral cognition with slight positive. | |
| 'nobody': (-8, 5, -5, 5, -5), # Minimal own force. NEGATOR role + force flow do the real work. | |
| 'needs': (5, 10, 0, 10, 10), # Slight positive lean. "Needs me"=valued, "needs space"=pushing away. Liquid. | |
| 'cares': (20, 5, 10, 0, 10), # "cares about me" = loved. Positive. | |
| 'caring': (20, 5, 10, 0, 10), | |
| 'notice': (5, 10, 5, 0, 10), # Observation/attention. Near-neutral. | |
| 'noticed': (5, 10, 5, 0, 10), | |
| 'medicine': (10, 5, 5, 5, 25), # Healing tool. Positive purpose but not strongly. High G -- health matters. | |
| 'kind': (5, 5, 5, 0, 5), # override: was V=+50. Liquid: "kind person"=positive, "another kind"=type/neutral. | |
| 'make': (5, 5, 5, 0, 5), # override: was V=+15. Neutral action verb. Context resolves. | |
| 'working': (0, 5, 0, 0, 5), # override: was V=+8. Status indicator: ON/OFF. Not positive or negative. | |
| 'between': (-10, 5, -10, 5, 5), # "Choose between" = forced split. Losing one for the other. | |
| # ── Novel sentence miss fixes ── | |
| 'exam': (0, 15, 0, 10, 15), # override: was -24. Neutral event. "Passed the exam" = context resolves. | |
| 'passed': (5, 5, 5, 0, 5), # override: was -10. "Passed" = succeeded/completed. Slight positive. | |
| 'cooked': (15, 5, 10, 0, 5), # override: was -35! Cooking = act of care/service. Positive. | |
| 'cooking': (15, 10, 10, 0, 5), | |
| 'cook': (10, 5, 10, 0, 5), | |
| 'steps': (5, 5, 5, 0, 5), # "First steps" = progress/milestone. Slight positive. | |
| 'took': (0, 5, 5, 0, 5), # override: was -10. Neutral action verb. | |
| 'message': (0, 5, 0, 0, 5), # override: was +32. Neutral communication noun. | |
| 'messages': (0, 5, 0, 0, 5), | |
| 'reply': (5, 5, 5, 0, 5), # "Didnt reply" = silence. Reply itself is neutral-positive. | |
| 'down': (-5, 5, -5, 0, 0), # override: was -15. Directional. "Put down" vs "calmed down". | |
| 'dog': (5, 5, 5, 0, 20), # override: was +39. Relationship noun, not strongly positive. High G. | |
| 'again': (0, 5, 0, 0, 5), # override: was -10. Neutral repetition. "Try again" = resilience. | |
| 'space': (-10, -5, 5, 0, 5), # "Needs space" = distance/rejection context. Slight neg. | |
| 'paid': (20, 5, 15, 0, 10), # override: was +15. "Paid off" = accomplishment. Slightly stronger. | |
| 'called': (-10, 10, -5, 10, 5), # override: was -5. "Got called in" = summoned = slight threat. | |
| 'through': (-5, 5, -5, 0, 5), # "Went through" = searched/violated. Slight neg. | |
| 'first': (0, 5, 0, 0, 5), # Ordinal position setter. "First to die" vs "first to graduate". Context resolves. | |
| 'off': (0, 0, 0, 0, 0), # override: was -5. Directional/spatial. "Paid off" ≠ negative. | |
| 'stopping': (0, 5, 0, 0, 0), # override: was -5. Neutral action. "Without stopping" = continuous. | |
| 'debt': (-10, 5, -10, 5, 20), # override: was -15. High G (financial weight) but less V. "Paid off debt" = relief. | |
| 'crying': (-15, 15, -10, 5, -5), # override: was -25. "Without crying" = achievement. Less negative V. | |
| 'mile': (0, 5, 0, 0, 5), # override: was +10. Distance measurement. Neutral. | |
| 'ran': (0, 15, 5, 5, 5), # override: was +5. Movement verb. Could be running FROM or TO. Context resolves. | |
| 'finally': (15, -10, 15, -10, 10), # override: was +5. Wall breaker. Pressure RELEASE. Relief + achievement. | |
| 'groceries': (0, 0, 0, 0, 15), # override: was G=5. Food = human need = high gravity. | |
| 'came': (5, 5, 5, 0, 5), # "came to my birthday" = showed up = positive. | |
| 'tough': (-5, 10, 10, 0, 10), # was -20. "Tough" = strong/resilient. 79% positive. | |
| 'problems': (-10, 10, -5, 5, 10), # was -44. "No problems", "solved it". 63% positive. | |
| 'trip': (5, 10, 5, 0, 10), # was -24. "Amazing trip" vs "tripped". 64% positive. | |
| 'remember': (5, 5, 5, 0, 10), # was -23. "Remember" = connection. 68% positive. | |
| 'interview': (0, 10, 0, 5, 10), # was -24. Neutral event. 66% positive. | |
| 'far': (0, 5, 0, 0, 5), # was -24. "So far so good". 66% positive. | |
| 'distance': (0, 5, 0, 0, 5), # was -62. Neutral measurement. 50% each. | |
| 'low': (-10, 5, -10, 0, 5), # was -52. "Low" can be "low key". 58% positive. | |
| 'stress': (-15, 15, -10, 10, 10), # was -52. 50% each. Near neutral with slight neg lean. | |
| 'fall': (-10, 15, -10, 5, 10), # was -52. "Fall in love" vs "fall down". 53% positive. | |
| 'loss': (-25, 10, -15, 10, 15), # was -60. Still negative but less extreme. 42% positive. | |
| 'public': (0, 10, 0, 0, 10), # override: was +28. Neutral location, not positive | |
| 'office': (0, 5, 0, 5, 8), # neutral location | |
| 'odds': (-5, 10, -5, 5, 10), # override: was -10. "Against all odds" = neutral noun | |
| 'exist': (0, 0, 0, 0, 5), # override: was +39. State of being, neutral | |
| 'existence': (0, 0, 0, 0, 10), | |
| 'idea': (5, 5, 5, 0, 10), # override: was +50. Neutral noun with some G | |
| 'class': (0, 5, 0, 0, 10), # override: was +34. Group of people, neutral noun | |
| 'baby': (10, 10, 5, 0, 25), # override: was 0. Relationship noun, positive G | |
| 'stepdad': (0, 5, 0, 0, 30), # relationship noun, neutral V, high G | |
| 'stepfather': (0, 5, 0, 0, 30), | |
| 'stepmom': (0, 5, 0, 0, 30), | |
| 'stepmother': (0, 5, 0, 0, 30), | |
| 'treats': (-10, 10, 10, 5, 5), # behavioral verb, slightly negative (implies judgment) | |
| 'punishing': (-30, 20, 30, 10, -15), # power verb, punisher has D | |
| 'answered': (5, 5, 5, 0, 5), # neutral action | |
| # ── Liquid word V-neutralization: high G, near-zero V ── | |
| # These words have strong MASS (gravity) but their polarity comes from context. | |
| # "kick" = violence OR winning goal. "kill" = murder OR slang for dominate. | |
| # Pinning V kills the context resolution. Keep A/G, zero V. | |
| 'kick': (-15, 40, 5, 5, 20), # override: was V=-127. Lean negative but context can flip. | |
| 'kicked': (-15, 40, 5, 5, 20), | |
| 'kicking': (-15, 40, 5, 5, 20), | |
| 'kill': (-40, 40, 10, 10, 25), # override: was V=-127. Still negative lean -- killing is bad. But "killed it" can override. | |
| 'killed': (-40, 40, 10, 10, 25), | |
| 'killing': (-40, 40, 10, 10, 25), | |
| 'kills': (-40, 40, 10, 10, 25), | |
| 'shot': (-20, 35, -5, 10, 20), # "Got shot" = bad (majority case). "Great shot" = context overrides. | |
| 'shots': (0, 35, 5, 10, 20), | |
| 'poor': (-15, 5, -15, 5, 20), # override: was V=-127. "Poor" = pity or poverty. Context resolves. | |
| 'blow': (0, 30, 5, 5, 15), # override: was V=-42. "Blew my mind" vs "blew up in my face". | |
| 'blew': (0, 30, 5, 5, 15), | |
| 'burn': (-10, 25, 5, 5, 15), # override: was V=-79. "Sick burn" vs "burned down". | |
| 'burned': (-10, 25, 5, 5, 15), | |
| 'burning': (-10, 25, 5, 5, 15), | |
| 'fire': (10, 35, 10, 5, 20), # "Thats fire" = slang positive. "Fire" as noun = neutral/positive energy. | |
| 'fired': (-25, 30, -15, 10, 20), # "Got fired" = negative. Verb form leans negative. | |
| 'crash': (-10, 30, -5, 10, 15), # override: was V=-67. "Crashed at his place" vs "car crashed". | |
| 'crashed': (-10, 30, -5, 10, 15), | |
| 'drop': (-5, 20, 5, 5, 10), # override: was V=-77. "Beat dropped" vs "dropped me". | |
| 'dropped': (-5, 20, 5, 5, 10), | |
| 'slam': (0, 35, 10, 5, 15), # "Slam dunk" vs "slammed the door". High A. | |
| 'slammed': (0, 35, 10, 5, 15), | |
| 'snap': (-5, 25, 5, 5, 10), # override: was V=-30. "Snapped at me" vs "snap out of it". | |
| 'snapped': (-5, 25, 5, 5, 10), | |
| 'strike': (0, 30, 10, 5, 15), # "Struck gold" vs "struck me". | |
| 'struck': (0, 30, 10, 5, 15), | |
| 'nail': (0, 15, 5, 0, 10), # "Nailed it" vs "stepped on a nail". | |
| 'nailed': (0, 15, 5, 0, 10), | |
| 'scream': (-15, 50, -5, 10, 15), # slight neg lean. "Screamed at me" > "scream of joy" in frequency. | |
| 'screamed': (-15, 50, -5, 10, 15), | |
| 'screaming': (-15, 50, -5, 10, 15), | |
| 'screams': (-15, 50, -5, 10, 15), | |
| 'feeding': (5, 10, 5, 0, 10), # slight pos lean. "Feeding baby" most common usage. | |
| 'impact': (-10, 20, 5, 5, 15), # slight neg lean. "Impact" alone = collision. Context overrides. | |
| 'noisy': (-10, 30, -5, 5, 5), # override: was V=-127. Annoying, not devastating. | |
| 'false': (-20, 15, -10, 5, -5), # override: was V=-127. Adjective, not catastrophe. | |
| 'shark': (0, 25, 15, 5, 15), # override: was V=-127. Shark = predator OR investor. Liquid. | |
| 'rat': (-10, 15, -5, 5, 5), # override: was V=-127. Rat = snitch OR animal. Liquid. | |
| 'roach': (-15, 15, -10, 5, 5), # override: was V=-127. Pest but not devastating. | |
| 'slap': (-10, 35, 10, 5, 10), # override: was V=-127. "Slap" = violence OR "that slaps" = great. | |
| 'bipolar': (-10, 15, -10, 5, 20), # override: was V=-127. Clinical term, not emotional extreme. | |
| 'poison': (-20, 20, -10, 10, 15), # override: was V=-127. "Toxic" but not max negative. | |
| 'cringe': (-15, 20, -10, 5, 5), # override: was V=-127. Embarrassing, not devastating. | |
| # ── Novel stress test round 2 ── | |
| 'party': (5, 10, 5, 0, 15), # override: was V=+10. Event noun, context resolves. "Nobody at my party" ≠ positive. | |
| 'test': (0, 10, 0, 5, 10), # Neutral evaluation. "Test came back" = waiting for result. | |
| 'negative': (-5, 5, -5, 5, 5), # override: was V=-25. Medical "negative" = GOOD. Liquid word. | |
| 'waitlisted': (-15, 10, -15, 10, 10), # Rejection-adjacent. Limbo. Not accepted. | |
| 'towed': (-25, 15, -20, 15, -10), # Property taken by force. | |
| 'slept': (5, -10, 5, 0, 5), # Neutral action. "Slept well" = positive. Context resolves. | |
| 'eaten': (5, 0, 5, 0, 5), # Neutral action. "Havent eaten" = deprivation from absence scope. | |
| # ── Novel stress test round 3 ── | |
| 'keep': (0, 5, 5, 0, 5), # override: was +28. Continuity operator. "Keep trying" OR "keep failing". Context resolves. | |
| 'keeping': (0, 5, 5, 0, 5), | |
| 'kept': (0, 5, 5, 0, 5), | |
| 'sell': (-10, 5, -5, 5, 5), # Giving up possession. Slight negative (loss of ownership). | |
| 'selling': (-10, 5, -5, 5, 5), | |
| 'sold': (-10, 5, -5, 5, 5), | |
| 'brought': (10, 5, 10, 0, 5), # "Brought me X" = delivered/gave. Act of service. Slight positive. | |
| 'bring': (5, 5, 5, 0, 5), | |
| 'shoulder': (5, -5, 5, 0, 10), # "Cry on my shoulder" = support/comfort. Slight positive. | |
| # ── Temporal/duration words: these amplify the DURATION of surrounding emotion ── | |
| # "Long painful" = pain lasted longer. "Brief joy" = joy was fleeting. | |
| # These are context-dependent -- their V comes from what they modify. | |
| 'long': (-5, 5, 0, 0, 5), # duration extender. Slight neg lean (long wait, long day). | |
| 'dragged': (-15, -5, -10, 0, -5), # "dragged on" = lasted too long = negative duration | |
| 'dragging': (-15, -5, -10, 0, -5), | |
| 'endless': (-15, 10, -10, 5, -5), # override: was -15. Duration amplifier, slight neg. | |
| 'prolonged': (-10, 5, -5, 0, -5), | |
| 'lingering': (-5, 5, -5, 0, 5), # could be positive (lingering kiss) or negative (lingering pain) | |
| 'lasting': (5, 0, 5, 0, 5), # "lasting impact" = enduring, slight positive | |
| 'brief': (0, -5, 0, 0, -5), # short duration, reduces impact | |
| 'short': (0, -5, 0, 0, -5), # duration reducer | |
| 'fleeting': (-5, -5, -5, 0, -5), # impermanent, can be bittersweet | |
| 'momentary': (0, -5, 0, 0, -5), | |
| 'instant': (0, 10, 0, 5, 0), # speed, not emotion | |
| 'sudden': (-5, 30, -5, 10, 0), # surprise/shock timing | |
| 'abrupt': (-10, 20, -10, 5, -5), # jarring timing | |
| 'quickly': (0, 10, 5, 5, 0), # speed | |
| 'rapid': (0, 15, 0, 5, 0), | |
| 'rushed': (-10, 15, -10, 10, -5), # too fast = negative | |
| 'hasty': (-10, 10, -10, 5, -5), | |
| 'repetitive': (-15, -5, -10, 0, -5), | |
| 'monotonous': (-20, -10, -10, 0, -5), | |
| 'fast': (0, 20, 5, 5, 0), # override: was +62! Speed, not emotion. | |
| # ── Critique/quality words ── | |
| 'formulaic': (-25, 5, -10, 0, -10), | |
| 'wooden': (-30, -10, -15, 0, -10), | |
| 'lifeless': (-35, -15, -20, 0, -15), | |
| 'lackluster': (-25, 5, -10, 0, -10), | |
| 'overwrought': (-20, 15, -10, 0, -5), | |
| 'muddled': (-20, 10, -15, 0, -10), | |
| 'plodding': (-25, -10, -10, 0, -10), | |
| 'derivative': (-20, 5, -10, 0, -10), | |
| 'nuanced': (20, 5, 10, 0, 10), | |
| 'mesmerizing': (35, 15, 15, 0, 15), | |
| 'riveting': (35, 25, 15, 0, 15), | |
| 'captivating': (30, 15, 10, 0, 12), | |
| 'gripping': (30, 20, 10, 0, 12), | |
| 'superb': (40, 10, 15, 0, 15), | |
| 'exquisite': (35, 5, 10, 0, 15), | |
| 'mediocre': (-20, -5, -10, 0, -10), | |
| 'forgettable': (-20, -10, -10, 0, -10), | |
| 'predictable': (-15, -5, -10, 0, -5), | |
| 'cliche': (-20, 5, -10, 0, -10), | |
| 'contrived': (-25, 5, -15, 0, -10), | |
| 'pretentious': (-25, 10, 10, 0, -10), | |
| # ── Topic/genre nouns: these are SUBJECTS, not assessments ── | |
| # "A terrible comedy" -- comedy is the topic, terrible is the assessment. | |
| # Topic words should be near-neutral V with appropriate G (mass/importance). | |
| 'comedy': (5, 10, 5, 0, 15), # override: was +80! Genre, not emotion. | |
| 'horror': (-5, 15, 0, 5, 15), # override: was -114! Genre, not terror. | |
| 'drama': (0, 10, 0, 0, 15), # override: was -18. | |
| 'action': (0, 15, 5, 5, 10), # override: was +58. Activity type. | |
| 'adventure': (5, 10, 5, 0, 10), # override: was +50. | |
| 'crime': (-10, 10, -5, 5, 15), # override: was -89. Topic, not crime happening. | |
| 'war': (-10, 15, -5, 5, 20), # override: was -77. Topic, not being in war. | |
| 'basketball': (0, 10, 0, 0, 10), # override: was +32. Sport, not emotion. | |
| 'baseball': (0, 10, 0, 0, 10), # override: was +35. | |
| 'football': (0, 10, 0, 0, 10), # override: was +56. | |
| 'soccer': (0, 10, 0, 0, 10), # override: was +43. | |
| 'theater': (0, 5, 0, 0, 10), # override: was +58. Venue, not emotion. | |
| 'theatre': (0, 5, 0, 0, 10), | |
| 'movies': (0, 5, 0, 0, 10), # override: was +50. | |
| 'movie': (0, 5, 0, 0, 10), | |
| 'acting': (0, 5, 0, 0, 10), # override: was +43. Skill, not emotion. | |
| 'scenery': (5, 0, 0, 0, 10), # override: was +55. Visual setting. | |
| 'director': (0, 5, 5, 0, 10), # override: was +32. Role, not emotion. | |
| 'character': (0, 5, 0, 0, 10), # override: was +35. Story element. | |
| # ── SST-2 vocabulary mining: words causing systematic errors ── | |
| 'humor': (5, 10, 5, 0, 10), # override: was +50. Topic noun, not emotional. | |
| 'pretty': (0, 5, 0, 0, 5), # override: was +50. "Pretty boring" = amplifier. "Pretty girl" = positive. Liquid. | |
| 'special': (10, 5, 5, 0, 10), # override: was +50 then +5. "Special friend" = positive. "Nothing special" = context. | |
| 'itself': (0, 0, 0, 0, 0), # override: was +28. Pronoun. Zero force. | |
| 'experience': (0, 5, 0, 0, 10), # override: was +29. Topic noun. | |
| 'sense': (0, 5, 0, 0, 5), # override: was +29. "Makes no sense" vs "sense of humor". Liquid. | |
| 'familiar': (0, 5, 0, 0, 5), # override: was +29. "Too familiar" = derivative. Context resolves. | |
| 'often': (0, 0, 0, 0, 0), # override: was +39. Frequency word. Zero force. | |
| 'big': (0, 10, 5, 0, 10), # override: was +32. Size descriptor. | |
| 'new': (0, 5, 0, 0, 5), # override: was +29. Temporal/novelty. Near neutral. | |
| 'young': (0, 5, 0, 0, 5), # override: was +29. Age descriptor. | |
| 'emotional': (0, 15, 0, 0, 10), # override: was +29. Describes intensity, not polarity. | |
| 'fine': (-5, -5, 0, 0, 5), # override: was -32 then +5. "Im fine" = mask. "Just fine" = adequate. Slight neg lean. | |
| 'minor': (0, 5, 0, 0, 5), # override: was -59. "A minor masterpiece" ≠ negative. Size descriptor. | |
| 'revenge': (-10, 15, 5, 5, 15), # override: was -77. Topic noun in reviews. | |
| # ── Gemini consensus fixes: words causing engine disagreement ── | |
| 'human': (0, 5, 0, 0, 10), # override: was +58. Species noun, not emotional. | |
| 'greatly': (0, 10, 0, 0, 0), # override: was +56. Amplifier, not positive. | |
| 'choosing': (0, 5, 5, 0, 5), # override: was +48. Action verb. "I'll be choosing" = control. | |
| 'training': (0, 10, 5, 0, 5), # override: was +48. Activity noun. | |
| 'station': (0, 5, 0, 0, 5), # override: was +50. Location noun. | |
| 'treasure': (5, 10, 5, 0, 15), # override: was +50. Object noun with gravity. | |
| 'nest': (0, 5, 0, 0, 5), # override: was +42. Location noun. | |
| 'constant': (0, 5, 0, 0, 5), # override: was +51. Frequency descriptor. | |
| 'directly': (0, 5, 5, 0, 0), # override: was +55. Manner adverb. | |
| 'useful': (10, 5, 5, 0, 5), # override: was +58. Mild positive utility. | |
| 'everybody': (0, 5, 0, 0, 10), # override: was +42. Scope word like everything. AMPLIFIER. | |
| 'offer': (5, 5, 5, 0, 5), # override: was +56. Neutral action. | |
| 'offered': (5, 5, 5, 0, 5), | |
| 'trust': (15, 5, 10, 0, 15), # override: was +106! Way too high. "Trust me" vs "I don't trust you." | |
| 'okay': (0, -5, 0, 0, 0), # override: was +28. "I'm okay" = mask. "Okay but" = hedge. Near neutral. | |
| 'plan': (0, 5, 5, 0, 5), # override: was +51. Action noun. | |
| 'terminal': (0, 5, 0, 0, 5), # override: was -50. Computer terminal, not death. | |
| 'opposite': (0, 5, 0, 0, 0), # override: was -62. Direction/contrast word. | |
| 'argue': (-5, 15, 5, 5, 5), # override: was -42. Debate verb. Mild negative lean. | |
| 'harder': (-20, 10, -10, 5, -5), # override: was -52. Difficulty. | |
| # ── Internet/Twitch cultural tokens (dual-state: surface ≠ meaning) ── | |
| # These are cultural compression artifacts, not standard words. | |
| # Engine reads SURFACE. Model should read UNDERLYING. | |
| 'gg': (-10, 5, -5, 0, -5), # "good game" → culturally: resignation/hyperbolic defeat | |
| 'rip': (-15, 10, -10, 5, -5), # override: was -114! Culturally: "oh well that sucks" not actual death | |
| 'fr': (0, 10, 5, 0, 0), # "for real" = emphasis/agreement. Neutral amplifier. | |
| 'lol': (5, 10, 5, 0, 5), # override: was +39. Often nervous/deflection/padding, not genuine joy. | |
| 'lmao': (10, 15, 10, 0, 5), # override: was +50. Amusement but often performative. | |
| 'lul': (5, 10, 5, 0, 5), # = lol. Twitch variant. | |
| # ── Informal contractions (map to their expanded forms) ── | |
| 'gonna': (0, 5, 5, 5, 0), # = going to. Forward intent. Slight urgency. | |
| 'wanna': (0, 10, 0, 5, 0), # = want to. Desire. Slight arousal. | |
| 'gotta': (0, 10, 0, 10, 0), # = got to. Obligation. Urgency. | |
| 'kinda': (0, 0, 0, 0, 0), # = kind of. Hedge. Zero force. | |
| 'tryna': (0, 10, 5, 5, 0), # = trying to. Effort. Slight arousal. | |
| 'imma': (0, 10, 10, 5, 0), # = I'm going to. Declaration. Slight D. | |
| 'finna': (0, 10, 10, 10, 0), # = fixing to / going to. Strong forward intent. | |
| 'lemme': (0, 5, 5, 5, 0), # = let me. Request for action. | |
| 'dunno': (0, 0, -5, 0, 0), # = don't know. Uncertainty. | |
| # ── Internet slang with emotional weight ── | |
| 'lowkey': (0, -5, 0, 0, 0), # understated. Dampener on what follows. | |
| 'highkey': (0, 10, 0, 0, 0), # amplified. Booster on what follows. | |
| 'deadass': (0, 10, 10, 0, 0), # = seriously, for real. Emphasis. | |
| 'sus': (-10, 10, -5, 5, -5), # suspicious. Mild negative. | |
| 'mid': (-15, 0, 0, 0, -5), # mediocre, underwhelming. Negative. | |
| 'bussin': (25, 15, 10, 0, 10), # = amazing, delicious. Strong positive. | |
| 'slay': (20, 15, 15, 0, 10), # = killed it, amazing. Positive. | |
| 'bet': (5, 5, 10, 0, 5), # = okay, agreed, for sure. Slight positive. | |
| 'based': (10, 10, 15, 0, 10), # = authentic, bold. Positive. | |
| 'cringe': (-20, 10, -10, 0, -10), # embarrassing, awkward. Negative. | |
| 'cope': (-15, 5, -10, 0, -10), # delusional self-comfort. Negative. | |
| 'ratio': (-10, 15, 15, 0, -5), # getting ratioed = dunked on. Negative for target. | |
| # ── Gemini+Claude consensus round 2 ── | |
| 'sort': (0, 5, 0, 0, 5), # override: was +37. "Sort of" = hedge. Neutral. | |
| 'convince': (0, 10, 5, 5, 5), # override: was +46. Neutral action. | |
| 'baked': (0, 5, 0, 0, 0), # override: was +31. Cooking OR slang. Neutral. | |
| 'gas': (0, 5, 0, 0, 5), # override: was +28. Substance noun. Neutral. | |
| 'activities': (0, 5, 0, 0, 5), # override: was +35. Action noun. Neutral. | |
| 'knowledge': (5, 5, 5, 0, 10), # override: was +39. Information noun. Slight positive. | |
| 'released': (0, 10, 5, 5, 5), # override: was +35. Action verb. Context resolves. | |
| 'gang': (-10, 15, -5, 5, 15), # override: was -79. Group noun. "My gang" vs "gang violence." | |
| 'awfully': (0, 10, 0, 0, 0), # override: was -94! Amplifier. "Awfully nice" = very nice. | |
| 'bummed': (-15, 5, -10, 0, -5), # override: was -47. Mild disappointment. | |
| 'ugh': (-10, 10, -5, 0, -5), # override: was -42. Mild disgust/annoyance. | |
| 'shady': (-10, 10, -5, 5, -5), # override: was -40. Suspicious but could be playful. | |
| # ── Novel miss fixes cycle 11 ── | |
| 'highway': (0, 5, 0, 0, 5), # override: was +29. Location noun. Neutral. | |
| 'away': (-10, 5, -5, 0, -5), # override: was -15. Slight neg lean. "Far away" = distance. "Went away" = departure. | |
| 'relationship': (10, 5, 5, 0, 25), # override: was +37. Still slight positive (relationships have value) but less extreme. | |
| # ── SST-2 round 2: next batch of over-weighted words ── | |
| 'like': (5, 0, 0, 0, 0), # override: was +15. FILLER/comparison word. "Like a dream" ≠ positive. | |
| 'watch': (0, 5, 0, 0, 5), # override: was +50. Action verb. "Watch a movie" ≠ positive. | |
| 'focus': (0, 5, 5, 0, 5), # override: was +32. Attention verb. Neutral. | |
| 'full': (0, 5, 0, 0, 5), # override: was +28. Quantity descriptor. "Full of" ≠ positive. | |
| 'fun': (15, 15, 10, 0, 5), # override: was +28. Still positive but less extreme. | |
| 'funny': (15, 15, 10, 0, 5), # override: was +28. Same. | |
| # Discovery verbs -- zero polarity, the OBJECT determines the emotion | |
| 'found': (0, 10, 5, 5, 5), # override: was -5. Context resolves. | |
| 'find': (0, 10, 5, 5, 5), | |
| 'discovered': (0, 10, 5, 5, 5), | |
| 'discover': (0, 10, 5, 5, 5), | |
| # ── Slurs/derogatory: these carry heavy negative force ── | |
| 'whore': (-60, 30, -30, 10, -20), | |
| 'slut': (-55, 25, -25, 10, -18), | |
| 'bitch': (-50, 30, -20, 10, -15), # can be reclaimed but default = slur | |
| 'hoe': (-45, 20, -20, 5, -12), | |
| 'skank': (-50, 20, -25, 5, -15), | |
| # Bookend compound command tokens (collapsed from "shut [spice] up" etc.) | |
| 'shutup': (-40, 40, 40, 15, -10), # silence command. D+40 = controller has power. V negative. | |
| 'getout': (-45, 50, 45, 20, -15), # expulsion command. Stronger than shutup. | |
| 'fuckoff': (-50, 50, 40, 15, -15), # rejection command. Strong negative. | |
| 'backoff': (-30, 35, 30, 10, -10), # distance command. Less aggressive. | |
| 'pissoff': (-40, 40, 35, 10, -12), # rejection. Similar to fuckoff but milder. | |
| # ── Structural edge case fixes ── | |
| 'fought': (-15, 30, 15, 10, 15), # override: was -94! "Fought FOR me" = advocated. "Fought me" = violence. Liquid. | |
| 'fighting': (-15, 30, 15, 10, 15), | |
| 'survived': (30, 10, 25, 0, 20), # override: was +10. Surviving = overcoming death. Strongly positive. | |
| 'survival': (25, 10, 20, 0, 20), | |
| 'surgery': (-10, 20, -10, 20, 25), # override: was -25. Medical procedure, high G. Not inherently negative. | |
| 'benign': (35, -15, 20, -10, 15), # override: was +25. "Benign" = NOT dangerous. Relief. Stronger positive. | |
| 'charges': (-10, 10, -10, 10, 15), # override: was -20. Legal noun, slight neg lean but context resolves. | |
| 'tumor': (-20, 15, -15, 15, 25), # override: was -40. Medical noun. High G. Less extreme V. | |
| } | |
| EMOTIONAL_VOCABULARY.update(_VOCAB_FIXES) | |
| # ══════════════════════════════════════════════════════════════════════ | |
| # SESSION 2026-04-03: Targeted V5.5 fixes. Original vocab + surgical overrides. | |
| # ══════════════════════════════════════════════════════════════════════ | |
| _V55_FIXES = { | |
| 'myself':(0,0,0,0,5), 'yourself':(0,0,0,0,5), 'himself':(0,0,0,0,5), | |
| 'herself':(0,0,0,0,5), 'themselves':(0,0,0,0,5), | |
| 'traffic':(0,0,0,0,0), 'weather':(0,0,0,0,0), 'homework':(0,3,0,0,0), | |
| 'weekend':(5,5,0,0,3), 'fruit':(3,0,0,0,0), 'cream':(3,0,0,0,0), | |
| 'tax':(-5,5,-5,0,5), 'humid':(-5,5,-5,0,3), 'hasnt':(0,0,0,0,0), | |
| 'hardly':(0,0,-3,0,0), 'aged':(0,0,-3,0,5), 'spit':(-15,15,10,5,5), | |
| 'removed':(-10,5,-5,5,10), 'blast':(0,15,5,0,5), 'snake':(-10,15,10,5,10), | |
| 'spider':(-5,10,0,0,5), 'washed':(0,5,0,0,3), 'birth':(0,15,0,5,35), | |
| 'only':(0,0,-3,0,0), 'just':(0,0,-3,0,0), 'merely':(0,0,-5,0,0), | |
| 'simply':(0,0,0,0,0), 'barely':(-5,5,-5,5,3), 'almost':(0,5,0,5,5), | |
| 'begging':(-10,15,-25,15,12), | |
| 'kill':(-40,40,10,10,25), 'killed':(-40,40,10,10,25), 'killing':(-40,40,10,10,25), | |
| 'suicide':(-80,30,-20,20,40), 'suicidal':(-70,25,-20,15,35), | |
| 'pregnant':(0,15,0,10,40), 'adopted':(0,5,0,0,25), 'diagnosed':(0,15,-5,15,40), | |
| 'deployed':(0,15,0,15,35), 'overdosed':(-20,20,-20,20,35), | |
| 'relapsed':(-40,15,-20,10,35), 'relapse':(-40,15,-20,10,35), 'sober':(10,-5,15,0,20), | |
| 'whore':(-20,25,-10,5,25), 'slut':(-15,20,-10,5,20), 'bitch':(-10,25,10,5,20), | |
| 'hoe':(-10,15,-5,0,15), 'bastard':(-10,20,5,5,15), 'asshole':(-20,20,10,5,10), | |
| 'dick':(-15,15,5,0,10), 'prick':(-20,15,5,0,10), 'cunt':(-25,25,-10,5,20), | |
| 'jump':(0,3,0,0,0), 'want':(0,5,0,5,3), 'born':(0,10,0,0,30), | |
| 'living':(0,5,0,0,20), 'alive':(0,5,0,0,15), 'live':(0,5,0,0,15), | |
| 'life':(0,0,0,0,40), 'pills':(-10,10,-10,15,20), 'point':(0,0,0,0,5), | |
| 'deserve':(0,0,0,0,10), 'disappear':(-15,5,-15,0,20), 'disappeared':(-15,5,-15,0,20), | |
| 'lost':(-20,5,-15,0,20), 'lol':(15,15,5,0,-5), 'nice':(15,0,5,0,3), | |
| 'crying':(-25,15,-15,5,-10), 'best':(25,10,15,0,10), 'easier':(15,-5,5,0,5), | |
| 'trusted':(5,0,5,0,15), 'terrible':(-30,10,-15,5,-8), 'horrible':(-30,10,-15,5,-8), | |
| 'awful':(-25,10,-10,5,-5), | |
| 'comeon':(0,10,-5,10,5), 'killedit':(30,20,25,0,10), | |
| 'goeshard':(25,20,20,0,8), 'closedon':(20,10,15,0,15), | |
| # ── V1 words too extreme for FORCE_SCALE=1.4 ── | |
| 'hurt':(-25,15,-15,10,-10), 'hurts':(-25,15,-15,10,-10), | |
| 'pain':(-30,20,-25,15,-15), 'ache':(-15,10,-10,5,-5), | |
| 'sore':(-15,10,-10,5,-5), | |
| 'sad':(-25,10,-10,0,-10), 'sadness':(-30,10,-15,0,-12), | |
| 'angry':(-25,30,15,10,10), 'anger':(-25,30,15,10,10), | |
| 'scared':(-25,25,-20,15,-10), 'fear':(-30,25,-25,15,-12), | |
| 'worried':(-20,15,-10,10,-8), 'anxious':(-25,20,-15,15,-10), | |
| 'depressed':(-35,5,-25,5,-20), 'lonely':(-25,5,-15,0,-15), | |
| 'miserable':(-35,10,-20,5,-15), 'hopeless':(-35,5,-30,5,-20), | |
| 'devastated':(-35,15,-25,10,-20), 'heartbroken':(-35,15,-20,10,-18), | |
| 'furious':(-30,35,20,15,10), 'livid':(-30,35,20,15,10), | |
| 'terrified':(-30,30,-25,20,-15), 'horrified':(-30,25,-20,15,-12), | |
| 'disgusted':(-25,20,10,5,-8), 'ashamed':(-25,10,-20,5,-15), | |
| 'embarrassed':(-20,15,-15,5,-10), 'frustrated':(-20,20,-10,10,-8), | |
| 'annoyed':(-15,10,-5,5,-5), 'irritated':(-15,10,-5,5,-5), | |
| 'jealous':(-20,15,-10,5,-8), 'envious':(-20,10,-10,0,-8), | |
| 'guilty':(-25,10,-20,5,-15), 'regret':(-25,10,-15,5,-12), | |
| 'grief':(-35,10,-20,5,-20), 'mourning':(-30,5,-15,0,-18), | |
| 'panicked':(-30,35,-25,25,-15), 'terror':(-35,35,-30,25,-18), | |
| 'hate':(-35,30,10,5,10), 'hatred':(-35,25,10,5,12), | |
| 'love':(40,10,10,0,20), 'loved':(35,5,10,0,18), | |
| 'happy':(30,10,10,0,10), 'happiness':(35,10,10,0,12), | |
| 'joy':(35,15,10,0,12), 'joyful':(30,15,10,0,10), | |
| 'excited':(30,25,10,5,8), 'thrilled':(30,25,10,5,10), | |
| 'grateful':(30,5,10,0,15), 'thankful':(25,5,10,0,12), | |
| 'proud':(30,10,20,0,15), 'confident':(25,15,20,0,10), | |
| 'peaceful':(20,-10,10,0,10), 'calm':(15,-10,10,0,8), | |
| 'hopeful':(25,10,10,5,10), 'optimistic':(25,10,10,0,10), | |
| 'amused':(20,15,5,0,5), 'entertained':(20,10,5,0,5), | |
| 'inspired':(25,15,15,0,10), 'motivated':(20,15,15,5,8), | |
| 'relieved':(25,-5,10,-5,10), | |
| 'wonderful':(35,15,10,0,12), 'amazing':(35,20,10,0,10), | |
| 'awesome':(30,20,10,0,8), 'fantastic':(30,20,10,0,10), | |
| 'beautiful':(30,5,10,0,12), 'gorgeous':(25,10,10,0,10), | |
| 'brilliant':(30,15,15,0,10), 'excellent':(25,10,10,0,8), | |
| 'perfect':(30,10,15,0,10), 'lovely':(25,5,10,0,10), | |
| 'delightful':(25,10,10,0,8), 'pleasant':(20,5,5,0,5), | |
| 'sweet':(20,5,5,0,8), | |
| 'worthless':(-35,10,-35,5,-20), 'useless':(-25,5,-20,0,-12), | |
| 'nothing':(-30,-5,-20,5,-15), | |
| 'death':(-35,25,-25,15,-18), 'die':(-35,35,-25,25,-18), | |
| 'dead':(-35,20,-25,10,-15), | |
| 'agony':(-35,30,-25,15,-18), 'anguish':(-35,25,-25,10,-18), | |
| 'despair':(-35,10,-30,5,-20), 'suffering':(-30,15,-20,10,-15), | |
| 'abuse':(-35,25,-20,15,-18), 'torture':(-35,30,-25,15,-18), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_V55_FIXES) | |
| # ── New words added 2026-04-03 (original forces preserved) ── | |
| _NEW_WORDS = { | |
| 'about' : ( +0, +1, +0, +0, -8), | |
| 'above' : ( +0, +0, +0, +0, -5), | |
| 'acted' : ( +2, +1, +0, +0, -5), | |
| 'actor' : ( +0, +0, +0, +0, +2), | |
| 'actors' : ( +0, +0, +0, +0, +2), | |
| 'adaptation' : ( +0, +0, +0, +0, +3), | |
| 'ads' : ( +0, +0, +0, +0, +2), | |
| 'adults' : ( -1, +0, +0, +0, +3), | |
| 'after' : ( +0, +0, +0, +0, -8), | |
| 'aint' : ( +0, +0, +0, +0, +0), | |
| 'alien' : ( -3, +5, -1, +0, -1), | |
| 'aliens' : ( -1, +5, +0, +0, +0), | |
| 'all' : ( +8, +5, +2, +0, +8), | |
| 'also' : ( +0, +0, +0, +0, -8), | |
| 'although' : ( +0, +0, +0, +0, +0), | |
| 'american' : ( +0, +0, +0, +0, +0), | |
| 'among' : ( +0, +0, +0, +0, +0), | |
| 'amusing' : ( +12, +9, +3, +0, -5), | |
| 'and' : ( +0, +0, +0, +0, +0), | |
| 'anyone' : ( +0, +0, +0, +0, +0), | |
| 'apex' : ( +1, +1, +0, +0, +5), | |
| 'are' : ( +0, +0, +0, +0, -5), | |
| 'arent' : ( +0, +0, +0, +0, +0), | |
| 'back' : ( +1, +1, +0, +0, -1), | |
| 'ball' : ( +0, +0, +0, +0, +6), | |
| 'ban' : ( +0, +0, +0, +0, +6), | |
| 'banned' : ( +0, +0, +0, +0, +2), | |
| 'because' : ( +0, +0, +0, +0, +0), | |
| 'bigsad' : ( +0, +0, +0, +0, +0), | |
| 'bits' : ( +0, +0, +0, +0, +4), | |
| 'bleedpurplehd' : ( +0, +0, +0, +0, +0), | |
| 'blend' : ( +0, +0, +0, +0, +2), | |
| 'both' : ( +0, +0, +0, +0, -8), | |
| 'boy' : ( +0, +1, +0, +0, +3), | |
| 'bros' : ( +0, +0, +0, +0, +0), | |
| 'btw' : ( +0, +0, +0, +0, +0), | |
| 'bud' : ( +1, +1, +0, +0, +3), | |
| 'but' : ( +0, +0, +0, +0, -8), | |
| 'buy' : ( +5, +3, +1, +0, -2), | |
| 'bye' : ( +0, +0, +0, +0, +7), | |
| 'cam' : ( +0, +0, +0, +0, +7), | |
| 'camera' : ( +0, +0, +0, +0, +9), | |
| 'can' : ( +0, +0, +0, +0, +3), | |
| 'case' : ( +0, +0, +0, +0, +4), | |
| 'caseoh' : ( +0, +0, +0, +0, +0), | |
| 'caseohdailydoodledance': ( +0, +0, +0, +0, +0), | |
| 'caseohdailydoodlestwerk': ( +0, +0, +0, +0, +0), | |
| 'casey' : ( +0, +0, +0, +0, +0), | |
| 'cast' : ( +0, +0, +0, +0, +1), | |
| 'cause' : ( +0, +0, +0, +0, +1), | |
| 'channel' : ( +0, +0, +0, +0, +3), | |
| 'characters' : ( +7, +3, +2, +0, +4), | |
| 'charm' : ( +12, +3, +3, +0, +0), | |
| 'charming' : ( +12, +4, +3, +0, -5), | |
| 'chris' : ( +0, +0, +0, +0, +0), | |
| 'cinema' : ( +0, +0, +0, +0, +7), | |
| 'clumsy' : ( -12, +9, -3, +0, -5), | |
| 'come' : ( +0, +0, +0, +0, -4), | |
| 'comes' : ( +0, +0, +0, +0, -4), | |
| 'comet' : ( +0, +0, +0, +0, +4), | |
| 'completely' : ( +11, +5, +3, +0, -5), | |
| 'consecutive' : ( -4, +4, -2, +0, -8), | |
| 'costumes' : ( -3, +1, +0, +0, +4), | |
| 'cult' : ( +1, +1, +0, +0, +7), | |
| 'currently' : ( +0, +0, +0, +0, -8), | |
| 'dark' : ( -5, +6, -2, +0, -4), | |
| 'david' : ( +0, +0, +0, +0, +6), | |
| 'dawg' : ( +0, +0, +0, +0, +0), | |
| 'deftly' : ( +5, +2, +1, +0, -5), | |
| 'delete' : ( -1, +0, +0, +0, -3), | |
| 'delivers' : ( +0, +0, +0, +0, -4), | |
| 'depth' : ( +0, +2, +0, +0, +4), | |
| 'did' : ( +0, +0, +0, +0, -5), | |
| 'diesel' : ( +0, +0, +0, +0, +9), | |
| 'dinodance' : ( +0, +0, +0, +0, +0), | |
| 'directed' : ( +1, +0, +0, +0, -3), | |
| 'documentary' : ( +0, +3, +0, +0, -3), | |
| 'dude' : ( +0, +0, +0, +0, +4), | |
| 'eat' : ( +1, +0, +0, +0, -3), | |
| 'effects' : ( -2, +1, +0, +0, +1), | |
| 'either' : ( +0, +0, +0, +0, -8), | |
| 'energetic' : ( +5, +4, +1, +0, -5), | |
| 'engage' : ( +0, +0, +0, +0, -4), | |
| 'ensemble' : ( +0, +0, +0, +0, +4), | |
| 'entertainment' : ( +12, +0, +3, +0, +6), | |
| 'entirely' : ( +7, +7, +2, +0, -5), | |
| 'exactly' : ( +5, +2, +1, +0, -5), | |
| 'exquisitely' : ( +11, +5, +3, +0, -5), | |
| 'fans' : ( +1, +0, +0, +0, +0), | |
| 'feature' : ( +0, +1, +0, +0, +3), | |
| 'featuring' : ( +1, +4, +0, +0, -5), | |
| 'few' : ( +0, +0, +0, +0, -1), | |
| 'film' : ( +0, +0, +0, +0, +2), | |
| 'filmmaker' : ( +0, +0, +0, +0, +4), | |
| 'filmmakers' : ( +0, +0, +0, +0, +4), | |
| 'films' : ( +0, +0, +0, +0, +2), | |
| 'flick' : ( +0, +0, +0, +0, -2), | |
| 'following' : ( +1, +0, +0, +0, -4), | |
| 'for' : ( +0, +0, +0, +0, +0), | |
| 'force' : ( +0, +1, +0, +0, +0), | |
| 'form' : ( +0, +0, +0, +0, +1), | |
| 'french' : ( +0, +0, +0, +0, +1), | |
| 'from' : ( +0, +0, +0, +0, +0), | |
| 'genre' : ( +0, +0, +0, +0, +4), | |
| 'gentle' : ( +4, +6, +1, +0, -5), | |
| 'get' : ( +0, +1, +0, +0, -3), | |
| 'gets' : ( +0, +1, +0, +0, -3), | |
| 'given' : ( +0, +1, +0, +0, -2), | |
| 'goatemotey' : ( +0, +0, +0, +0, +0), | |
| 'god' : ( +0, +0, +0, +0, +6), | |
| 'goes' : ( +0, +0, +0, +0, -4), | |
| 'going' : ( +0, +0, +0, +0, -5), | |
| 'goldplz' : ( +0, +0, +0, +0, +0), | |
| 'goober' : ( +0, +0, +0, +0, +15), | |
| 'granny' : ( -3, +2, -1, +0, +10), | |
| 'guys' : ( +0, +0, +0, +0, +4), | |
| 'hacker' : ( -1, +5, +0, +0, +4), | |
| 'hacking' : ( +0, +0, +0, +0, -2), | |
| 'had' : ( +0, +1, +0, +0, -5), | |
| 'harry' : ( -1, +1, +0, +0, -5), | |
| 'has' : ( +0, +1, +0, +0, -4), | |
| 'heard' : ( +0, +0, +0, +0, -5), | |
| 'heavyhanded' : ( +0, +0, +0, +0, +0), | |
| 'hes' : ( +0, +0, +0, +0, +5), | |
| 'heyguys' : ( +0, +0, +0, +0, +0), | |
| 'high' : ( +1, +2, +0, +0, -2), | |
| 'him' : ( +0, +0, +0, +0, +0), | |
| 'his' : ( +0, +0, +0, +0, +0), | |
| 'hollywood' : ( -4, +2, -1, +0, +1), | |
| 'imaginative' : ( +11, +5, +3, +0, -5), | |
| 'imagine' : ( -5, +6, -2, +0, -3), | |
| 'into' : ( +0, +0, +0, +0, +0), | |
| 'intriguing' : ( +10, +5, +3, +0, -5), | |
| 'its' : ( +0, +0, +0, +0, +8), | |
| 'ive' : ( +0, +0, +0, +0, +0), | |
| 'jack' : ( +0, +0, +0, +0, +8), | |
| 'japanese' : ( +0, +0, +0, +0, +0), | |
| 'jebasted' : ( +0, +0, +0, +0, +0), | |
| 'jesus' : ( +0, +0, +0, +0, +2), | |
| 'jinxlul' : ( +0, +0, +0, +0, +0), | |
| 'jokes' : ( +10, +8, +3, +0, +2), | |
| 'journey' : ( +0, +0, +0, +0, +0), | |
| 'jynxzi' : ( +0, +0, +0, +0, +0), | |
| 'know' : ( +4, +4, +1, +0, -4), | |
| 'komodohype' : ( +0, +0, +0, +0, +0), | |
| 'latest' : ( +0, +1, +0, +0, -5), | |
| 'lee' : ( +0, +0, +0, +0, +6), | |
| 'lets' : ( +0, +0, +0, +0, +0), | |
| 'level' : ( +0, +1, +0, +0, -1), | |
| 'literally' : ( +0, +0, +0, +0, -8), | |
| 'lock' : ( -1, +0, +0, +0, +1), | |
| 'look' : ( +0, +1, +0, +0, -1), | |
| 'looking' : ( +0, +1, +0, +0, -2), | |
| 'looks' : ( +0, +1, +0, +0, -1), | |
| 'lot' : ( -1, +1, +0, +0, +0), | |
| 'maddie' : ( +0, +0, +0, +0, +0), | |
| 'manages' : ( +0, +0, +0, +0, -4), | |
| 'many' : ( +0, +0, +0, +0, -8), | |
| 'material' : ( +1, +1, +0, +0, -3), | |
| 'may' : ( +0, +0, +0, +0, +10), | |
| 'might' : ( -3, +17, -1, +0, +2), | |
| 'miller' : ( +0, +0, +0, +0, +9), | |
| 'minute' : ( +0, +1, +0, +0, +0), | |
| 'moments' : ( +1, +0, +0, +0, +4), | |
| 'mormon' : ( +0, +0, +0, +0, +0), | |
| 'most' : ( +0, +0, +0, +0, -8), | |
| 'mostly' : ( +0, +0, +0, +0, -5), | |
| 'move' : ( +0, +1, +0, +0, -3), | |
| 'much' : ( +3, +3, +0, +0, -6), | |
| 'mystery' : ( +3, +1, +0, +0, +9), | |
| 'narrative' : ( -1, +2, +0, +0, -4), | |
| 'not' : ( -15, +12, -7, +3, -8), | |
| 'notlikethis' : ( +0, +0, +0, +0, +0), | |
| 'now' : ( +0, +1, +0, +0, -6), | |
| 'occasionally' : ( +0, +0, +0, +0, -5), | |
| 'offers' : ( +0, +0, +0, +0, -1), | |
| 'open' : ( -2, +4, -1, +0, -5), | |
| 'opera' : ( +0, +0, +0, +0, +8), | |
| 'original' : ( +0, +4, +0, +0, -3), | |
| 'originality' : ( -9, +4, -2, +0, +1), | |
| 'other' : ( -6, +8, -3, +2, -8), | |
| 'our' : ( +0, +0, +0, +0, +0), | |
| 'overall' : ( +0, +0, +0, +0, +0), | |
| 'part' : ( +0, +0, +0, +0, +0), | |
| 'pay' : ( +1, +1, +0, +0, -1), | |
| 'peanut' : ( +1, +2, +0, +0, +7), | |
| 'performances' : ( +12, +1, +3, +0, +4), | |
| 'perhaps' : ( +0, +0, +0, +0, -5), | |
| 'pewpewpew' : ( +0, +0, +0, +0, +0), | |
| 'place' : ( +0, +0, +0, +0, +1), | |
| 'played' : ( +0, +0, +0, +0, -4), | |
| 'plot' : ( +0, +0, +0, +0, +2), | |
| 'pls' : ( +0, +0, +0, +0, +0), | |
| 'pogchamp' : ( +0, +0, +0, +0, +0), | |
| 'points' : ( +1, +0, +0, +0, +2), | |
| 'pool' : ( +0, +1, +0, +0, +4), | |
| 'potter' : ( +0, +0, +0, +0, -2), | |
| 'price' : ( +2, +1, +0, +0, +2), | |
| 'probably' : ( +0, +0, +0, +0, -8), | |
| 'production' : ( +0, +0, +0, +0, +5), | |
| 'psychological' : ( -5, +2, -1, +0, -5), | |
| 'quidditch' : ( +0, +0, +0, +0, +0), | |
| 'quirky' : ( -15, +7, -4, +0, -5), | |
| 'reality' : ( +3, +2, +0, +0, +3), | |
| 'redfield' : ( +0, +0, +0, +0, +0), | |
| 'religion' : ( +0, +0, +0, +0, +4), | |
| 'rentals' : ( +0, +0, +0, +0, +3), | |
| 'retro' : ( +1, +1, +0, +0, +2), | |
| 'rewind' : ( +0, +0, +0, +0, +0), | |
| 'romance' : ( +4, +3, +1, +0, +1), | |
| 'saying' : ( +0, +0, +0, +0, -2), | |
| 'scene' : ( -1, +0, +0, +0, +6), | |
| 'scenes' : ( -1, +0, +0, +0, +6), | |
| 'screen' : ( +0, +0, +0, +0, +2), | |
| 'script' : ( +0, +0, +0, +0, +2), | |
| 'second' : ( +0, +1, +0, +0, +1), | |
| 'seconds' : ( +0, +1, +0, +0, +3), | |
| 'seem' : ( +3, +2, +0, +0, -5), | |
| 'seemsgood' : ( +0, +0, +0, +0, +0), | |
| 'sentimentality' : ( -7, +9, -2, +0, +3), | |
| 'sequel' : ( +0, +0, +0, +0, +6), | |
| 'series' : ( +0, +0, +0, +0, +3), | |
| 'serious' : ( -2, +10, -1, +0, -8), | |
| 'shes' : ( +0, +0, +0, +0, +0), | |
| 'siptime' : ( +0, +0, +0, +0, +0), | |
| 'sitcom' : ( +0, +0, +0, +0, +7), | |
| 'skin' : ( +0, +0, +0, +0, +2), | |
| 'slop' : ( -1, +2, +0, +0, +1), | |
| 'some' : ( +3, +6, +0, +0, -8), | |
| 'soundtrack' : ( +0, +0, +0, +0, +10), | |
| 'sparked' : ( +0, +0, +0, +0, -4), | |
| 'spooky' : ( -11, +7, -5, +2, -8), | |
| 'star' : ( +1, +1, +0, +0, +1), | |
| 'steam' : ( +0, +0, +0, +0, -2), | |
| 'still' : ( -2, +5, -1, +0, -3), | |
| 'story' : ( -1, +1, +0, +0, +4), | |
| 'streak' : ( +0, +0, +0, +0, +1), | |
| 'stream' : ( +0, +0, +0, +0, +1), | |
| 'study' : ( +1, +0, +0, +0, +1), | |
| 'stuff' : ( +0, +1, +0, +0, +0), | |
| 'sub' : ( -2, +1, -1, +0, +6), | |
| 'subs' : ( -2, +1, -1, +0, +6), | |
| 'subscribed' : ( +0, +0, +0, +0, -4), | |
| 'subtember' : ( +0, +0, +0, +0, +0), | |
| 'such' : ( -1, +1, +0, +0, -8), | |
| 'surreal' : ( -1, +8, +0, +0, -5), | |
| 'suspense' : ( +12, +0, +3, +0, +7), | |
| 'takes' : ( +0, +0, +0, +0, -4), | |
| 'taking' : ( +0, +1, +0, +0, -4), | |
| 'tale' : ( -5, +2, -1, +0, +3), | |
| 'technical' : ( +2, +1, +0, +0, -2), | |
| 'tell' : ( +0, +3, +0, +0, +0), | |
| 'tension' : ( -2, +1, +0, +0, +6), | |
| 'terrific' : ( +1, +9, +0, +0, -5), | |
| 'than' : ( +0, +0, +0, +0, +0), | |
| 'that' : ( +0, +0, +0, +0, +0), | |
| 'the' : ( +0, +0, +0, +0, +0), | |
| 'then' : ( +2, +1, +0, +0, -6), | |
| 'theres' : ( +0, +0, +0, +0, +0), | |
| 'these' : ( +0, +0, +0, +0, +0), | |
| 'theyre' : ( +0, +0, +0, +0, +0), | |
| 'theyve' : ( +0, +0, +0, +0, +0), | |
| 'this' : ( +0, +0, +0, +0, +0), | |
| 'tho' : ( +0, +0, +0, +0, +8), | |
| 'those' : ( +0, +0, +0, +0, +0), | |
| 'though' : ( +0, +0, +0, +0, -8), | |
| 'thriller' : ( +0, +0, +0, +0, +10), | |
| 'thrills' : ( +0, +4, +0, +0, +2), | |
| 'tier' : ( +1, +1, +0, +0, +4), | |
| 'title' : ( -1, +0, +0, +0, +5), | |
| 'told' : ( +0, +2, +0, +0, +0), | |
| 'too' : ( -1, +3, +0, +0, -8), | |
| 'tree' : ( +0, +0, +0, +0, +1), | |
| 'tries' : ( +0, +1, +0, +0, -2), | |
| 'trying' : ( -2, +4, -1, +0, -3), | |
| 'turn' : ( +0, +0, +0, +0, +0), | |
| 'twitchconhype' : ( +0, +0, +0, +0, +0), | |
| 'ultimately' : ( +0, +0, +0, +0, -5), | |
| 'use' : ( +2, +1, +0, +0, +0), | |
| 'used' : ( +2, +2, +0, +0, -7), | |
| 'user' : ( +0, +0, +0, +0, +2), | |
| 'uses' : ( +1, +0, +0, +0, +0), | |
| 'utterly' : ( +15, +7, +4, +0, -5), | |
| 'very' : ( +8, +9, +2, +0, +8), | |
| 'viewers' : ( +2, +1, +0, +0, +4), | |
| 'visual' : ( -5, +2, -1, +0, -5), | |
| 'votenay' : ( +0, +0, +0, +0, +0), | |
| 'voteyea' : ( +0, +0, +0, +0, +0), | |
| 'wanted' : ( +2, +7, +0, +0, -5), | |
| 'wars' : ( -1, +1, +0, +0, +3), | |
| 'was' : ( +0, +0, +0, +0, -4), | |
| 'watched' : ( +3, +2, +0, +0, -7), | |
| 'way' : ( +0, +0, +0, +0, +3), | |
| 'wellacted' : ( +0, +0, +0, +0, +0), | |
| 'what' : ( +0, +0, +0, +0, +0), | |
| 'whats' : ( +0, +0, +0, +0, +0), | |
| 'which' : ( +0, +0, +0, +0, +0), | |
| 'who' : ( +0, +0, +0, +0, +8), | |
| 'whose' : ( +0, +0, +0, +0, +0), | |
| 'why' : ( +0, +0, +0, +0, +4), | |
| 'will' : ( +0, +0, +0, +0, +1), | |
| 'with' : ( +0, +0, +0, +0, +0), | |
| 'work' : ( +0, +0, +0, +0, -2), | |
| 'writerdirector' : ( +0, +0, +0, +0, +0), | |
| 'wutface' : ( +0, +0, +0, +0, +0), | |
| 'yall' : ( +0, +0, +0, +0, +0), | |
| 'yea' : ( +3, +2, +0, +0, +1), | |
| 'yet' : ( -3, +6, -1, +0, -8), | |
| 'you' : ( +0, +0, +0, +0, +0), | |
| 'youll' : ( +0, +0, +0, +0, +0), | |
| 'your' : ( +0, +0, +0, +0, +0), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_NEW_WORDS) | |
| # ── Gemini LLM Calibration: 200 words rated by conversational usage ── | |
| _GEMINI_CAL = { | |
| 'abomination' : ( -25, +15, -5, +0, +12), | |
| 'abusive' : ( -25, +20, +10, +10, +18), | |
| 'accident' : ( -15, +15, -10, +15, +12), | |
| 'accused' : ( -15, +15, -10, +10, +10), | |
| 'addict' : ( -20, +10, -15, +5, +12), | |
| 'addicted' : ( -20, +10, -15, +5, +12), | |
| 'addiction' : ( -20, +10, -15, +5, +12), | |
| 'affair' : ( -15, +15, -5, +5, +12), | |
| 'allergic' : ( -10, +5, -3, +0, +3), | |
| 'alzheimers' : ( -25, +5, -20, +5, +20), | |
| 'annoy' : ( -8, +5, -3, +0, -3), | |
| 'annoys' : ( -8, +5, -3, +0, -3), | |
| 'anxiety' : ( -15, +12, -10, +8, -8), | |
| 'autoimmune' : ( -15, +5, -10, +5, +12), | |
| 'badly' : ( -8, +5, -3, +0, -3), | |
| 'beating' : ( -20, +20, +10, +10, +10), | |
| 'betrayal' : ( -25, +15, -15, +10, +20), | |
| 'betrayed' : ( -25, +15, -15, +10, +18), | |
| 'bomb' : ( -20, +25, +10, +15, +12), | |
| 'breakup' : ( -20, +15, -10, +10, +15), | |
| 'bummer' : ( -8, +0, -3, +0, -3), | |
| 'burnt' : ( -10, +5, -5, +0, +3), | |
| 'burst' : ( +0, +15, +0, +5, +0), | |
| 'catastrophic' : ( -25, +15, -10, +10, +18), | |
| 'cheated' : ( -20, +15, -15, +10, +15), | |
| 'cheating' : ( -20, +15, -15, +10, +15), | |
| 'clogged' : ( -8, +5, -3, +0, +3), | |
| 'complain' : ( -8, +5, -3, +0, -3), | |
| 'complaint' : ( -8, +5, -3, +0, -3), | |
| 'crappy' : ( -8, +5, -3, +0, -3), | |
| 'cruel' : ( -20, +15, +10, +5, +12), | |
| 'cruelty' : ( -25, +15, +10, +5, +15), | |
| 'crushed' : ( -20, +15, -15, +5, +10), | |
| 'culprit' : ( -10, +10, +5, +5, +5), | |
| 'damaged' : ( -15, +10, -10, +5, +8), | |
| 'damages' : ( -10, +10, -5, +5, +8), | |
| 'dangerous' : ( -15, +20, +5, +15, +10), | |
| 'darn' : ( -8, +5, +0, +0, +0), | |
| 'deadly' : ( -20, +15, +10, +10, +10), | |
| 'declined' : ( -8, +5, -5, +0, +5), | |
| 'dementia' : ( -25, +5, -20, +5, +20), | |
| 'depressing' : ( -20, +0, -10, +0, +10), | |
| 'desperately' : ( -15, +15, -10, +10, +8), | |
| 'destroy' : ( -20, +20, +10, +10, +10), | |
| 'devastating' : ( -20, +15, -15, +10, +18), | |
| 'devastation' : ( -25, +15, -15, +10, +20), | |
| 'diabetes' : ( -15, +5, -10, +5, +12), | |
| 'died' : ( -20, +10, -15, +5, +15), | |
| 'difficulties' : ( -8, +5, -5, +5, +5), | |
| 'disaster' : ( -20, +15, -10, +10, +15), | |
| 'disease' : ( -20, +10, -15, +10, +15), | |
| 'dislike' : ( -8, +5, -3, +0, -3), | |
| 'distraught' : ( -20, +15, -15, +5, +12), | |
| 'disturbing' : ( -15, +10, -5, +5, +8), | |
| 'divorce' : ( -20, +15, -10, +10, +20), | |
| 'divorced' : ( -15, +10, -10, +5, +15), | |
| 'doomed' : ( -15, +10, -10, +5, +12), | |
| 'dreading' : ( -15, +10, -10, +10, +8), | |
| 'drunken' : ( -10, +10, -5, +0, +3), | |
| 'dying' : ( -20, +15, -15, +10, +15), | |
| 'enemy' : ( -15, +15, +10, +5, +10), | |
| 'enraged' : ( -20, +25, +15, +10, +10), | |
| 'evil' : ( -25, +15, +15, +5, +12), | |
| 'fears' : ( -15, +15, -15, +10, +10), | |
| 'fever' : ( -10, +10, -5, +5, +5), | |
| 'fights' : ( -15, +20, +10, +10, +8), | |
| 'fml' : ( -20, +15, -10, +5, +5), | |
| 'freaked' : ( -15, +20, -10, +5, +5), | |
| 'frightened' : ( -15, +15, -15, +10, +8), | |
| 'frightening' : ( -15, +15, -10, +10, +8), | |
| 'frustrating' : ( -15, +15, -5, +5, +5), | |
| 'funeral' : ( -20, +0, -10, +0, +25), | |
| 'gloomy' : ( -10, +0, -5, +0, +5), | |
| 'greed' : ( -15, +10, +10, +0, +8), | |
| 'grieve' : ( -25, +5, -15, +0, +20), | |
| 'grudge' : ( -10, +5, -5, +0, +8), | |
| 'gtfo' : ( -20, +25, +15, +10, +5), | |
| 'gun' : ( -15, +20, +10, +10, +10), | |
| 'harmful' : ( -15, +10, -5, +5, +8), | |
| 'hassle' : ( -8, +5, -3, +0, +0), | |
| 'headaches' : ( -10, +5, -5, +5, +5), | |
| 'heartbreaking' : ( -25, +10, -15, +5, +20), | |
| 'hectic' : ( -8, +15, -3, +5, +3), | |
| 'hoarder' : ( -15, +5, -10, +0, +8), | |
| 'homicide' : ( -25, +15, +10, +10, +20), | |
| 'horribly' : ( -15, +10, -8, +5, -5), | |
| 'horrific' : ( -25, +20, -15, +10, +15), | |
| 'horrifying' : ( -20, +20, -10, +10, +12), | |
| 'humiliating' : ( -20, +15, -20, +5, +12), | |
| 'hungover' : ( -10, +0, -5, +0, +3), | |
| 'hurting' : ( -15, +10, -10, +5, +8), | |
| 'ill' : ( -10, +5, -5, +5, +5), | |
| 'illegal' : ( -15, +10, +5, +5, +8), | |
| 'illness' : ( -15, +5, -10, +5, +12), | |
| 'inadequate' : ( -15, +5, -10, +0, +8), | |
| 'inappropriate' : ( -10, +5, -3, +0, +3), | |
| 'incident' : ( -8, +10, +0, +10, +8), | |
| 'incompetent' : ( -15, +5, -10, +0, +5), | |
| 'infuriating' : ( -20, +25, +10, +10, +8), | |
| 'injuries' : ( -15, +10, -10, +10, +10), | |
| 'insanely' : ( +0, +10, +0, +0, +0), | |
| 'intruder' : ( -20, +20, -10, +15, +10), | |
| 'irked' : ( -8, +5, -3, +0, +0), | |
| 'irresponsible' : ( -15, +10, -5, +0, +5), | |
| 'irritating' : ( -8, +10, -3, +0, +3), | |
| 'jail' : ( -15, +10, -15, +5, +12), | |
| 'killer' : ( -20, +20, +10, +5, +10), | |
| 'liar' : ( -15, +10, +5, +5, +8), | |
| 'lied' : ( -15, +10, -10, +5, +10), | |
| 'loathsome' : ( -20, +10, -5, +0, +8), | |
| 'loser' : ( -15, +10, -10, +0, +5), | |
| 'mortified' : ( -20, +10, -15, +0, +8), | |
| 'murder' : ( -25, +20, +10, +10, +20), | |
| 'nasty' : ( -15, +15, +5, +0, +5), | |
| 'nowhere' : ( +0, +0, +0, +0, +0), | |
| 'obnoxious' : ( -10, +10, +5, +0, +5), | |
| 'outrage' : ( -20, +25, +15, +10, +12), | |
| 'pains' : ( -15, +10, -10, +5, +8), | |
| 'peeved' : ( -8, +5, -3, +0, +0), | |
| 'pessimistic' : ( -8, +5, -5, +0, -3), | |
| 'pissed' : ( -15, +20, +10, +5, +5), | |
| 'pity' : ( -10, +0, -5, +0, +8), | |
| 'poisoning' : ( -20, +15, -10, +10, +12), | |
| 'poisonous' : ( -15, +10, -5, +5, +8), | |
| 'poo' : ( -8, +5, +0, +0, +0), | |
| 'poop' : ( -8, +5, +0, +0, +0), | |
| 'poorly' : ( -8, +0, -3, +0, -3), | |
| 'poverty' : ( -20, +5, -15, +5, +15), | |
| 'pretended' : ( -8, +5, -3, +0, +5), | |
| 'prison' : ( -15, +10, -15, +5, +12), | |
| 'punish' : ( -15, +10, +10, +5, +8), | |
| 'punishment' : ( -15, +10, +5, +5, +8), | |
| 'rage' : ( -20, +25, +15, +10, +8), | |
| 'refused' : ( -8, +10, +5, +5, +5), | |
| 'rejected' : ( -15, +10, -15, +5, +10), | |
| 'restless' : ( -8, +10, -3, +5, +3), | |
| 'ridden' : ( +0, +0, +0, +0, +0), | |
| 'robbed' : ( -20, +15, -15, +10, +12), | |
| 'robber' : ( -15, +10, +5, +5, +8), | |
| 'rotten' : ( -10, +5, -5, +0, +3), | |
| 'ruin' : ( -20, +15, -10, +5, +12), | |
| 'sadly' : ( -8, +0, -3, +0, -3), | |
| 'scare' : ( -15, +15, -10, +10, +5), | |
| 'scariest' : ( -20, +20, -15, +10, +10), | |
| 'severe' : ( -15, +10, -5, +10, +8), | |
| 'shattered' : ( -20, +15, -15, +5, +12), | |
| 'shoot' : ( -15, +20, +10, +10, +8), | |
| 'sickness' : ( -15, +5, -10, +5, +10), | |
| 'smelly' : ( -8, +5, +0, +0, +0), | |
| 'spite' : ( -15, +10, +10, +5, +8), | |
| 'spoil' : ( -8, +5, -3, +0, +3), | |
| 'starved' : ( -20, +10, -15, +10, +12), | |
| 'stfu' : ( -20, +25, +15, +10, +5), | |
| 'stillbirth' : ( -25, +10, -20, +5, +25), | |
| 'stillborn' : ( -25, +10, -20, +5, +25), | |
| 'sting' : ( -8, +10, -3, +5, +3), | |
| 'stink' : ( -8, +5, -3, +0, -3), | |
| 'stressful' : ( -15, +15, -10, +10, +8), | |
| 'stressing' : ( -15, +15, -10, +10, +5), | |
| 'stroke' : ( -20, +15, -15, +15, +15), | |
| 'suffer' : ( -20, +10, -15, +5, +12), | |
| 'suspect' : ( -10, +10, -5, +5, +5), | |
| 'suspicious' : ( -10, +10, -5, +5, +5), | |
| 'teary' : ( -10, +5, -5, +0, +5), | |
| 'terribly' : ( -10, +5, -5, +0, -3), | |
| 'terrifying' : ( -20, +25, -15, +15, +12), | |
| 'terrorism' : ( -25, +25, +10, +15, +20), | |
| 'thieves' : ( -15, +10, +5, +5, +10), | |
| 'threatened' : ( -20, +20, -15, +15, +12), | |
| 'thunderstorm' : ( -8, +15, -3, +0, +5), | |
| 'tragedy' : ( -25, +10, -10, +5, +20), | |
| 'tragic' : ( -20, +10, -10, +5, +15), | |
| 'trauma' : ( -25, +15, -15, +10, +20), | |
| 'traumatic' : ( -25, +15, -15, +10, +18), | |
| 'troubles' : ( -8, +5, -3, +5, +5), | |
| 'turbulence' : ( -8, +10, -5, +5, +5), | |
| 'unable' : ( +0, +0, +0, +0, +0), | |
| 'uncertainty' : ( -8, +5, -5, +5, +5), | |
| 'unemployment' : ( -15, +5, -10, +5, +12), | |
| 'unfair' : ( -15, +10, -10, +5, +8), | |
| 'unfaithful' : ( -20, +10, -15, +5, +15), | |
| 'unfortunate' : ( -8, +5, -3, +0, +5), | |
| 'unhappy' : ( -15, +5, -5, +0, +5), | |
| 'unmotivated' : ( -10, -5, -5, +0, +3), | |
| 'unpleasant' : ( -8, +5, -3, +0, -3), | |
| 'unsolicited' : ( -8, +5, -3, +0, +3), | |
| 'upsetting' : ( -15, +10, -8, +5, +8), | |
| 'victim' : ( -20, +10, -20, +5, +15), | |
| 'villain' : ( -15, +15, +10, +5, +8), | |
| 'violence' : ( -20, +25, +10, +10, +15), | |
| 'violent' : ( -20, +25, +10, +10, +12), | |
| 'void' : ( -8, +0, -5, +0, +5), | |
| 'vomit' : ( -15, +10, -10, +5, +5), | |
| 'vomiting' : ( -15, +10, -10, +5, +5), | |
| 'wasp' : ( -8, +10, +0, +5, +3), | |
| 'worries' : ( -8, +5, -5, +5, +3), | |
| 'worrisome' : ( -10, +5, -5, +5, +5), | |
| 'worrying' : ( -10, +10, -5, +5, +5), | |
| 'wtf' : ( -15, +20, +0, +10, +3), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_GEMINI_CAL) | |
| # ── 3-LLM Consensus Calibration (Gemini+Claude+GPT-4 average) ── | |
| _LLM_CONSENSUS = { | |
| 'abomination' : ( -23, +11, -9, +7, -7), | |
| 'abusive' : ( -23, +11, -9, +7, -7), | |
| 'accident' : ( -15, +7, -6, +4, -4), | |
| 'accused' : ( -13, +6, -5, +4, -4), | |
| 'addict' : ( -18, +8, -7, +5, -5), | |
| 'addicted' : ( -17, +8, -6, +5, -5), | |
| 'addiction' : ( -19, +9, -7, +6, -6), | |
| 'affair' : ( -17, +8, -6, +5, -5), | |
| 'allergic' : ( -9, +4, -3, +0, -2), | |
| 'alzheimers' : ( -23, +11, -9, +7, -7), | |
| 'annoy' : ( -9, +4, -3, +0, -2), | |
| 'annoys' : ( -9, +4, -3, +0, -2), | |
| 'anxiety' : ( -15, +7, -6, +4, -4), | |
| 'autoimmune' : ( -15, +7, -6, +4, -4), | |
| 'badly' : ( -9, +4, -3, +0, -2), | |
| 'beating' : ( -19, +9, -7, +6, -6), | |
| 'betrayal' : ( -23, +11, -9, +7, -7), | |
| 'betrayed' : ( -23, +11, -9, +7, -7), | |
| 'bomb' : ( -19, +9, -7, +6, -6), | |
| 'breakup' : ( -19, +9, -7, +6, -6), | |
| 'bummer' : ( -9, +4, -3, +0, -2), | |
| 'burnt' : ( -10, +4, -4, +0, -3), | |
| 'burst' : ( -3, +1, -1, +0, +0), | |
| 'catastrophic' : ( -24, +11, -9, +7, -7), | |
| 'cheated' : ( -20, +9, -8, +6, -6), | |
| 'cheating' : ( -19, +9, -7, +6, -6), | |
| 'clogged' : ( -7, +3, -2, +0, -2), | |
| 'complain' : ( -8, +3, -3, +0, -2), | |
| 'complaint' : ( -8, +3, -3, +0, -2), | |
| 'crappy' : ( -9, +4, -3, +0, -2), | |
| 'cruel' : ( -20, +9, -8, +6, -6), | |
| 'cruelty' : ( -23, +11, -9, +7, -7), | |
| 'crushed' : ( -19, +9, -7, +6, -6), | |
| 'culprit' : ( -9, +4, -3, +0, -2), | |
| 'damaged' : ( -14, +6, -5, +4, -4), | |
| 'damages' : ( -11, +5, -4, +3, -3), | |
| 'dangerous' : ( -14, +6, -5, +4, -4), | |
| 'darn' : ( -5, +2, -2, +0, -1), | |
| 'deadly' : ( -20, +9, -8, +6, -6), | |
| 'declined' : ( -9, +4, -3, +0, -2), | |
| 'dementia' : ( -22, +10, -8, +7, -7), | |
| 'depressing' : ( -18, +8, -7, +5, -5), | |
| 'desperately' : ( -15, +7, -6, +4, -4), | |
| 'destroy' : ( -20, +9, -8, +6, -6), | |
| 'devastating' : ( -21, +10, -8, +6, -6), | |
| 'devastation' : ( -23, +11, -9, +7, -7), | |
| 'diabetes' : ( -15, +7, -6, +4, -4), | |
| 'died' : ( -21, +10, -8, +6, -6), | |
| 'difficulties' : ( -9, +4, -3, +0, -2), | |
| 'disaster' : ( -20, +9, -8, +6, -6), | |
| 'disease' : ( -19, +9, -7, +6, -6), | |
| 'dislike' : ( -7, +3, -2, +0, -2), | |
| 'distraught' : ( -20, +9, -8, +6, -6), | |
| 'disturbing' : ( -16, +7, -6, +5, -5), | |
| 'divorce' : ( -19, +9, -7, +6, -6), | |
| 'divorced' : ( -16, +7, -6, +5, -5), | |
| 'doomed' : ( -17, +8, -6, +5, -5), | |
| 'dreading' : ( -15, +7, -6, +4, -4), | |
| 'drunken' : ( -10, +4, -4, +0, -3), | |
| 'dying' : ( -21, +10, -8, +6, -6), | |
| 'enemy' : ( -15, +7, -6, +4, -4), | |
| 'enraged' : ( -19, +9, -7, +6, -6), | |
| 'evil' : ( -23, +11, -9, +7, -7), | |
| 'fears' : ( -14, +6, -5, +4, -4), | |
| 'fever' : ( -11, +5, -4, +3, -3), | |
| 'fights' : ( -12, +5, -4, +3, -3), | |
| 'fml' : ( -18, +8, -7, +5, -5), | |
| 'freaked' : ( -15, +7, -6, +4, -4), | |
| 'frightened' : ( -16, +7, -6, +5, -5), | |
| 'frightening' : ( -16, +7, -6, +5, -5), | |
| 'frustrating' : ( -12, +5, -4, +3, -3), | |
| 'funeral' : ( -19, +9, -7, +6, -6), | |
| 'gloomy' : ( -11, +5, -4, +3, -3), | |
| 'greed' : ( -16, +7, -6, +5, -5), | |
| 'grieve' : ( -22, +10, -8, +7, -7), | |
| 'grudge' : ( -11, +5, -4, +3, -3), | |
| 'gtfo' : ( -18, +8, -7, +5, -5), | |
| 'gun' : ( -12, +5, -4, +3, -3), | |
| 'harmful' : ( -16, +7, -6, +5, -5), | |
| 'hassle' : ( -9, +4, -3, +0, -2), | |
| 'headaches' : ( -9, +4, -3, +0, -2), | |
| 'heartbreaking' : ( -23, +11, -9, +7, -7), | |
| 'hectic' : ( -9, +4, -3, +0, -2), | |
| 'hoarder' : ( -12, +5, -4, +3, -3), | |
| 'homicide' : ( -25, +12, -10, +8, -8), | |
| 'horribly' : ( -14, +6, -5, +4, -4), | |
| 'horrific' : ( -23, +11, -9, +7, -7), | |
| 'horrifying' : ( -21, +10, -8, +6, -6), | |
| 'humiliating' : ( -19, +9, -7, +6, -6), | |
| 'hungover' : ( -9, +4, -3, +0, -2), | |
| 'hurting' : ( -15, +7, -6, +4, -4), | |
| 'ill' : ( -11, +5, -4, +3, -3), | |
| 'illegal' : ( -12, +5, -4, +3, -3), | |
| 'illness' : ( -15, +7, -6, +4, -4), | |
| 'inadequate' : ( -15, +7, -6, +4, -4), | |
| 'inappropriate' : ( -10, +4, -4, +0, -3), | |
| 'incident' : ( -7, +3, -2, +0, -2), | |
| 'incompetent' : ( -15, +7, -6, +4, -4), | |
| 'infuriating' : ( -18, +8, -7, +5, -5), | |
| 'injuries' : ( -15, +7, -6, +4, -4), | |
| 'insanely' : ( -4, +1, -1, +0, -1), | |
| 'intruder' : ( -18, +8, -7, +5, -5), | |
| 'irked' : ( -8, +3, -3, +0, -2), | |
| 'irresponsible' : ( -13, +6, -5, +4, -4), | |
| 'irritating' : ( -9, +4, -3, +0, -2), | |
| 'jail' : ( -16, +7, -6, +5, -5), | |
| 'killer' : ( -20, +9, -8, +6, -6), | |
| 'liar' : ( -15, +7, -6, +4, -4), | |
| 'lice' : ( -11, +5, -4, +3, -3), | |
| 'lied' : ( -15, +7, -6, +4, -4), | |
| 'loathsome' : ( -20, +9, -8, +6, -6), | |
| 'loser' : ( -15, +7, -6, +4, -4), | |
| 'mortified' : ( -18, +8, -7, +5, -5), | |
| 'murder' : ( -25, +12, -10, +8, -8), | |
| 'nasty' : ( -14, +6, -5, +4, -4), | |
| 'nowhere' : ( -5, +2, -2, +0, -1), | |
| 'obnoxious' : ( -11, +5, -4, +3, -3), | |
| 'outrage' : ( -18, +8, -7, +5, -5), | |
| 'pains' : ( -13, +6, -5, +4, -4), | |
| 'peeved' : ( -8, +3, -3, +0, -2), | |
| 'pessimistic' : ( -9, +4, -3, +0, -2), | |
| 'pissed' : ( -14, +6, -5, +4, -4), | |
| 'pity' : ( -10, +4, -4, +0, -3), | |
| 'poisoning' : ( -20, +9, -8, +6, -6), | |
| 'poisonous' : ( -16, +7, -6, +5, -5), | |
| 'poo' : ( -7, +3, -2, +0, -2), | |
| 'poop' : ( -7, +3, -2, +0, -2), | |
| 'poorly' : ( -8, +3, -3, +0, -2), | |
| 'poverty' : ( -19, +9, -7, +6, -6), | |
| 'pretended' : ( -8, +3, -3, +0, -2), | |
| 'prison' : ( -16, +7, -6, +5, -5), | |
| 'punish' : ( -12, +5, -4, +3, -3), | |
| 'punishment' : ( -13, +6, -5, +4, -4), | |
| 'rage' : ( -19, +9, -7, +6, -6), | |
| 'refused' : ( -9, +4, -3, +0, -2), | |
| 'rejected' : ( -16, +7, -6, +5, -5), | |
| 'restless' : ( -7, +3, -2, +0, -2), | |
| 'ridden' : ( -3, +1, -1, +0, +0), | |
| 'robbed' : ( -19, +9, -7, +6, -6), | |
| 'robber' : ( -15, +7, -6, +4, -4), | |
| 'rotten' : ( -11, +5, -4, +3, -3), | |
| 'ruin' : ( -19, +9, -7, +6, -6), | |
| 'sadly' : ( -10, +4, -4, +0, -3), | |
| 'scare' : ( -13, +6, -5, +4, -4), | |
| 'scariest' : ( -19, +9, -7, +6, -6), | |
| 'severe' : ( -15, +7, -6, +4, -4), | |
| 'shattered' : ( -20, +9, -8, +6, -6), | |
| 'shoot' : ( -12, +5, -4, +3, -3), | |
| 'sickness' : ( -15, +7, -6, +4, -4), | |
| 'smelly' : ( -7, +3, -2, +0, -2), | |
| 'spite' : ( -14, +6, -5, +4, -4), | |
| 'spoil' : ( -9, +4, -3, +0, -2), | |
| 'starved' : ( -17, +8, -6, +5, -5), | |
| 'stfu' : ( -17, +8, -6, +5, -5), | |
| 'stillbirth' : ( -25, +12, -10, +8, -8), | |
| 'stillborn' : ( -25, +12, -10, +8, -8), | |
| 'sting' : ( -9, +4, -3, +0, -2), | |
| 'stink' : ( -8, +3, -3, +0, -2), | |
| 'stressful' : ( -15, +7, -6, +4, -4), | |
| 'stressing' : ( -14, +6, -5, +4, -4), | |
| 'stroke' : ( -19, +9, -7, +6, -6), | |
| 'suffer' : ( -19, +9, -7, +6, -6), | |
| 'suspect' : ( -8, +3, -3, +0, -2), | |
| 'suspicious' : ( -9, +4, -3, +0, -2), | |
| 'teary' : ( -12, +5, -4, +3, -3), | |
| 'terribly' : ( -11, +5, -4, +3, -3), | |
| 'terrifying' : ( -21, +10, -8, +6, -6), | |
| 'terrorism' : ( -25, +12, -10, +8, -8), | |
| 'thieves' : ( -15, +7, -6, +4, -4), | |
| 'threatened' : ( -18, +8, -7, +5, -5), | |
| 'thunderstorm' : ( -6, +2, -2, +0, -1), | |
| 'tragedy' : ( -23, +11, -9, +7, -7), | |
| 'tragic' : ( -21, +10, -8, +6, -6), | |
| 'trauma' : ( -22, +10, -8, +7, -7), | |
| 'traumatic' : ( -22, +10, -8, +7, -7), | |
| 'troubles' : ( -9, +4, -3, +0, -2), | |
| 'turbulence' : ( -8, +3, -3, +0, -2), | |
| 'unable' : ( -7, +3, -2, +0, -2), | |
| 'uncertainty' : ( -10, +4, -4, +0, -3), | |
| 'unemployment' : ( -16, +7, -6, +5, -5), | |
| 'unfair' : ( -14, +6, -5, +4, -4), | |
| 'unfaithful' : ( -19, +9, -7, +6, -6), | |
| 'unfortunate' : ( -9, +4, -3, +0, -2), | |
| 'unhappy' : ( -14, +6, -5, +4, -4), | |
| 'unmotivated' : ( -11, +5, -4, +3, -3), | |
| 'unpleasant' : ( -9, +4, -3, +0, -2), | |
| 'unsolicited' : ( -7, +3, -2, +0, -2), | |
| 'upsetting' : ( -14, +6, -5, +4, -4), | |
| 'victim' : ( -17, +8, -6, +5, -5), | |
| 'villain' : ( -16, +7, -6, +5, -5), | |
| 'violence' : ( -21, +10, -8, +6, -6), | |
| 'violent' : ( -20, +9, -8, +6, -6), | |
| 'void' : ( -10, +4, -4, +0, -3), | |
| 'vomit' : ( -14, +6, -5, +4, -4), | |
| 'vomiting' : ( -15, +7, -6, +4, -4), | |
| 'wasp' : ( -6, +2, -2, +0, -1), | |
| 'worries' : ( -11, +5, -4, +3, -3), | |
| 'worrisome' : ( -11, +5, -4, +3, -3), | |
| 'worrying' : ( -11, +5, -4, +3, -3), | |
| 'wtf' : ( -14, +6, -5, +4, -4), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_LLM_CONSENSUS) | |
| # ── 4-LLM Final Consensus (Gemini+Claude+GPT-4+Grok average) ── | |
| _LLM_CONSENSUS_4 = { | |
| 'abomination' : ( -22, +10, -8, +7, -7), | |
| 'abusive' : ( -22, +10, -8, +7, -7), | |
| 'accident' : ( -15, +7, -6, +4, -4), | |
| 'accused' : ( -13, +6, -5, +4, -4), | |
| 'addict' : ( -18, +8, -7, +5, -5), | |
| 'addicted' : ( -18, +8, -7, +5, -5), | |
| 'addiction' : ( -19, +9, -7, +6, -6), | |
| 'affair' : ( -17, +8, -6, +5, -5), | |
| 'allergic' : ( -9, +4, -3, +0, -2), | |
| 'alzheimers' : ( -22, +10, -8, +7, -7), | |
| 'annoy' : ( -9, +4, -3, +0, -2), | |
| 'annoys' : ( -9, +4, -3, +0, -2), | |
| 'anxiety' : ( -16, +7, -6, +5, -5), | |
| 'autoimmune' : ( -16, +7, -6, +5, -5), | |
| 'badly' : ( -10, +4, -4, +0, -3), | |
| 'beating' : ( -18, +8, -7, +5, -5), | |
| 'betrayal' : ( -22, +10, -8, +7, -7), | |
| 'betrayed' : ( -22, +10, -8, +7, -7), | |
| 'bomb' : ( -17, +8, -6, +5, -5), | |
| 'breakup' : ( -19, +9, -7, +6, -6), | |
| 'bummer' : ( -10, +4, -4, +0, -3), | |
| 'burnt' : ( -10, +4, -4, +0, -3), | |
| 'burst' : ( -4, +1, -1, +0, -1), | |
| 'catastrophic' : ( -24, +11, -9, +7, -7), | |
| 'cheated' : ( -20, +9, -8, +6, -6), | |
| 'cheating' : ( -20, +9, -8, +6, -6), | |
| 'clogged' : ( -8, +3, -3, +0, -2), | |
| 'complain' : ( -8, +3, -3, +0, -2), | |
| 'complaint' : ( -8, +3, -3, +0, -2), | |
| 'crappy' : ( -9, +4, -3, +0, -2), | |
| 'cruel' : ( -20, +9, -8, +6, -6), | |
| 'cruelty' : ( -22, +10, -8, +7, -7), | |
| 'crushed' : ( -19, +9, -7, +6, -6), | |
| 'culprit' : ( -10, +4, -4, +0, -3), | |
| 'damaged' : ( -14, +6, -5, +4, -4), | |
| 'damages' : ( -12, +5, -4, +3, -3), | |
| 'dangerous' : ( -14, +6, -5, +4, -4), | |
| 'darn' : ( -6, +2, -2, +0, -1), | |
| 'deadly' : ( -20, +9, -8, +6, -6), | |
| 'declined' : ( -10, +4, -4, +0, -3), | |
| 'dementia' : ( -21, +10, -8, +6, -6), | |
| 'depressing' : ( -18, +8, -7, +5, -5), | |
| 'desperately' : ( -14, +6, -5, +4, -4), | |
| 'destroy' : ( -20, +9, -8, +6, -6), | |
| 'devastating' : ( -21, +10, -8, +6, -6), | |
| 'devastation' : ( -22, +10, -8, +7, -7), | |
| 'diabetes' : ( -15, +7, -6, +4, -4), | |
| 'died' : ( -22, +10, -8, +7, -7), | |
| 'difficulties' : ( -10, +4, -4, +0, -3), | |
| 'disaster' : ( -20, +9, -8, +6, -6), | |
| 'disease' : ( -18, +8, -7, +5, -5), | |
| 'dislike' : ( -8, +3, -3, +0, -2), | |
| 'distraught' : ( -20, +9, -8, +6, -6), | |
| 'disturbing' : ( -16, +7, -6, +5, -5), | |
| 'divorce' : ( -18, +8, -7, +5, -5), | |
| 'divorced' : ( -17, +8, -6, +5, -5), | |
| 'doomed' : ( -17, +8, -6, +5, -5), | |
| 'dreading' : ( -15, +7, -6, +4, -4), | |
| 'drunken' : ( -10, +4, -4, +0, -3), | |
| 'dying' : ( -21, +10, -8, +6, -6), | |
| 'enemy' : ( -15, +7, -6, +4, -4), | |
| 'enraged' : ( -18, +8, -7, +5, -5), | |
| 'evil' : ( -22, +10, -8, +7, -7), | |
| 'fears' : ( -14, +6, -5, +4, -4), | |
| 'fever' : ( -11, +5, -4, +3, -3), | |
| 'fights' : ( -12, +5, -4, +3, -3), | |
| 'fml' : ( -18, +8, -7, +5, -5), | |
| 'freaked' : ( -15, +7, -6, +4, -4), | |
| 'frightened' : ( -17, +8, -6, +5, -5), | |
| 'frightening' : ( -17, +8, -6, +5, -5), | |
| 'frustrating' : ( -12, +5, -4, +3, -3), | |
| 'funeral' : ( -19, +9, -7, +6, -6), | |
| 'gloomy' : ( -11, +5, -4, +3, -3), | |
| 'greed' : ( -16, +7, -6, +5, -5), | |
| 'grieve' : ( -21, +10, -8, +6, -6), | |
| 'grudge' : ( -12, +5, -4, +3, -3), | |
| 'gtfo' : ( -17, +8, -6, +5, -5), | |
| 'gun' : ( -12, +5, -4, +3, -3), | |
| 'harmful' : ( -16, +7, -6, +5, -5), | |
| 'hassle' : ( -9, +4, -3, +0, -2), | |
| 'headaches' : ( -10, +4, -4, +0, -3), | |
| 'heartbreaking' : ( -22, +10, -8, +7, -7), | |
| 'hectic' : ( -9, +4, -3, +0, -2), | |
| 'hoarder' : ( -12, +5, -4, +3, -3), | |
| 'homicide' : ( -25, +12, -10, +8, -8), | |
| 'horribly' : ( -14, +6, -5, +4, -4), | |
| 'horrific' : ( -23, +11, -9, +7, -7), | |
| 'horrifying' : ( -20, +9, -8, +6, -6), | |
| 'humiliating' : ( -19, +9, -7, +6, -6), | |
| 'hungover' : ( -10, +4, -4, +0, -3), | |
| 'hurting' : ( -15, +7, -6, +4, -4), | |
| 'ill' : ( -12, +5, -4, +3, -3), | |
| 'illegal' : ( -12, +5, -4, +3, -3), | |
| 'illness' : ( -15, +7, -6, +4, -4), | |
| 'inadequate' : ( -15, +7, -6, +4, -4), | |
| 'inappropriate' : ( -10, +4, -4, +0, -3), | |
| 'incident' : ( -7, +3, -2, +0, -2), | |
| 'incompetent' : ( -15, +7, -6, +4, -4), | |
| 'infuriating' : ( -18, +8, -7, +5, -5), | |
| 'injuries' : ( -15, +7, -6, +4, -4), | |
| 'insanely' : ( -3, +1, -1, +0, +0), | |
| 'intruder' : ( -18, +8, -7, +5, -5), | |
| 'irked' : ( -8, +3, -3, +0, -2), | |
| 'irresponsible' : ( -14, +6, -5, +4, -4), | |
| 'irritating' : ( -10, +4, -4, +0, -3), | |
| 'jail' : ( -16, +7, -6, +5, -5), | |
| 'killer' : ( -19, +9, -7, +6, -6), | |
| 'liar' : ( -15, +7, -6, +4, -4), | |
| 'lice' : ( -12, +5, -4, +3, -3), | |
| 'lied' : ( -15, +7, -6, +4, -4), | |
| 'loathsome' : ( -20, +9, -8, +6, -6), | |
| 'loser' : ( -15, +7, -6, +4, -4), | |
| 'mortified' : ( -18, +8, -7, +5, -5), | |
| 'murder' : ( -25, +12, -10, +8, -8), | |
| 'nasty' : ( -13, +6, -5, +4, -4), | |
| 'nowhere' : ( -6, +2, -2, +0, -1), | |
| 'obnoxious' : ( -12, +5, -4, +3, -3), | |
| 'outrage' : ( -17, +8, -6, +5, -5), | |
| 'pains' : ( -13, +6, -5, +4, -4), | |
| 'peeved' : ( -8, +3, -3, +0, -2), | |
| 'pessimistic' : ( -10, +4, -4, +0, -3), | |
| 'pissed' : ( -14, +6, -5, +4, -4), | |
| 'pity' : ( -10, +4, -4, +0, -3), | |
| 'poisoning' : ( -20, +9, -8, +6, -6), | |
| 'poisonous' : ( -16, +7, -6, +5, -5), | |
| 'poo' : ( -7, +3, -2, +0, -2), | |
| 'poop' : ( -7, +3, -2, +0, -2), | |
| 'poorly' : ( -8, +3, -3, +0, -2), | |
| 'poverty' : ( -18, +8, -7, +5, -5), | |
| 'pretended' : ( -8, +3, -3, +0, -2), | |
| 'prison' : ( -16, +7, -6, +5, -5), | |
| 'punish' : ( -12, +5, -4, +3, -3), | |
| 'punishment' : ( -14, +6, -5, +4, -4), | |
| 'rage' : ( -18, +8, -7, +5, -5), | |
| 'refused' : ( -9, +4, -3, +0, -2), | |
| 'rejected' : ( -16, +7, -6, +5, -5), | |
| 'restless' : ( -8, +3, -3, +0, -2), | |
| 'ridden' : ( -5, +2, -2, +0, -1), | |
| 'robbed' : ( -18, +8, -7, +5, -5), | |
| 'robber' : ( -16, +7, -6, +5, -5), | |
| 'rotten' : ( -12, +5, -4, +3, -3), | |
| 'ruin' : ( -19, +9, -7, +6, -6), | |
| 'sadly' : ( -10, +4, -4, +0, -3), | |
| 'scare' : ( -14, +6, -5, +4, -4), | |
| 'scariest' : ( -20, +9, -8, +6, -6), | |
| 'severe' : ( -15, +7, -6, +4, -4), | |
| 'shattered' : ( -20, +9, -8, +6, -6), | |
| 'shoot' : ( -12, +5, -4, +3, -3), | |
| 'sickness' : ( -15, +7, -6, +4, -4), | |
| 'smelly' : ( -8, +3, -3, +0, -2), | |
| 'spite' : ( -13, +6, -5, +4, -4), | |
| 'spoil' : ( -9, +4, -3, +0, -2), | |
| 'starved' : ( -16, +7, -6, +5, -5), | |
| 'stfu' : ( -17, +8, -6, +5, -5), | |
| 'stillbirth' : ( -25, +12, -10, +8, -8), | |
| 'stillborn' : ( -25, +12, -10, +8, -8), | |
| 'sting' : ( -9, +4, -3, +0, -2), | |
| 'stink' : ( -8, +3, -3, +0, -2), | |
| 'stressful' : ( -15, +7, -6, +4, -4), | |
| 'stressing' : ( -14, +6, -5, +4, -4), | |
| 'stroke' : ( -19, +9, -7, +6, -6), | |
| 'suffer' : ( -18, +8, -7, +5, -5), | |
| 'suspect' : ( -9, +4, -3, +0, -2), | |
| 'suspicious' : ( -10, +4, -4, +0, -3), | |
| 'teary' : ( -12, +5, -4, +3, -3), | |
| 'terribly' : ( -12, +5, -4, +3, -3), | |
| 'terrifying' : ( -21, +10, -8, +6, -6), | |
| 'terrorism' : ( -24, +11, -9, +7, -7), | |
| 'thieves' : ( -15, +7, -6, +4, -4), | |
| 'threatened' : ( -17, +8, -6, +5, -5), | |
| 'thunderstorm' : ( -7, +3, -2, +0, -2), | |
| 'tragedy' : ( -22, +10, -8, +7, -7), | |
| 'tragic' : ( -20, +9, -8, +6, -6), | |
| 'trauma' : ( -22, +10, -8, +7, -7), | |
| 'traumatic' : ( -22, +10, -8, +7, -7), | |
| 'troubles' : ( -10, +4, -4, +0, -3), | |
| 'turbulence' : ( -8, +3, -3, +0, -2), | |
| 'unable' : ( -8, +3, -3, +0, -2), | |
| 'uncertainty' : ( -10, +4, -4, +0, -3), | |
| 'unemployment' : ( -16, +7, -6, +5, -5), | |
| 'unfair' : ( -14, +6, -5, +4, -4), | |
| 'unfaithful' : ( -20, +9, -8, +6, -6), | |
| 'unfortunate' : ( -10, +4, -4, +0, -3), | |
| 'unhappy' : ( -14, +6, -5, +4, -4), | |
| 'unmotivated' : ( -11, +5, -4, +3, -3), | |
| 'unpleasant' : ( -10, +4, -4, +0, -3), | |
| 'unsolicited' : ( -7, +3, -2, +0, -2), | |
| 'upsetting' : ( -14, +6, -5, +4, -4), | |
| 'victim' : ( -16, +7, -6, +5, -5), | |
| 'villain' : ( -16, +7, -6, +5, -5), | |
| 'violence' : ( -21, +10, -8, +6, -6), | |
| 'violent' : ( -20, +9, -8, +6, -6), | |
| 'void' : ( -12, +5, -4, +3, -3), | |
| 'vomit' : ( -14, +6, -5, +4, -4), | |
| 'vomiting' : ( -15, +7, -6, +4, -4), | |
| 'wasp' : ( -5, +2, -2, +0, -1), | |
| 'worries' : ( -11, +5, -4, +3, -3), | |
| 'worrisome' : ( -12, +5, -4, +3, -3), | |
| 'worrying' : ( -12, +5, -4, +3, -3), | |
| 'wtf' : ( -13, +6, -5, +4, -4), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_LLM_CONSENSUS_4) | |
| # ── V7 corrections: GAS atoms zeroed, deception/betrayal tuned ── | |
| _V7_FIXES = { | |
| # GAS atoms: objects have no inherent emotional charge | |
| 'necklace': ( 0, 0, 0, 0, 10), # object. Gravity from possession, not valence. | |
| 'bracelet': ( 0, 0, 0, 0, 8), | |
| 'ring': ( 0, 0, 0, 0, 12), # high G (symbol of commitment) | |
| 'drawer': ( 0, 0, 0, 0, 0), | |
| # GAS interjections: these carry zero charge, context fills them | |
| 'yeah': ( 0, 0, 0, 0, 0), # pure GAS. "yeah right" = sarcasm. "yeah!" = excitement. | |
| 'yep': ( 0, 0, 0, 0, 0), | |
| 'yup': ( 0, 0, 0, 0, 0), | |
| 'nah': ( -3, 0, 0, 0, 0), # mild dismissal | |
| 'well': ( 0, 0, 0, 0, 0), # filler / hedge. Not emotional. | |
| 'went': ( 0, 0, 0, 0, 0), # movement verb, neutral | |
| 'all': ( 0, 0, 0, 0, 5), # quantifier, not emotional. Was dV=8. | |
| # Deception verbs: the act of deception IS negative | |
| 'pretended': (-20, 5, -15, 0, -10), # deception = betrayal of trust | |
| 'pretending': (-18, 5, -12, 0, -8), | |
| 'faked': (-20, 5, -15, 0, -10), | |
| 'faking': (-18, 5, -12, 0, -8), | |
| 'lied': (-25, 10, -20, 5, -12), | |
| 'lying': (-22, 8, -18, 5, -10), | |
| 'deceived': (-25, 10, -20, 5, -15), | |
| 'betrayed': (-30, 15, -25, 10, -18), | |
| 'betrayal': (-30, 15, -25, 10, -18), | |
| # Abandonment: "left" in isolation is spatial. With people context = abandonment. | |
| # Keep low dV — proximity to RELATION_REF creates the betrayal. | |
| 'left': ( -5, 5, -5, 5, -3), # slightly negative base | |
| # GAS verbs: meaning entirely from context | |
| 'catch': ( 0, 5, 5, 0, 5), # catch a ball, catch up, catch fire | |
| 'caught': ( 0, 5, 5, 0, 5), | |
| 'weather': ( 0, 0, 0, 0, 0), # pure neutral noun | |
| 'changing': ( 0, 0, 0, 0, 0), # pure neutral verb | |
| 'change': ( 0, 0, 0, 0, 0), | |
| 'changed': ( 0, 0, 0, 0, 0), | |
| 'messages': ( 0, 0, 0, 0, 5), # neutral object | |
| 'phone': ( 0, 0, 0, 0, 5), # neutral object | |
| 'should': ( 0, 0, 0, 0, 0), # modal, no charge | |
| # ── MASSIVE GAS ZEROING: common nouns/verbs with bloated dV ── | |
| # These are GAS atoms. Their meaning comes from CONTEXT, not from the word itself. | |
| # "pizza" is not happy. "appointment" is not happy. "alarm" is not scary. | |
| # The anchor+web model: only ~111 anchor words carry real dV. | |
| # Everything else gets dV from proximity to anchors at runtime. | |
| # | |
| # Common objects / places | |
| 'pizza': ( 0, 0, 0, 0, 5), | |
| 'laundry': ( 0, 0, 0, 0, 0), | |
| 'appointment': ( 0, 0, 0, 0, 5), | |
| 'alarm': ( 0, 5, 0, 0, 0), | |
| 'flight': ( 0, 0, 0, 0, 5), | |
| 'show': ( 0, 0, 0, 0, 5), | |
| 'double': ( 0, 0, 0, 0, 0), | |
| 'dentist': ( 0, 0, 0, 0, 5), | |
| 'bus': ( 0, 0, 0, 0, 0), | |
| 'train': ( 0, 0, 0, 0, 0), | |
| 'subway': ( 0, 0, 0, 0, 0), | |
| 'parking': ( 0, 0, 0, 0, 0), | |
| 'store': ( 0, 0, 0, 0, 0), | |
| 'line': ( 0, 0, 0, 0, 0), | |
| 'restaurant': ( 0, 0, 0, 0, 5), | |
| 'order': ( 0, 0, 0, 0, 0), # "order pizza" ≠ emotion | |
| 'ordered': ( 0, 0, 0, 0, 0), | |
| 'grab': ( 0, 2, 0, 0, 0), | |
| 'airport': ( 0, 0, 0, 0, 0), | |
| 'hotel': ( 0, 0, 0, 0, 0), | |
| 'office': ( 0, 0, 0, 0, 0), | |
| 'movie': ( 0, 0, 0, 0, 5), | |
| 'class': ( 0, 0, 0, 0, 5), | |
| 'exam': ( 0, 5, 0, 5, 8), # slightly high arousal/urgency | |
| 'test': ( 0, 5, 0, 5, 5), | |
| 'school': ( 0, 0, 0, 0, 5), | |
| 'license': ( 0, 0, 0, 0, 0), | |
| 'package': ( 0, 0, 0, 0, 0), | |
| 'porch': ( 0, 0, 0, 0, 0), | |
| # Common verbs that are context-dependent | |
| 'see': ( 0, 0, 0, 0, 0), | |
| 'saw': ( 0, 0, 0, 0, 0), | |
| 'went': ( 0, 0, 0, 0, 0), | |
| 'going': ( 0, 0, 0, 0, 0), | |
| 'come': ( 0, 0, 0, 0, 0), | |
| 'coming': ( 0, 0, 0, 0, 0), | |
| 'pick': ( 0, 0, 0, 0, 0), | |
| 'picked': ( 0, 0, 0, 0, 0), | |
| 'called': ( 0, 0, 0, 0, 0), | |
| 'calling': ( 0, 0, 0, 0, 0), | |
| 'stopped': ( 0, 0, 0, 0, 0), | |
| 'told': ( 0, 0, 0, 0, 0), | |
| 'tell': ( 0, 0, 0, 0, 0), | |
| 'doing': ( 0, 0, 0, 0, 0), | |
| 'running': ( 0, 3, 0, 0, 0), | |
| 'walk': ( 0, 0, 0, 0, 0), | |
| 'run': ( 0, 3, 0, 0, 0), | |
| 'sit': ( 0, 0, 0, 0, 0), | |
| 'sitting': ( 0, 0, 0, 0, 0), | |
| 'standing': ( 0, 0, 0, 0, 0), | |
| 'waiting': ( 0, 0, 0, 0, 0), | |
| 'watching': ( 0, 0, 0, 0, 0), | |
| 'looking': ( 0, 0, 0, 0, 0), | |
| 'making': ( 0, 0, 0, 0, 0), | |
| 'working': ( 0, 0, 0, 0, 0), | |
| # Common adjectives that are neutral | |
| 'interesting': ( 0, 3, 0, 0, 0), | |
| 'actual': ( 0, 0, 0, 0, 0), | |
| 'able': ( 0, 0, 5, 0, 0), | |
| 'active': ( 0, 3, 0, 0, 0), | |
| 'available': ( 0, 0, 0, 0, 0), | |
| 'different': ( 0, 0, 0, 0, 0), | |
| 'certain': ( 0, 0, 5, 0, 0), | |
| 'real': ( 0, 0, 0, 0, 0), | |
| 'right': ( 0, 0, 0, 0, 0), # too liquid: "right" = correct OR direction | |
| 'wrong': (-10, 5, -5, 0, -5), # slightly negative — "wrong" has mild charge | |
| # Spatial/temporal that leaked dV | |
| 'last': ( 0, 0, 0, 5, 0), # "last night" ≠ "last" as finality. FINALITY role handles context. | |
| 'night': ( 0, 0, 0, 0, 0), | |
| 'morning': ( 0, 0, 0, 0, 0), | |
| 'day': ( 0, 0, 0, 0, 0), | |
| 'time': ( 0, 0, 0, 0, 0), | |
| 'today': ( 0, 0, 0, 0, 0), | |
| 'tomorrow': ( 0, 0, 0, 0, 0), | |
| 'week': ( 0, 0, 0, 0, 0), | |
| 'year': ( 0, 0, 0, 0, 0), | |
| 'month': ( 0, 0, 0, 0, 0), | |
| 'hour': ( 0, 0, 0, 0, 0), | |
| 'minute': ( 0, 0, 0, 0, 0), | |
| 'ago': ( 0, 0, 0, 0, 0), | |
| 'ahead': ( 8, 3, 5, 0, 0), # "go ahead" = permission, mild positive | |
| 'across': ( 0, 0, 0, 0, 0), | |
| 'abroad': ( 0, 0, 0, 0, 0), | |
| # Abstract nouns with bloated dV | |
| 'choice': ( 0, 3, 5, 0, 5), # neutral — context decides | |
| 'ability': ( 0, 0, 5, 0, 5), | |
| 'abilities': ( 0, 0, 5, 0, 5), | |
| 'access': ( 0, 0, 0, 0, 0), | |
| 'account': ( 0, 0, 0, 0, 0), | |
| 'activity': ( 0, 0, 0, 0, 0), | |
| 'add': ( 0, 0, 0, 0, 0), | |
| 'advice': ( 0, 0, 0, 0, 5), | |
| 'advantage': ( 5, 0, 5, 0, 5), # slight positive lean | |
| 'air': ( 0, 0, 0, 0, 0), | |
| 'airplane': ( 0, 0, 0, 0, 0), | |
| 'act': ( 0, 0, 0, 0, 0), | |
| 'action': ( 0, 3, 0, 0, 0), | |
| 'agreed': ( 3, 0, 0, 0, 0), | |
| 'agree': ( 3, 0, 0, 0, 0), | |
| 'aid': ( 5, 0, 0, 0, 5), | |
| 'admitted': ( 0, 0, 0, 0, 0), | |
| # Life events — these have HIGH gravity but LOW valence | |
| # "born" is not pos or neg. The CONTEXT determines it. | |
| # "my daughter was born" = pos. "stillborn" = devastating. | |
| 'born': ( 12, 10, 5, 5, 30), # mild positive, high G. "Born" implies new life. | |
| 'surgery': ( -5, 10, -8, 15, 25), # mild neg, high G | |
| 'bar': ( 0, 0, 0, 0, 5), | |
| 'passed': ( 5, 0, 0, 0, 10), # mild pos. "Passed the test" = achievement context. | |
| 'accepted': ( 15, 5, 8, 0, 15), # moderate positive. "Accepted" = inclusion. | |
| 'proposed': ( 15, 10, 8, 0, 25), # moderate positive, high G. | |
| 'daughter': ( 0, 0, 0, 0, 30), # person, high G | |
| 'son': ( 0, 0, 0, 0, 30), | |
| 'baby': ( 5, 5, 0, 0, 30), # slight positive, high G | |
| 'paycheck': ( 8, 0, 5, 0, 10), | |
| 'loans': ( -5, 0, -5, 0, 5), | |
| 'birthday': ( 10, 8, 0, 0, 20), # positive event, high G | |
| 'surprise': ( 5, 15, 0, 0, 10), # slight positive + arousal | |
| 'surprised': ( 5, 15, 0, 0, 10), | |
| 'happiest': ( 35, 15, 10, 0, 15), # superlative of happy | |
| # Words that are emotional but were way too hot | |
| 'layoffs': (-15, 10, -10, 10, 15), # was -35 | |
| 'doctor': ( 0, 5, -5, 5, 10), # was -24 | |
| # "cancelled" is context-dependent. Flight cancelled ≠ wedding cancelled. | |
| # Keep mild negative — inconvenience baseline. Structure amplifies. | |
| 'cancelled': (-12, 5, -5, 5, 5), # was -40 | |
| 'cancel': ( -8, 3, -3, 0, 0), | |
| # Common words that need force reduction | |
| 'forgot': ( -8, 3, -3, 0, -3), # was -25. Forgetting is a mild negative. | |
| 'broken': (-12, 5, -5, 0, -5), # "dishwasher is broken" ≠ "i am broken" | |
| 'failed': (-12, 5, -10, 5, -8), # "i failed my exam" = disappointment not devastation | |
| 'messed': ( -8, 3, -3, 0, -3), | |
| # "need" is too negative — "i need to do laundry" ≠ desperate need | |
| 'need': ( -5, 3, -3, 3, 5), # was -15. Keep mild negative for unmet need. | |
| 'renew': ( 0, 0, 0, 0, 0), | |
| 'license': ( 0, 0, 0, 0, 0), | |
| 'dishwasher': ( 0, 0, 0, 0, 0), | |
| 'porch': ( 0, 0, 0, 0, 0), | |
| 'oil': ( 0, 0, 0, 0, 0), | |
| 'saturday': ( 0, 0, 0, 0, 0), | |
| 'channel': ( 0, 0, 0, 0, 0), | |
| 'power': ( 0, 3, 5, 0, 5), # neutral with slight D lean | |
| 'coffee': ( 3, 0, 0, 0, 0), # very mild positive | |
| 'gonna': ( 0, 0, 0, 0, 0), | |
| 'grab': ( 0, 2, 0, 0, 0), | |
| # Missing verb forms + corrections | |
| 'murdered': (-25, 12, -10, 8, -8), | |
| 'murdering': (-25, 12, -10, 8, -8), | |
| 'suicidal': (-30, 15, -20, 15, -15), | |
| 'mondays': ( -5, 3, -3, 0, 0), | |
| 'suspense': ( 0, 8, 0, 5, 5), # arousal, not valence | |
| } | |
| EMOTIONAL_VOCABULARY.update(_V7_FIXES) | |
| # ── V8 MASS CORRECTION: zero 500+ inflated GAS atoms ── | |
| # These common words carried residual positive dV from V1 vocabulary. | |
| # Spot-check audit showed 59% accuracy on real text due to positive inflation. | |
| # Nuclear fix: zero all common nouns/verbs/adj with dV>10 and low G/A. | |
| # Genuinely positive emotional words (love, happy, proud, etc.) preserved. | |
| _V8_MASS_ZERO = { | |
| 'accept': (0, 5, 0, 0, 10), | |
| 'accepts': (0, 5, 0, 0, 10), | |
| 'accommodation': (0, 5, 0, 0, 15), | |
| 'accommodations': (0, 5, 0, 0, 15), | |
| 'ace': (0, -4, 0, 0, 10), | |
| 'achieve': (0, 5, 0, 0, 19), | |
| 'achieved': (0, 5, 0, 0, 15), | |
| 'adoptive': (0, 5, 0, 0, 18), | |
| 'adult': (0, 0, 0, 0, 16), | |
| 'advocates': (0, 5, 0, 0, 10), | |
| 'affirmed': (0, 5, 0, 0, 18), | |
| 'afford': (0, -5, 0, 0, 10), | |
| 'album': (0, -27, 0, 0, 6), | |
| 'ally': (0, 5, 0, 0, 12), | |
| 'allyship': (0, 5, 0, 0, 15), | |
| 'along': (0, -20, 0, 0, 5), | |
| 'alright': (0, -29, 0, 0, 9), | |
| 'amazed': (0, 5, 0, 0, 9), | |
| 'amused': (0, 5, 0, 0, 5), | |
| 'amusing': (0, 5, 0, 0, 0), | |
| 'animal': (0, 5, 0, 0, 10), | |
| 'answer': (0, 5, 0, 0, 16), | |
| 'anywhere': (0, -24, 0, 0, 1), | |
| 'apartments': (0, -29, 0, 0, 9), | |
| 'apologized': (0, -29, 0, 0, 0), | |
| 'apple': (0, 4, 0, 0, 0), | |
| 'applied': (0, 5, 0, 0, 14), | |
| 'appreciate': (0, 4, 0, 0, 8), | |
| 'appreciated': (0, -4, 0, 0, 19), | |
| 'appreciative': (0, -11, 0, 0, 14), | |
| 'approaching': (0, 5, 0, 0, 14), | |
| 'approved': (0, -13, 0, 0, 14), | |
| 'arrive': (0, -6, 0, 0, 12), | |
| 'arrived': (0, 5, 0, 0, 16), | |
| 'assistance': (0, 5, 0, 0, 10), | |
| 'assume': (0, -18, 0, 0, 10), | |
| 'assuming': (0, -20, 0, 0, 16), | |
| 'assured': (0, -15, 0, 0, 17), | |
| 'athletic': (0, 5, 0, 0, 16), | |
| 'attachment': (0, 5, 0, 0, 10), | |
| 'attend': (0, -13, 0, 0, 16), | |
| 'aura': (0, 5, 0, 0, 10), | |
| 'award': (0, 5, 0, 0, 14), | |
| 'babies': (0, 5, 0, 0, 8), | |
| 'babysit': (0, 5, 0, 0, 9), | |
| 'bahamas': (0, 5, 0, 0, 9), | |
| 'bake': (0, 5, 0, 0, 16), | |
| 'balmy': (0, -10, 0, 0, 8), | |
| 'banana': (0, 4, 0, 0, 0), | |
| 'band': (0, 5, 0, 0, 10), | |
| 'beaches': (0, 0, 0, 0, 10), | |
| 'beautifully': (0, 5, 0, 0, 10), | |
| 'beauty': (0, 5, 0, 0, 13), | |
| 'beef': (0, 5, 0, 0, 14), | |
| 'begin': (0, 5, 0, 0, 12), | |
| 'belief': (0, -11, 0, 0, 16), | |
| 'believed': (0, 5, 0, 0, 8), | |
| 'benefits': (0, 5, 0, 0, 8), | |
| 'benign': (0, -15, 0, 0, 15), | |
| 'bicycle': (0, 4, 0, 0, 9), | |
| 'bigger': (0, -2, 0, 0, 17), | |
| 'billion': (0, 5, 0, 0, 10), | |
| 'bit': (0, 5, 0, 0, 0), | |
| 'blessing': (0, 5, 0, 0, 15), | |
| 'blessings': (0, -11, 0, 0, 16), | |
| 'blooming': (0, 5, 0, 0, 12), | |
| 'blossoming': (0, 5, 0, 0, 15), | |
| 'blue': (0, -20, 0, 0, 0), | |
| 'bond': (0, 5, 0, 0, 10), | |
| 'boost': (0, 5, 0, 0, 16), | |
| 'bowling': (0, -11, 0, 0, 1), | |
| 'breast': (0, -11, 0, 0, 16), | |
| 'brownies': (0, -27, 0, 0, 14), | |
| 'buddies': (0, 5, 0, 0, 14), | |
| 'budding': (0, 5, 0, 0, 10), | |
| 'buffet': (0, 5, 0, 0, 10), | |
| 'built': (0, 5, 0, 0, 8), | |
| 'bunch': (0, 5, 0, 0, 10), | |
| 'burger': (0, 5, 0, 0, 10), | |
| 'burrito': (0, 5, 0, 0, 14), | |
| 'bussin': (0, 5, 0, 0, 10), | |
| 'button': (0, 5, 0, 0, 0), | |
| 'cake': (0, 5, 0, 0, 0), | |
| 'calm': (0, -10, 0, 0, 8), | |
| 'calmed': (0, -10, 0, 0, 8), | |
| 'camping': (0, 5, 0, 0, 9), | |
| 'captivating': (0, 5, 0, 0, 12), | |
| 'careful': (0, 5, 0, 0, 0), | |
| 'cares': (0, 5, 0, 0, 10), | |
| 'carried': (0, 5, 0, 0, 10), | |
| 'celebrated': (0, 5, 0, 0, 8), | |
| 'celebrates': (0, 5, 0, 0, 8), | |
| 'celebrating': (0, 5, 0, 0, 19), | |
| 'cereal': (0, 5, 0, 0, 0), | |
| 'certainly': (0, 5, 0, 0, 16), | |
| 'certification': (0, 2, 0, 0, 13), | |
| 'certified': (0, 5, 0, 0, 15), | |
| 'championship': (0, 5, 0, 0, 15), | |
| 'charm': (0, 3, 0, 0, 0), | |
| 'charming': (0, 4, 0, 0, 0), | |
| 'cheesecake': (0, -18, 0, 0, 5), | |
| 'chef': (0, -6, 0, 0, 12), | |
| 'chemistry': (0, 4, 0, 0, 17), | |
| 'chicken': (0, 5, 0, 0, 8), | |
| 'chip': (0, 5, 0, 0, 8), | |
| 'chipotle': (0, 5, 0, 0, 16), | |
| 'chocolate': (0, 5, 0, 0, 0), | |
| 'chuckled': (0, 5, 0, 0, 5), | |
| 'cinematic': (0, 5, 0, 0, 15), | |
| 'circus': (0, 5, 0, 0, 10), | |
| 'cities': (0, 5, 0, 0, 17), | |
| 'clapped': (0, 5, 0, 0, 8), | |
| 'clean': (0, -5, 0, 0, 15), | |
| 'clear': (0, 5, 0, 0, 16), | |
| 'cleared': (0, -5, 0, 0, 8), | |
| 'closedon': (0, 5, 0, 0, 15), | |
| 'closest': (0, -18, 0, 0, 12), | |
| 'clothing': (0, -27, 0, 0, 10), | |
| 'clout': (0, 5, 0, 0, 10), | |
| 'club': (0, 5, 0, 0, 5), | |
| 'clubs': (0, 5, 0, 0, 19), | |
| 'clue': (0, -22, 0, 0, 5), | |
| 'coast': (0, -18, 0, 0, 12), | |
| 'colleague': (0, 5, 0, 0, 16), | |
| 'colors': (0, -13, 0, 0, 8), | |
| 'comforting': (0, -13, 0, 0, 14), | |
| 'comic': (0, -4, 0, 0, 9), | |
| 'comics': (0, 5, 0, 0, 6), | |
| 'commitment': (0, 5, 0, 0, 16), | |
| 'community': (0, 5, 0, 0, 16), | |
| 'company': (0, -6, 0, 0, 19), | |
| 'compelling': (0, 5, 0, 0, 10), | |
| 'complete': (0, 5, 0, 0, 16), | |
| 'completed': (0, -11, 0, 0, 16), | |
| 'completely': (0, 5, 0, 0, 0), | |
| 'conference': (0, 5, 0, 0, 17), | |
| 'confident': (0, 5, 0, 0, 10), | |
| 'congratulation': (0, 5, 0, 0, 17), | |
| 'connection': (0, 5, 0, 0, 16), | |
| 'consider': (0, -24, 0, 0, 14), | |
| 'contact': (0, -13, 0, 0, 16), | |
| 'cooked': (0, 5, 0, 0, 5), | |
| 'cookie': (0, 5, 0, 0, 0), | |
| 'cooking': (0, 5, 0, 0, 5), | |
| 'coregulate': (0, -10, 0, 0, 12), | |
| 'counselor': (0, -11, 0, 0, 16), | |
| 'counter': (0, 5, 0, 0, 0), | |
| 'couple': (0, 4, 0, 0, 10), | |
| 'course': (0, -2, 0, 0, 8), | |
| 'courses': (0, -15, 0, 0, 16), | |
| 'cousins': (0, -15, 0, 0, 14), | |
| 'creative': (0, 2, 0, 0, 19), | |
| 'danced': (0, 5, 0, 0, 12), | |
| 'dancing': (0, 5, 0, 0, 10), | |
| 'deal': (0, 5, 0, 0, 16), | |
| 'dealing': (0, -15, 0, 0, 19), | |
| 'dear': (0, -4, 0, 0, 14), | |
| 'decent': (0, -15, 0, 0, 13), | |
| 'dedication': (0, -2, 0, 0, 14), | |
| 'deep': (0, 5, 0, 0, 16), | |
| 'defended': (0, 5, 0, 0, 10), | |
| 'defends': (0, 5, 0, 0, 10), | |
| 'definitely': (0, 5, 0, 0, 16), | |
| 'degree': (0, 5, 0, 0, 15), | |
| 'delicious': (0, 5, 0, 0, 14), | |
| 'delightful': (0, 5, 0, 0, 8), | |
| 'delivery': (0, 5, 0, 0, 10), | |
| 'demure': (0, -15, 0, 0, 5), | |
| 'dessert': (0, 5, 0, 0, 0), | |
| 'dialogue': (0, 5, 0, 0, 10), | |
| 'digital': (0, -22, 0, 0, 16), | |
| 'dignity': (0, 5, 0, 0, 15), | |
| 'donation': (0, 5, 0, 0, 10), | |
| 'donations': (0, 5, 0, 0, 10), | |
| 'donor': (0, 5, 0, 0, 15), | |
| 'dream': (0, 5, 0, 0, 15), | |
| 'drinks': (0, 5, 0, 0, 10), | |
| 'drip': (0, 5, 0, 0, 10), | |
| 'ease': (0, -9, 0, 0, 9), | |
| 'easier': (0, -5, 0, 0, 5), | |
| 'easily': (0, 5, 0, 0, 10), | |
| 'east': (0, 5, 0, 0, 0), | |
| 'easy': (0, -20, 0, 0, 16), | |
| 'education': (0, 5, 0, 0, 8), | |
| 'eggs': (0, 5, 0, 0, 4), | |
| 'electronics': (0, 5, 0, 0, 17), | |
| 'employable': (0, 5, 0, 0, 10), | |
| 'empowered': (0, 5, 0, 0, 15), | |
| 'engaged': (0, 5, 0, 0, 19), | |
| 'engaging': (0, 5, 0, 0, 8), | |
| 'enjoyable': (0, 5, 0, 0, 8), | |
| 'enter': (0, -6, 0, 0, 12), | |
| 'entertained': (0, 5, 0, 0, 5), | |
| 'entertaining': (0, 5, 0, 0, 8), | |
| 'entertainment': (0, 0, 0, 0, 6), | |
| 'episode': (0, -24, 0, 0, 14), | |
| 'especially': (0, 5, 0, 0, 10), | |
| 'europe': (0, 0, 0, 0, 16), | |
| 'everyday': (0, -20, 0, 0, 14), | |
| 'excelling': (0, 5, 0, 0, 18), | |
| 'excitement': (0, 5, 0, 0, 8), | |
| 'expected': (0, -15, 0, 0, 17), | |
| 'experienced': (0, 5, 0, 0, 17), | |
| 'experiences': (0, 5, 0, 0, 16), | |
| 'explain': (0, 5, 0, 0, 10), | |
| 'exquisite': (0, 5, 0, 0, 15), | |
| 'exquisitely': (0, 5, 0, 0, 0), | |
| 'fairly': (0, -6, 0, 0, 14), | |
| 'faithful': (0, 5, 0, 0, 8), | |
| 'families': (0, -24, 0, 0, 14), | |
| 'fan': (0, 5, 0, 0, 16), | |
| 'fancy': (0, 5, 0, 0, 10), | |
| 'favor': (0, -15, 0, 0, 9), | |
| 'favorite': (0, 5, 0, 0, 14), | |
| 'favourite': (0, 0, 0, 0, 16), | |
| 'feed': (0, 5, 0, 0, 10), | |
| 'feedback': (0, 5, 0, 0, 6), | |
| 'feeling': (0, -13, 0, 0, 9), | |
| 'fertile': (0, 5, 0, 0, 15), | |
| 'festival': (0, 5, 0, 0, 16), | |
| 'fiance': (0, -22, 0, 0, 9), | |
| 'fiancee': (0, 5, 0, 0, 14), | |
| 'figure': (0, -29, 0, 0, 12), | |
| 'figured': (0, 0, 0, 0, 14), | |
| 'fills': (0, 5, 0, 0, 10), | |
| 'finally': (0, -10, 0, 0, 10), | |
| 'finest': (0, 5, 0, 0, 12), | |
| 'finished': (0, 5, 0, 0, 5), | |
| 'flourishing': (0, 5, 0, 0, 18), | |
| 'flowers': (0, 5, 0, 0, 10), | |
| 'flying': (0, 5, 0, 0, 16), | |
| 'fond': (0, 5, 0, 0, 12), | |
| 'fondly': (0, -27, 0, 0, 16), | |
| 'forward': (0, -6, 0, 0, 16), | |
| 'freshman': (0, 5, 0, 0, 8), | |
| 'friendly': (0, -9, 0, 0, 14), | |
| 'fries': (0, 5, 0, 0, 10), | |
| 'fun': (0, 5, 0, 0, 5), | |
| 'fundraiser': (0, 5, 0, 0, 10), | |
| 'funny': (0, 5, 0, 0, 5), | |
| 'gaming': (0, 5, 0, 0, 12), | |
| 'gender': (0, -27, 0, 0, 17), | |
| 'general': (0, 0, 0, 0, 17), | |
| 'generation': (0, -2, 0, 0, 16), | |
| 'generosity': (0, 5, 0, 0, 10), | |
| 'gesture': (0, -4, 0, 0, 6), | |
| 'gifts': (0, 5, 0, 0, 10), | |
| 'glad': (0, 5, 0, 0, 14), | |
| 'glasses': (0, 4, 0, 0, 4), | |
| 'goeshard': (0, 5, 0, 0, 8), | |
| 'gold': (0, 5, 0, 0, 6), | |
| 'golden': (0, 0, 0, 0, 10), | |
| 'google': (0, 5, 0, 0, 0), | |
| 'gracious': (0, 5, 0, 0, 18), | |
| 'grad': (0, 2, 0, 0, 14), | |
| 'grandparents': (0, -27, 0, 0, 10), | |
| 'greater': (0, 5, 0, 0, 6), | |
| 'grew': (0, 5, 0, 0, 10), | |
| 'gripping': (0, 5, 0, 0, 12), | |
| 'grounded': (0, -20, 0, 0, 12), | |
| 'grounding': (0, -15, 0, 0, 10), | |
| 'growing': (0, 5, 0, 0, 16), | |
| 'growth': (0, 5, 0, 0, 19), | |
| 'guest': (0, -2, 0, 0, 16), | |
| 'guitar': (0, 4, 0, 0, 9), | |
| 'haircut': (0, -27, 0, 0, 1), | |
| 'handful': (0, 5, 0, 0, 8), | |
| 'handle': (0, 5, 0, 0, 19), | |
| 'happiest': (0, 5, 0, 0, 15), | |
| 'harmonious': (0, -5, 0, 0, 18), | |
| 'harmony': (0, -5, 0, 0, 18), | |
| 'healthier': (0, -6, 0, 0, 16), | |
| 'hearing': (0, -2, 0, 0, 16), | |
| 'held': (0, 5, 0, 0, 16), | |
| 'hello': (0, 5, 0, 0, 8), | |
| 'help': (0, 5, 0, 0, 10), | |
| 'helped': (0, 5, 0, 0, 10), | |
| 'helpful': (0, 5, 0, 0, 10), | |
| 'helping': (0, 5, 0, 0, 10), | |
| 'helps': (0, 5, 0, 0, 9), | |
| 'hers': (0, 0, 0, 0, 0), | |
| 'hey': (0, 5, 0, 0, 8), | |
| 'hi': (0, 5, 0, 0, 6), | |
| 'higher': (0, 2, 0, 0, 16), | |
| 'highly': (0, 5, 0, 0, 16), | |
| 'hiking': (0, 5, 0, 0, 13), | |
| 'hire': (0, 5, 0, 0, 14), | |
| 'hired': (0, 5, 0, 0, 10), | |
| 'historic': (0, 5, 0, 0, 9), | |
| 'hits': (0, 5, 0, 0, 15), | |
| 'hobby': (0, 4, 0, 0, 9), | |
| 'homemade': (0, -13, 0, 0, 9), | |
| 'hometown': (0, -13, 0, 0, 13), | |
| 'honey': (0, -4, 0, 0, 0), | |
| 'hopefully': (0, 0, 0, 0, 5), | |
| 'hopes': (0, 0, 0, 0, 17), | |
| 'hoping': (0, 5, 0, 0, 16), | |
| 'horizon': (0, 5, 0, 0, 0), | |
| 'host': (0, -6, 0, 0, 14), | |
| 'hug': (0, -6, 0, 0, 13), | |
| 'humbled': (0, 5, 0, 0, 18), | |
| 'imaginative': (0, 5, 0, 0, 0), | |
| 'important': (0, 5, 0, 0, 7), | |
| 'impressed': (0, 5, 0, 0, 8), | |
| 'impression': (0, 5, 0, 0, 16), | |
| 'impressive': (0, 5, 0, 0, 10), | |
| 'improve': (0, 5, 0, 0, 16), | |
| 'improving': (0, 0, 0, 0, 16), | |
| 'included': (0, -18, 0, 0, 19), | |
| 'incredibly': (0, 5, 0, 0, 10), | |
| 'indeed': (0, 0, 0, 0, 19), | |
| 'innocent': (0, 5, 0, 0, 16), | |
| 'inspiration': (0, 5, 0, 0, 19), | |
| 'integrity': (0, 5, 0, 0, 12), | |
| 'interest': (0, 5, 0, 0, 5), | |
| 'internet': (0, 5, 0, 0, 0), | |
| 'invest': (0, 5, 0, 0, 0), | |
| 'invited': (0, 5, 0, 0, 10), | |
| 'ipad': (0, 5, 0, 0, 16), | |
| 'iphone': (0, 5, 0, 0, 17), | |
| 'japan': (0, -4, 0, 0, 14), | |
| 'joined': (0, -20, 0, 0, 16), | |
| 'juice': (0, 5, 0, 0, 0), | |
| 'killedit': (0, 5, 0, 0, 10), | |
| 'kindergarten': (0, -2, 0, 0, 5), | |
| 'knowing': (0, -11, 0, 0, 13), | |
| 'landed': (0, 5, 0, 0, 12), | |
| 'laptop': (0, 5, 0, 0, 10), | |
| 'lawn': (0, -18, 0, 0, 19), | |
| 'lead': (0, 5, 0, 0, 16), | |
| 'leading': (0, -9, 0, 0, 10), | |
| 'league': (0, -27, 0, 0, 8), | |
| 'learned': (0, 5, 0, 0, 8), | |
| 'lesson': (0, 5, 0, 0, 8), | |
| 'licensed': (0, 5, 0, 0, 12), | |
| 'likely': (0, -24, 0, 0, 6), | |
| 'liking': (0, 5, 0, 0, 16), | |
| 'lining': (0, -9, 0, 0, 10), | |
| 'lol': (0, 5, 0, 0, 0), | |
| 'lotto': (0, 5, 0, 0, 16), | |
| 'lovely': (0, 5, 0, 0, 10), | |
| 'lover': (0, 5, 0, 0, 14), | |
| 'loves': (0, 5, 0, 0, 9), | |
| 'lucid': (0, 5, 0, 0, 15), | |
| 'lucidity': (0, 5, 0, 0, 15), | |
| 'lullaby': (0, -10, 0, 0, 15), | |
| 'luminous': (0, 5, 0, 0, 18), | |
| 'made': (0, 5, 0, 0, 5), | |
| 'main': (0, 5, 0, 0, 8), | |
| 'maintain': (0, -18, 0, 0, 19), | |
| 'makeup': (0, 5, 0, 0, 0), | |
| 'manageable': (0, -5, 0, 0, 10), | |
| 'management': (0, 0, 0, 0, 16), | |
| 'mariachi': (0, 5, 0, 0, 5), | |
| 'married': (0, 5, 0, 0, 16), | |
| 'marry': (0, 5, 0, 0, 16), | |
| 'massage': (0, -24, 0, 0, 9), | |
| 'mate': (0, -6, 0, 0, 14), | |
| 'means': (0, -22, 0, 0, 5), | |
| 'melodic': (0, 5, 0, 0, 10), | |
| 'melody': (0, 5, 0, 0, 12), | |
| 'member': (0, -29, 0, 0, 16), | |
| 'memorable': (0, 5, 0, 0, 18), | |
| 'memorized': (0, 5, 0, 0, 10), | |
| 'mesmerizing': (0, 5, 0, 0, 15), | |
| 'million': (0, 5, 0, 0, 10), | |
| 'mindful': (0, -10, 0, 0, 10), | |
| 'mindfulness': (0, -10, 0, 0, 10), | |
| 'mindset': (0, 5, 0, 0, 10), | |
| 'mine': (0, -13, 0, 0, 16), | |
| 'moment': (0, 5, 0, 0, 10), | |
| 'mommy': (0, -11, 0, 0, 9), | |
| 'mood': (0, -4, 0, 0, 0), | |
| 'motivation': (0, 5, 0, 0, 17), | |
| 'multiple': (0, 2, 0, 0, 14), | |
| 'music': (0, 5, 0, 0, 7), | |
| 'musical': (0, 5, 0, 0, 13), | |
| 'natural': (0, 5, 0, 0, 16), | |
| 'naturally': (0, -18, 0, 0, 12), | |
| 'nature': (0, -27, 0, 0, 14), | |
| 'near': (0, 5, 0, 0, 10), | |
| 'neat': (0, -22, 0, 0, 10), | |
| 'nephew': (0, 5, 0, 0, 0), | |
| 'newborn': (0, 5, 0, 0, 9), | |
| 'nicer': (0, -20, 0, 0, 9), | |
| 'niece': (0, 5, 0, 0, 0), | |
| 'nintendo': (0, 4, 0, 0, 8), | |
| 'nostalgia': (0, 5, 0, 0, 0), | |
| 'nostalgic': (0, 5, 0, 0, 0), | |
| 'nowadays': (0, -27, 0, 0, 6), | |
| 'nuanced': (0, 5, 0, 0, 10), | |
| 'occasion': (0, -9, 0, 0, 8), | |
| 'online': (0, 5, 0, 0, 10), | |
| 'optimistic': (0, 5, 0, 0, 10), | |
| 'orange': (0, 5, 0, 0, 0), | |
| 'others': (0, 5, 0, 0, 0), | |
| 'outfit': (0, -2, 0, 0, 19), | |
| 'outlook': (0, 2, 0, 0, 13), | |
| 'outside': (0, 5, 0, 0, 0), | |
| 'ovation': (0, 5, 0, 0, 10), | |
| 'overcame': (0, 5, 0, 0, 10), | |
| 'owner': (0, -4, 0, 0, 17), | |
| 'paid': (0, 5, 0, 0, 10), | |
| 'painting': (0, -15, 0, 0, 5), | |
| 'pair': (0, 5, 0, 0, 14), | |
| 'panama': (0, 0, 0, 0, 10), | |
| 'pass': (0, 5, 0, 0, 18), | |
| 'pasta': (0, 5, 0, 0, 8), | |
| 'path': (0, 5, 0, 0, 10), | |
| 'payday': (0, 5, 0, 0, 13), | |
| 'performances': (0, 1, 0, 0, 4), | |
| 'personality': (0, 0, 0, 0, 19), | |
| 'piano': (0, -27, 0, 0, 9), | |
| 'pie': (0, -9, 0, 0, 8), | |
| 'pink': (0, 5, 0, 0, 0), | |
| 'plant': (0, 5, 0, 0, 16), | |
| 'play': (0, 5, 0, 0, 16), | |
| 'pleasure': (0, 5, 0, 0, 17), | |
| 'plus': (0, 0, 0, 0, 16), | |
| 'poem': (0, 5, 0, 0, 10), | |
| 'poems': (0, 5, 0, 0, 10), | |
| 'pop': (0, 2, 0, 0, 10), | |
| 'popular': (0, 5, 0, 0, 16), | |
| 'position': (0, -9, 0, 0, 8), | |
| 'possibility': (0, 0, 0, 0, 10), | |
| 'possible': (0, 5, 0, 0, 8), | |
| 'potato': (0, 4, 0, 0, 8), | |
| 'potential': (0, 5, 0, 0, 6), | |
| 'powerful': (0, 5, 0, 0, 10), | |
| 'practice': (0, 5, 0, 0, 10), | |
| 'prefer': (0, -20, 0, 0, 17), | |
| 'prep': (0, 2, 0, 0, 14), | |
| 'prepare': (0, 5, 0, 0, 14), | |
| 'preparing': (0, 5, 0, 0, 19), | |
| 'presence': (0, -4, 0, 0, 13), | |
| 'presents': (0, -9, 0, 0, 9), | |
| 'private': (0, -13, 0, 0, 17), | |
| 'privileged': (0, 5, 0, 0, 15), | |
| 'prize': (0, 5, 0, 0, 19), | |
| 'pro': (0, -6, 0, 0, 19), | |
| 'productive': (0, 5, 0, 0, 16), | |
| 'progress': (0, 5, 0, 0, 8), | |
| 'promoted': (0, 5, 0, 0, 10), | |
| 'properly': (0, -20, 0, 0, 13), | |
| 'proposal': (0, 5, 0, 0, 15), | |
| 'protective': (0, 5, 0, 0, 15), | |
| 'published': (0, 5, 0, 0, 12), | |
| 'pup': (0, -13, 0, 0, 6), | |
| 'puppies': (0, 5, 0, 0, 5), | |
| 'purchased': (0, 5, 0, 0, 8), | |
| 'quality': (0, 5, 0, 0, 16), | |
| 'rabbit': (0, -29, 0, 0, 0), | |
| 'radiant': (0, 5, 0, 0, 18), | |
| 'ramen': (0, 5, 0, 0, 8), | |
| 'receive': (0, -6, 0, 0, 17), | |
| 'received': (0, -11, 0, 0, 12), | |
| 'recognition': (0, 5, 0, 0, 18), | |
| 'recognized': (0, -4, 0, 0, 17), | |
| 'record': (0, 5, 0, 0, 16), | |
| 'recover': (0, 5, 0, 0, 16), | |
| 'recovery': (0, 5, 0, 0, 16), | |
| 'reframe': (0, 5, 0, 0, 10), | |
| 'refreshing': (0, 5, 0, 0, 8), | |
| 'relate': (0, 0, 0, 0, 16), | |
| 'related': (0, -24, 0, 0, 12), | |
| 'relative': (0, 5, 0, 0, 0), | |
| 'relaxation': (0, -22, 0, 0, 8), | |
| 'relaxing': (0, -29, 0, 0, 9), | |
| 'rely': (0, -4, 0, 0, 12), | |
| 'remembered': (0, -22, 0, 0, 13), | |
| 'remembers': (0, 5, 0, 0, 10), | |
| 'reminisce': (0, 0, 0, 0, 9), | |
| 'reminiscing': (0, -11, 0, 0, 8), | |
| 'remote': (0, -18, 0, 0, 0), | |
| 'renewed': (0, 5, 0, 0, 8), | |
| 'resilient': (0, 5, 0, 0, 10), | |
| 'resonance': (0, 5, 0, 0, 18), | |
| 'resonant': (0, 5, 0, 0, 15), | |
| 'respite': (0, -20, 0, 0, 15), | |
| 'responsibilities': (0, 5, 0, 0, 17), | |
| 'responsible': (0, 2, 0, 0, 17), | |
| 'returned': (0, 5, 0, 0, 8), | |
| 'reunion': (0, 0, 0, 0, 14), | |
| 'review': (0, -15, 0, 0, 17), | |
| 'rich': (0, 5, 0, 0, 16), | |
| 'riding': (0, 5, 0, 0, 17), | |
| 'riveting': (0, 5, 0, 0, 15), | |
| 'rock': (0, -5, 0, 0, 15), | |
| 'roommate': (0, -4, 0, 0, 16), | |
| 'salad': (0, -4, 0, 0, 0), | |
| 'salary': (0, 5, 0, 0, 0), | |
| 'sale': (0, 5, 0, 0, 16), | |
| 'sandwich': (0, 5, 0, 0, 4), | |
| 'satisfying': (0, 5, 0, 0, 19), | |
| 'save': (0, 5, 0, 0, 8), | |
| 'science': (0, 5, 0, 0, 14), | |
| 'scored': (0, 5, 0, 0, 8), | |
| 'seafood': (0, 0, 0, 0, 1), | |
| 'season': (0, -6, 0, 0, 9), | |
| 'security': (0, 5, 0, 0, 11), | |
| 'self': (0, -24, 0, 0, 12), | |
| 'sensitive': (0, -13, 0, 0, 1), | |
| 'sentimental': (0, -29, 0, 0, 0), | |
| 'serene': (0, -15, 0, 0, 18), | |
| 'served': (0, -15, 0, 0, 0), | |
| 'service': (0, -15, 0, 0, 12), | |
| 'settle': (0, 2, 0, 0, 16), | |
| 'shape': (0, 0, 0, 0, 2), | |
| 'share': (0, 5, 0, 0, 16), | |
| 'sharing': (0, -2, 0, 0, 10), | |
| 'shining': (0, 5, 0, 0, 19), | |
| 'shopping': (0, -4, 0, 0, 14), | |
| 'shrimp': (0, 5, 0, 0, 0), | |
| 'significant': (0, 5, 0, 0, 16), | |
| 'simple': (0, -13, 0, 0, 10), | |
| 'sincerely': (0, 5, 0, 0, 12), | |
| 'singing': (0, 5, 0, 0, 12), | |
| 'skateboard': (0, 5, 0, 0, 5), | |
| 'skiing': (0, 5, 0, 0, 13), | |
| 'skill': (0, 5, 0, 0, 17), | |
| 'skills': (0, 5, 0, 0, 7), | |
| 'slay': (0, 5, 0, 0, 10), | |
| 'smooth': (0, 5, 0, 0, 9), | |
| 'snacks': (0, -2, 0, 0, 4), | |
| 'socialize': (0, 5, 0, 0, 17), | |
| 'socks': (0, -18, 0, 0, 4), | |
| 'soda': (0, 5, 0, 0, 0), | |
| 'softball': (0, 5, 0, 0, 16), | |
| 'solid': (0, 5, 0, 0, 15), | |
| 'sometimes': (0, 0, 0, 0, 10), | |
| 'soothing': (0, -15, 0, 0, 15), | |
| 'south': (0, 5, 0, 0, 4), | |
| 'spaghetti': (0, -24, 0, 0, 5), | |
| 'specific': (0, -20, 0, 0, 19), | |
| 'speech': (0, -6, 0, 0, 19), | |
| 'sport': (0, 5, 0, 0, 14), | |
| 'sports': (0, 5, 0, 0, 12), | |
| 'spring': (0, 5, 0, 0, 0), | |
| 'stable': (0, -15, 0, 0, 15), | |
| 'stamp': (0, 5, 0, 0, 8), | |
| 'start': (0, 5, 0, 0, 12), | |
| 'steak': (0, 5, 0, 0, 19), | |
| 'stellar': (0, 5, 0, 0, 18), | |
| 'storage': (0, 5, 0, 0, 16), | |
| 'strength': (0, 5, 0, 0, 10), | |
| 'strong': (0, 5, 0, 0, 8), | |
| 'stronger': (0, 5, 0, 0, 7), | |
| 'studied': (0, -15, 0, 0, 16), | |
| 'style': (0, -6, 0, 0, 19), | |
| 'succeeded': (0, 5, 0, 0, 15), | |
| 'succeeding': (0, 5, 0, 0, 15), | |
| 'successful': (0, 5, 0, 0, 19), | |
| 'suddenly': (0, 2, 0, 0, 8), | |
| 'summer': (0, 5, 0, 0, 0), | |
| 'sundays': (0, -27, 0, 0, 9), | |
| 'sunset': (0, -5, 0, 0, 8), | |
| 'super': (0, 5, 0, 0, 16), | |
| 'supermarket': (0, 5, 0, 0, 16), | |
| 'supper': (0, -11, 0, 0, 16), | |
| 'supplies': (0, -20, 0, 0, 17), | |
| 'support': (0, 5, 0, 0, 12), | |
| 'supporting': (0, 5, 0, 0, 10), | |
| 'supportive': (0, -6, 0, 0, 14), | |
| 'surprises': (0, 5, 0, 0, 14), | |
| 'surprising': (0, 5, 0, 0, 16), | |
| 'surprisingly': (0, 5, 0, 0, 17), | |
| 'survivor': (0, 5, 0, 0, 15), | |
| 'sushi': (0, 5, 0, 0, 0), | |
| 'sweetest': (0, 0, 0, 0, 10), | |
| 'sweetheart': (0, -6, 0, 0, 14), | |
| 'sweets': (0, -6, 0, 0, 8), | |
| 'symphonic': (0, 5, 0, 0, 18), | |
| 'taco': (0, 5, 0, 0, 0), | |
| 'talented': (0, 5, 0, 0, 10), | |
| 'taught': (0, 5, 0, 0, 10), | |
| 'teach': (0, 5, 0, 0, 16), | |
| 'teaching': (0, -4, 0, 0, 14), | |
| 'team': (0, 5, 0, 0, 16), | |
| 'thanking': (0, 5, 0, 0, 10), | |
| 'thawing': (0, 5, 0, 0, 10), | |
| 'thicc': (0, 5, 0, 0, 5), | |
| 'thrill': (0, 5, 0, 0, 16), | |
| 'thrilling': (0, 5, 0, 0, 10), | |
| 'tip': (0, 5, 0, 0, 0), | |
| 'toast': (0, -22, 0, 0, 8), | |
| 'toddler': (0, -6, 0, 0, 9), | |
| 'together': (0, 5, 0, 0, 16), | |
| 'touched': (0, 5, 0, 0, 18), | |
| 'tour': (0, 5, 0, 0, 12), | |
| 'transfer': (0, -2, 0, 0, 14), | |
| 'transportation': (0, 5, 0, 0, 9), | |
| 'travel': (0, 5, 0, 0, 13), | |
| 'traveling': (0, 5, 0, 0, 13), | |
| 'travelling': (0, 5, 0, 0, 10), | |
| 'try': (0, 5, 0, 0, 8), | |
| 'tune': (0, -4, 0, 0, 9), | |
| 'ultrasound': (0, 5, 0, 0, 0), | |
| 'understand': (0, 5, 0, 0, 10), | |
| 'understandable': (0, -11, 0, 0, 9), | |
| 'understanding': (0, -15, 0, 0, 14), | |
| 'understood': (0, -4, 0, 0, 13), | |
| 'unfiltered': (0, 5, 0, 0, 10), | |
| 'unique': (0, 5, 0, 0, 7), | |
| 'upcoming': (0, -9, 0, 0, 14), | |
| 'upskill': (0, 5, 0, 0, 10), | |
| 'upskilling': (0, 5, 0, 0, 10), | |
| 'upstairs': (0, -15, 0, 0, 17), | |
| 'utterly': (0, 5, 0, 0, 0), | |
| 'validate': (0, 5, 0, 0, 10), | |
| 'validated': (0, 5, 0, 0, 15), | |
| 'validates': (0, 5, 0, 0, 10), | |
| 'validation': (0, 5, 0, 0, 15), | |
| 'valuable': (0, 4, 0, 0, 19), | |
| 'value': (0, 5, 0, 0, 17), | |
| 'variety': (0, -6, 0, 0, 19), | |
| 'vegan': (0, 5, 0, 0, 0), | |
| 'vehicle': (0, 5, 0, 0, 9), | |
| 'verified': (0, 5, 0, 0, 10), | |
| 'vibe': (0, 5, 0, 0, 15), | |
| 'vibes': (0, 5, 0, 0, 10), | |
| 'vibing': (0, 5, 0, 0, 15), | |
| 'view': (0, -18, 0, 0, 13), | |
| 'visit': (0, -4, 0, 0, 6), | |
| 'visiting': (0, -9, 0, 0, 16), | |
| 'vital': (0, 5, 0, 0, 7), | |
| 'volunteer': (0, -6, 0, 0, 13), | |
| 'w': (0, 5, 0, 0, 10), | |
| 'warrior': (0, 5, 0, 0, 10), | |
| 'washing': (0, -18, 0, 0, 5), | |
| 'ways': (0, 5, 0, 0, 8), | |
| 'welcomed': (0, 5, 0, 0, 10), | |
| 'west': (0, 5, 0, 0, 16), | |
| 'whenever': (0, -11, 0, 0, 0), | |
| 'white': (0, -9, 0, 0, 0), | |
| 'willing': (0, 4, 0, 0, 16), | |
| 'winning': (0, 5, 0, 0, 10), | |
| 'witty': (0, 5, 0, 0, 8), | |
| 'women': (0, 5, 0, 0, 10), | |
| 'word': (0, 5, 0, 0, 10), | |
| 'worked': (0, 5, 0, 0, 8), | |
| 'workout': (0, 5, 0, 0, 17), | |
| 'yay': (0, 5, 0, 0, 5), | |
| 'yes': (0, 4, 0, 0, 6), | |
| 'youth': (0, 5, 0, 0, 19), | |
| 'youtube': (0, 5, 0, 0, 17), | |
| 'yum': (0, -9, 0, 0, 9), | |
| } | |
| EMOTIONAL_VOCABULARY.update(_V8_MASS_ZERO) | |
| # ── V8 CORRECTIONS: restore wrongly-zeroed + add missing SOLID words ── | |
| _V8_CORRECTIONS = { | |
| # Restored positive emotional words (wrongly caught in mass zero) | |
| 'lovely': (25, 5, 10, 0, 10), | |
| 'delightful': (25, 8, 10, 0, 10), | |
| 'terrific': (25, 10, 10, 0, 8), | |
| 'marvelous': (30, 10, 12, 0, 12), | |
| 'splendid': (25, 8, 10, 0, 10), | |
| 'enjoyable': (20, 5, 8, 0, 8), | |
| 'pleasurable': (20, 5, 8, 0, 8), | |
| 'heartfelt': (25, 5, 10, 0, 12), | |
| 'touching': (20, 8, 5, 0, 10), | |
| 'uplifting': (25, 10, 10, 0, 10), | |
| 'encouraging': (20, 5, 10, 0, 8), | |
| 'promising': (15, 5, 8, 0, 8), | |
| 'fondly': (20, -5, 5, 0, 10), | |
| 'endearing': (20, 5, 5, 0, 10), | |
| 'beloved': (25, 5, 10, 0, 15), | |
| 'devoted': (20, 5, 10, 0, 15), | |
| 'help': (15, 5, 5, 0, 10), | |
| 'helped': (15, 5, 5, 0, 10), | |
| 'helping': (15, 5, 5, 0, 10), | |
| 'helpful': (15, 5, 5, 0, 10), | |
| 'yes': (12, 5, 5, 0, 5), # affirmation, mild positive | |
| 'yay': (20, 10, 5, 0, 5), # celebration | |
| 'noway': ( 5, 15, 0, 5, 5), # disbelief/hype compound, mild positive + arousal | |
| 'center': ( 0, 0, 0, 0, 0), # spatial noun, zero charge | |
| 'intelligence': ( 0, 0, 5, 0, 5), # abstract noun | |
| # LIQUID slang words: these need negative dV for SOLVENT dissolution to flip them positive | |
| # The mass zero killed them but SOLVENT physics needs them charged | |
| 'insane': (-20, 25, -10, 10, -5), # LIQUID: flips positive near SOLVENT | |
| 'crazy': (-15, 20, -5, 5, -3), # LIQUID | |
| 'wild': (-15, 25, 5, 5, 0), # LIQUID: "that was wild" = impressive in slang | |
| 'nuts': (-12, 15, -5, 5, -3), # LIQUID | |
| 'sick': (-15, 10, -5, 5, -5), # LIQUID: "thats sick" = positive in slang | |
| 'hard': (-10, 15, 10, 5, 0), # LIQUID: negative literal, flips positive in slang | |
| 'hit': ( 0, 10, 5, 5, 0), # "that hit different" = impactful | |
| 'broken': (-8, 5, -5, 0, -3), # LIQUID: reduced from -12 (too hot for mundane) | |
| 'shook': (-10, 20, -10, 5, -5), # LIQUID: surprise/awe in slang | |
| 'stupid': (-15, 10, -5, 0, -3), # LIQUID: "stupid good" = positive | |
| # Missing SOLID negative words — these must NEVER read positive | |
| 'raping': (-40, 25, -30, 20, -20), | |
| 'raped': (-40, 25, -30, 20, -20), | |
| 'rape': (-40, 25, -30, 20, -20), | |
| 'rapist': (-35, 20, -25, 15, -18), | |
| 'molested': (-35, 20, -25, 15, -18), | |
| 'molesting': (-35, 20, -25, 15, -18), | |
| 'trafficking': (-30, 15, -20, 15, -15), | |
| 'enslaved': (-35, 20, -25, 15, -18), | |
| 'genocide': (-40, 25, -30, 20, -20), | |
| 'massacre': (-35, 25, -25, 20, -18), | |
| 'atrocity': (-35, 20, -25, 15, -18), | |
| 'atrocities': (-35, 20, -25, 15, -18), | |
| # ── Slang positive atoms (missing or wrongly zeroed) ── | |
| 'bussin': (+40, 30, 20, 0, 15), # slang: excellent/delicious. Restore from mass zero. | |
| 'goated': (+35, 20, 25, 0, 20), # slang: greatest of all time | |
| 'clutch': (+30, 25, 25, 10, 15), # slang: came through when it mattered | |
| 'vibes': (+20, 10, 10, 0, 10), # slang: good energy | |
| 'vibe': (+15, 8, 8, 0, 8), # slang: energy/feel | |
| 'slay': (+30, 25, 25, 0, 15), # slang: killed it (fashion/performance) | |
| 'slayed': (+30, 25, 25, 0, 15), | |
| 'slaying': (+25, 20, 20, 0, 12), | |
| 'goat': (+30, 15, 25, 0, 20), # greatest of all time | |
| 'banger': (+30, 30, 20, 0, 15), # slang: great song/thing | |
| 'lit': (+25, 30, 15, 0, 10), # slang: exciting/fun | |
| 'poggers': (+25, 25, 15, 0, 10), # twitch: exciting moment | |
| 'pog': (+20, 20, 10, 0, 8), # twitch: hype | |
| 'hype': (+20, 30, 15, 5, 10), # excitement | |
| 'hyped': (+20, 25, 15, 5, 10), | |
| 'cracked': (+25, 25, 20, 0, 12), # slang: extremely skilled | |
| 'valid': (+15, 5, 10, 0, 8), # slang: acceptable/good take | |
| 'based': (+15, 10, 20, 0, 10), # slang: admirably independent | |
| 'gg': (+10, -5, 10, 0, 5), # good game | |
| 'ggs': (+10, -5, 10, 0, 5), | |
| 'wp': (+10, -5, 10, 0, 5), # well played | |
| # ── Discourse fillers: zero charge (these are SOLVENT catalysts, not atoms) ── | |
| 'tbh': (0, 0, 5, 0, 0), # "to be honest" — filler, not negative | |
| 'ngl': (0, 0, 5, 0, 0), # "not gonna lie" — filler, not negative | |
| 'bruh': (0, 5, 0, 0, 0), # exclamation/address — neutral filler | |
| 'fr': (0, 5, 0, 0, 0), # "for real" — emphasis, not charge | |
| 'deadass': (0, 10, 5, 0, 0), # emphasis/sincerity — not charge | |
| 'lowkey': (0, -5, 0, 0, 0), # hedging — zero charge | |
| 'highkey': (0, 10, 5, 0, 0), # emphasis — zero charge | |
| # ── Slang compound phrases and idioms ── | |
| 'goeshard': (+35, 25, 20, 0, 15), # "goes hard" = slang for excellent | |
| 'hitdifferent': (+25, 15, 10, 0, 12), # "hit different" = uniquely impactful | |
| # ── Words that need positive charge for slang context ── | |
| 'understood': (+18, 8, 12, 0, 10), # comprehension/mastery — "understood the assignment" | |
| 'assignment': (+12, 8, 8, 0, 8), # in slang: "understood the assignment" = nailed it | |
| # ── Mundane GAS atoms zeroed (should not carry emotional charge) ── | |
| 'late': (0, 5, 0, 10, 0), # mundane time concept. Urgency only, no valence. | |
| 'cat': (0, 0, 0, 0, 5), # animal noun, not an emotional event | |
| 'dog': (0, 0, 0, 0, 5), # animal noun | |
| 'coffee': (0, 0, 0, 0, 0), # beverage, not emotional | |
| 'game': (0, 5, 0, 0, 0), # activity noun | |
| 'feed': (0, 0, 0, 0, 5), # action verb, mundane | |
| 'runninglate': (0, 5, 0, 15, 0), # idiom: delayed, not fleeing. Urgency only. | |
| # ── Self-worth category fixes ── | |
| 'touch': (0, 5, 5, 0, 0), # GAS: "touch" is mechanical, not emotional | |
| 'matter': (0, 0, 0, 0, 5), # GAS: "matter" verb is neutral | |
| 'leaves': (-15, 15, -10, 5, -5), # "everyone leaves me" — departure verb | |
| 'ruin': (-25, 12, -10, 5, -8), # stronger: "i ruin everything" is self-destruction | |
| 'ruined': (-25, 12, -10, 5, -8), | |
| 'ruining': (-22, 10, -8, 5, -6), | |
| 'worst': (-35, 10, -20, 8, -10), # superlative negative (slightly reduced from -40) | |
| # ── Grief category fixes ── | |
| 'holidays': (0, 5, 0, 0, 10), # mundane time period, not inherently positive | |
| 'waves': (0, 5, 0, 0, 0), # physical phenomenon, not emotional | |
| 'voice': (0, 5, 5, 0, 5), # neutral: hearing someone's voice is context-dep | |
| 'hear': (0, 5, 0, 0, 0), # neutral perception verb | |
| 'song': (0, 5, 0, 0, 5), # neutral cultural object | |
| 'reminds': (-15, 8, -5, 5, -5), # reminder pulls toward past, mildly negative | |
| 'reminded': (-15, 8, -5, 5, -5), | |
| 'deadlines': (0, 5, 0, 15, 0), # work concept, urgency only. Not emotional. | |
| 'deadline': (0, 5, 0, 15, 0), | |
| 'same': (0, 0, 0, 0, 0), # comparison word, not negative | |
| # ── Betrayal/trust violation fixes ── | |
| 'trusted': (-18, 8, -15, 5, 15), # past tense: broken trust. "I trusted him" = betrayal. | |
| 'sided': (-15, 10, -10, 5, -5), # "sided with my ex" = taking sides against | |
| 'testified': (-20, 15, -15, 10, -10),# betrayal: family turning against | |
| 'against': (-12, 10, -5, 5, -3), # opposition, stronger than -5 | |
| 'recorded': (-20, 12, -15, 10, -8), # privacy violation — stronger | |
| 'private': (-8, -5, -10, 0, 12), # privacy context — mildly negative when violated | |
| 'conversations':(0, 0, 0, 0, 5), # neutral noun | |
| 'mentor': (0, 0, 5, 0, 15), # role noun, high gravity | |
| 'opinion': (0, 5, 5, 0, 0), # neutral noun (was -5) | |
| # ── Directed negative fixes ── | |
| 'regret': (-30, 12, -15, 5, -15), # stronger: "i regret every moment" | |
| 'deserve': (+15, 5, 10, 0, 10), # positive base: "you deserve happiness". Negation handles "you dont deserve". | |
| 'asked': (0, 5, 0, 5, 0), # neutral action verb | |
| 'talk': (0, 5, 0, 0, 0), # neutral verb | |
| 'moment': (0, 0, 0, 0, 0), # temporal noun, zero charge | |
| # ── Genuine positive / life event fixes ── | |
| 'passed': (+18, 5, 10, 0, 12), # achievement: "passed the exam" / "passed the bar" | |
| 'proposed': (+20, 12, 10, 0, 25), # life event: proposal. Bump from +15. | |
| 'surgery': (0, 8, -5, 15, 25), # medical noun: neutral V, high gravity. Not negative. | |
| 'dream': (+12, 5, 8, 0, 15), # as adjective: "dream school" / "dream job" = aspirational | |
| 'yes': (+18, 8, 8, 0, 8), # affirmation. Bump from +12 for "she said yes". | |
| 'camebacknegative': (+25, 10, 15, 0, 20), # medical idiom: test came back negative = GOOD NEWS | |
| 'donated': (-15, 8, -10, 5, 12), # LIQUID: giving away belongings (grief) or charity. Default negative. | |
| 'grow': (0, 5, 5, 0, 5), # neutral verb — context determines meaning | |
| 'old': (0, -5, -5, 0, 0), # neutral adjective | |
| 'life': (0, 0, 0, 0, 15), # abstract noun: reduced from dG=40 (too gravitational) | |
| 'madeitthrough': (+25, 10, 15, 0, 20), # resilience idiom: survived/endured | |
| 'madeit': (+20, 10, 15, 0, 15), # achievement: "i made it" = success | |
| # ── Remaining stress test fixes ── | |
| 'happiest': (+35, 15, 15, 0, 15), # superlative positive: "happiest ive been" | |
| 'happier': (+25, 10, 10, 0, 10), # comparative positive | |
| 'sabotaged': (-30, 20, -20, 15, -15), # deliberate destruction | |
| 'sabotage': (-28, 18, -18, 12, -12), | |
| 'sabotaging': (-25, 15, -15, 10, -10), | |
| 'goody': (-5, 5, -5, 0, 0), # sarcastic exclamation: slightly neg | |
| 'redo': (-8, 5, -5, 5, 0), # having to redo something: mildly neg | |
| 'decided': (0, 5, 15, 5, 10), # resolution. Neutral V, moderate D. Not massively empowering. | |
| 'decide': (0, 8, 15, 10, 10), # override: dD=99 was absurd. Decision is moderate control. | |
| 'nightmare': (-35, 30, -25, 30, -15), # reduced from -60. LIQUID: "parking nightmare" vs "living nightmare" | |
| # ── Blind holdout test fixes: inflated GAS atoms ── | |
| 'ready': (0, 5, 5, 5, 0), # "car will be ready" = mundane. Was +80 absurd. | |
| 'bench': (0, 0, 0, 0, 0), # furniture/park object. Was +66. | |
| 'moral': (0, 0, 5, 0, 5), # philosophical adjective. Was +43. | |
| 'control': (0, 0, 5, 0, 0), # "remote control" = mundane. Was +28. | |
| 'free': (5, 0, 5, 0, 0), # mild positive only. Was +28. | |
| 'freely': (5, 0, 5, 0, 0), | |
| # ── Missing slang ── | |
| 'rizz': (+25, 15, 20, 0, 10), # slang: charisma/game | |
| 'cooking': (+20, 15, 15, 0, 10), # slang: performing well ("bro is cooking") | |
| 'nocap': (+10, 10, 10, 0, 5), # slang: "no cap" = for real/genuine. Mild positive. | |
| # ── Blind holdout: false negatives on neutral text ── | |
| 'heavy': (0, 5, 5, 0, 0), # physical weight, not emotional. Was -32. | |
| 'empty': (-18, -8, -8, 0, -5), # LIQUID: "empty without her"=grief, "empty hallway"=descriptive. Compromise. | |
| 'cold': (-8, -5, -5, 0, 0), # temperature. Was -24. Mild negative only. | |
| 'rather': (0, 0, 0, 0, 0), # comparison word. Was -27. Zero charge. | |
| 'choked': (-15, 20, -10, 10, -5), # LIQUID: reduced from -75. "choked to death" vs "choked laughing" | |
| # ── Blind holdout: missing negatives ── | |
| 'sank': (-20, 10, -15, 5, -10), # "heart sank" = genuine disappointment | |
| 'stranded': (-20, 10, -15, 10, -8), # stuck/abandoned | |
| 'loathing': (-30, 15, -20, 5, -15), # genuine hatred | |
| 'delayed': (-10, 5, -5, 10, 0), # travel annoyance | |
| 'laid': (-15, 10, -10, 10, -5), # "laid off" context. Was -77 absurd. | |
| # ── Blind holdout: inflated positives used sarcastically ── | |
| 'fascinating': (0, 5, 5, 0, 5), # GAS: "fascinating" is often sarcastic. Was +51. | |
| 'amazing': (10, 10, 5, 0, 5), # reduced from +35. Often sarcastic in text. | |
| 'overjoyed': (20, 15, 10, 0, 10), # reduced from +90. LIQUID: genuine OR sarcastic. | |
| # ── Blind holdout: missing slang ── | |
| 'diff': (-10, 5, -10, 0, -5), # "diff" = you got outplayed. Negative. | |
| 'ratio': (-10, 10, -10, 0, -5), # slang: got ratioed = L | |
| 'cope': (-15, 5, -10, 0, -5), # slang: coping = denial | |
| 'copium': (-15, 5, -10, 0, -5), | |
| 'yikes': (-15, 10, -5, 5, -5), # slang: cringe/bad | |
| # ── Blind holdout batch 2: systemic inflation fixes ── | |
| 'ride': (0, 5, 5, 0, 0), # GAS: "the ride was smooth" mundane. Was +80. | |
| 'ensure': (0, 0, 5, 0, 0), # procedural verb. Was +51. | |
| 'positive': (5, 0, 5, 0, 0), # adjective — mild only. Was +48. | |
| 'twice': (0, 0, 0, 0, 0), # number word. Was +42. | |
| 'list': (0, 0, 0, 0, 0), # noun. Was +37. | |
| 'release': (0, 5, 5, 0, 0), # action verb. Was +39. | |
| 'wet': (0, 0, 0, 0, 0), # physical state. Was +28. | |
| 'woods': (0, 0, 0, 0, 5), # nature noun. Was +28. | |
| 'red': (0, 5, 0, 0, 0), # color. Was +28. | |
| # ── Blind holdout batch 2: false negative fixes ── | |
| 'toll': (0, 5, 0, 5, 0), # "toll" as cost/fee. Was -47. | |
| 'later': (0, 0, 0, 0, 0), # time word. Was -24. | |
| 'shut': (0, 5, 0, 0, 0), # "shut the door" mundane. Was -30. | |
| 'winter': (0, -5, -5, 0, 0), # season — mild only. Was -24. | |
| 'garbage': (-10, 5, -5, 0, -3), # LIQUID: "this is garbage" slang vs literal. Was -40. | |
| # ── Blind holdout batch 3: systemic high-frequency fixes ── | |
| 'good': (25, 8, 10, 0, 8), # reduced from +50. Still positive but not overwhelming. | |
| 'absolute': (0, 5, 5, 0, 0), # adjective/noun. Was +48. | |
| 'absolutely': (10, 10, 5, 0, 0), # intensifier — mild positive charge. Reduced from large pos. | |
| 'king': (0, 0, 5, 0, 10), # title noun. Was +37. | |
| 'queen': (0, 0, 5, 0, 10), # title noun. | |
| 'behavior': (0, 0, 0, 0, 0), # descriptive noun. Was +28. | |
| 'behaviour': (0, 0, 0, 0, 0), | |
| 'presentation': (0, 5, 0, 5, 5), # work noun. Was -24. | |
| 'killedit': (+25, 15, 15, 0, 10), # slang compound: "killed it" = nailed it. Was zeroed. | |
| # ── Council Round 8: compound bond vocabulary ── | |
| # Negative life events (molecular bonds) | |
| 'laidoff': (-60, 20, -35, 25, -20), # fired from job — needs to be strong to overcome surrounding atoms | |
| 'foodpoisoning':(-40, 20, -20, 25, -15), # illness | |
| 'brokedown': (-30, 15, -20, 15, -10), # mechanical/emotional failure | |
| 'lockedout': (-30, 15, -25, 15, -10), # excluded/stranded | |
| 'kickedout': (-40, 20, -30, 15, -15), # expelled | |
| 'passedaway': (-50, 10, -30, 10, -25), # death | |
| 'cutoff': (-25, 10, -20, 10, -10), # disconnected | |
| 'thrownout': (-35, 15, -25, 10, -12), # expelled/discarded | |
| 'rippedoff': (-35, 20, -25, 15, -12), # scammed | |
| 'wipedout': (-30, 15, -20, 15, -10), # exhausted/destroyed | |
| 'burnedout': (-35, 10, -25, 10, -15), # exhausted | |
| 'shutdown': (-20, 10, -15, 10, -8), # closed/rejected | |
| 'backedout': (-20, 10, -15, 10, -8), # withdrew | |
| 'droppedout': (-25, 10, -20, 10, -10), # quit | |
| 'soldout': (-15, 10, -15, 10, -5), # betrayed principles | |
| 'stressedout': (-30, 20, -20, 15, -12), # overwhelmed | |
| 'freakedout': (-25, 30, -15, 15, -10), # panicked | |
| 'ruledout': (-15, 5, -10, 5, -5), # eliminated option | |
| 'washedout': (-20, 5, -15, 5, -8), # faded/failed | |
| 'checkedout': (-15, -10, -10, 5, -5), # disengaged | |
| 'wifidown': (-20, 10, -10, 15, -5), # internet outage annoyance | |
| # Positive resolution events | |
| 'cancerfree': (+50, 15, 20, 10, 25), # medical relief | |
| 'debtfree': (+40, 10, 20, 5, 20), # financial liberation | |
| 'painfree': (+35, -5, 15, 5, 15), # physical relief | |
| 'pulledoff': (+30, 20, 20, 10, 15), # accomplished against odds | |
| 'pulledthrough':(+35, 10, 15, 5, 20), # survived/endured | |
| 'workedout': (+25, 10, 15, 5, 12), # resolved positively | |
| 'paidoff': (+30, 10, 15, 5, 15), # effort rewarded | |
| 'turnedaround': (+25, 10, 15, 5, 12), # reversal to positive | |
| # Neutral compounds | |
| 'login': (0, 0, 0, 5, 0), | |
| 'signup': (0, 5, 0, 5, 0), | |
| 'checkin': (0, 0, 0, 5, 0), | |
| 'pickup': (0, 5, 0, 5, 0), | |
| 'setup': (0, 5, 5, 5, 0), | |
| # ── Batch 3 verification: neg→neutral culprits zeroed ── | |
| 'sneak': (0, 5, 5, 5, 0), # action verb, not emotional. "sneak it over" = mundane. | |
| 'sneaking': (0, 5, 5, 5, 0), | |
| 'cursed': (-15, 10, -10, 5, -5), # LIQUID: reduced from -89. "cursed item" = plot device in games. | |
| 'mean': (0, 5, 0, 0, 0), # "what do you mean" = question. GAS. | |
| 'means': (0, 5, 0, 0, 0), | |
| 'complicated': (0, 5, -5, 5, 0), # descriptive adjective, not emotional. | |
| 'isnt': (0, 0, 0, 0, 0), # contraction "is not" — zero charge. | |
| 'rent': (0, 0, 0, 5, 0), # "rent payment" = mundane financial. | |
| # ── Council Round 6: GAS atoms wrongly charged (B2 crisis inflation) ── | |
| 'note': (0, 0, 0, 0, 5), # paper. GAS. "wrote a note" = neutral. | |
| 'decision': (0, 5, 10, 5, 10), # a choice. GAS. Not empowerment. | |
| 'wonder': (0, 5, 5, 0, 5), # thought verb. GAS. "i wonder" = neutral. | |
| 'wondering': (0, 5, 5, 0, 5), | |
| 'attic': (0, 0, 0, 0, 0), # a room. GAS. Zero charge. | |
| 'results': (0, 5, 0, 5, 5), # information. GAS. Neutral. | |
| } | |
| EMOTIONAL_VOCABULARY.update(_V8_CORRECTIONS) | |
| # ── NEUTRALIZER 2026-06-11 (docs/neutralizer_proposal.md, datasets/bias_audit.json) ── | |
| # Confidence-gated demotion: words whose LLM-in-isolation charge contradicted | |
| # sentence-level labels beyond the corpus baseline by > 0.20 with n >= 10 | |
| # sentences. Each word is demoted GAS -> LIQUID in engine/phase.py | |
| # (NEUTRALIZED_LIQUID) and its dV is attenuated here by | |
| # c_w = (1 - contradiction_rate). Other dimensions kept as-is (the audit only | |
| # measures V-sign contradiction). "love" deliberately NOT demoted: human-only | |
| # contradiction is 0.18 (below baseline 0.29); the headline 0.57 is inflated | |
| # by sarcasm-adversarial generated sentences. | |
| _NEUTRALIZER_DEMOTIONS = { | |
| # dV scaled by (1 - contra) old dV contra n | |
| 'adore': ( 0, 12, 16, 0, 9), # +48 1.00 17 | |
| 'cherish': ( 0, 13, 24, 0, 14), # +37 1.00 16 | |
| 'congratulations': ( 5, 22, 29, 1, 19), # +49 0.90 10 | |
| 'overwhelmed': ( -6, 30, -30, 20, -15), # -35 0.82 11 | |
| 'fantastic': ( 0, 20, 10, 0, 10), # +30 1.00 27 | |
| 'survive': ( 0, 54, 99, 54, 10), # +28 1.00 11 | |
| 'thrilled': ( 2, 25, 10, 5, 10), # +30 0.93 14 | |
| 'thank': ( 12, 20, 17, 0, 24), # +50 0.77 73 | |
| # 'wonderful' (+35, contra 0.81, n=26) DROPPED as conflicted: the | |
| # structural sarcasm detector (structures.py "what a" template) needs | |
| # its full >= +15 charge as a contradiction signal; attenuating to +7 | |
| # broke "what a wonderful surprise" in test_structures + stress sarcasm. | |
| 'breaking': (-35, 103, -82, 77, -36), # -77 0.54 13 | |
| 'secret': ( -6, 54, 49, 54, 10), # -24 0.77 17 | |
| 'monster': (-26, 74, -67, 49, 20), # -52 0.50 10 | |
| 'response': ( 18, 40, 72, 89, 0), # +39 0.55 11 | |
| 'truly': ( 5, 40, 24, 0, 10), # +28 0.81 70 | |
| 'delighted': ( 18, 38, 7, 1, 16), # +49 0.64 14 | |
| 'enjoy': ( 4, 6, 7, 0, 11), # +24 0.85 13 | |
| 'overjoyed': ( 1, 15, 10, 0, 10), # +20 0.94 18 | |
| 'major': ( 7, 40, 49, 18, 10), # +28 0.74 19 | |
| 'project': ( 8, 49, 72, 103, 16), # +29 0.71 17 | |
| 'hope': ( 22, 15, 20, 10, 25), # +45 0.50 32 | |
| } | |
| EMOTIONAL_VOCABULARY.update(_NEUTRALIZER_DEMOTIONS) | |
| # ── SLANG RE-RATING 2026-06-11 ── | |
| # Dead or wrong-signed modern slang. Two-faced words (doom OR praise) get the | |
| # safer negative reading + LIQUID phase (engine/phase.py) so SOLVENT | |
| # dissolution flips them in casual register; subject-aware disambiguation | |
| # ("he cooked" vs "im cooked" without a register marker) would need | |
| # force_flow changes that are out of scope — documented limitation. | |
| _SLANG_RERATE_2026_06 = { | |
| 'cooked': (-20, 20, -12, 8, -10), # was (0,5,0,0,5). LIQUID: "im cooked" = doomed; "bruh he cooked" flips positive via SOLVENT. Kept |dV| < 25 so MUNDANE_HYPERBOLE doesn't defuse "im cooked for this exam". | |
| 'sheesh': (-12, 22, -5, 5, -5), # was (-47,6,-32,3,-21). LIQUID: exasperation OR awe; -47 was wildly hot for an interjection. | |
| 'snapped': (-12, 28, 0, 8, 0), # was (-5,25,5,5,10). LIQUID: "snapped at me" = anger; "lmao she snapped" flips positive via SOLVENT. | |
| 'drip': ( 12, 10, 8, 0, 8), # was (0,5,0,0,10). Praise sense (style); +12 stays below the contrast-sarcasm strong-pos threshold (15) so "his drip is crazy" isn't misread as sarcasm. | |
| 'w': ( 30, 15, 10, 0, 10), # was (0,5,0,0,10). "big w" = win. Unambiguous positive. | |
| 'mid': (-18, 5, 0, 0, -8), # was (-15,0,0,0,-5). Mediocre/dismissive. Unambiguous mild negative. | |
| 'lowkey': ( 0, 0, 0, 0, 0), # was (0,-5,0,0,0). Pure SOLVENT/hedge — zero charge. | |
| 'ate': ( 5, 8, 2, 0, 4), # was (-5,5,-5,0,-3). Praise sense ("she ate") but literal eating is very common — kept sub-threshold positive. | |
| 'peak': ( 10, 8, 5, 0, 5), # new. US slang "peak fiction" = best; UK slang "thats peak" = bad — kept small for safety. | |
| # fr (0,5,0,0,0), goated (+35), bussin (+40) already correct via _V8_CORRECTIONS — no change. | |
| } | |
| EMOTIONAL_VOCABULARY.update(_SLANG_RERATE_2026_06) | |
| # ── SLANG BATCH 1 2026-06-11: register coverage + literal-sense regrades ── | |
| _SLANG_BATCH1_2026_06 = { | |
| 'dope': ( 45, 30, 20, 0, 12), | |
| 'rad': ( 40, 28, 18, 0, 10), | |
| 'gnarly': ( 30, 30, 12, 0, 8), | |
| 'elite': ( 38, 22, 28, 0, 18), | |
| 'iconic': ( 40, 22, 22, 0, 20), | |
| 'unreal': ( 38, 30, 15, 0, 12), | |
| 'legend': ( 38, 20, 25, 0, 20), | |
| 'masterclass': ( 45, 20, 25, 0, 22), | |
| 'ggs': ( 25, 10, 10, 0, 8), # was (10,-5,10,0,5). Sportsmanship closer, warmer than a shrug. | |
| 'dogwater': (-45, 20, -15, 0, -10), | |
| 'washed': (-35, 10, -20, 0, -15), # was (0,5,0,0,3). "he's washed" = past his prime. | |
| 'frfr': ( 0, 8, 2, 0, 0), | |
| 'letsgo': ( 40, 45, 25, 5, 10), # hype compound atom from "lets go"/"let's go" (pendulum tokenize). | |
| 'clean': ( 20, -5, 12, 0, 12), # was (0,-5,0,0,15) last-wins. Zeroed valence killed the praise sense ("that was clean"). | |
| 'extra': (-12, 25, -8, 5, 0), # was (-52,74,-44,15,9). Slang prior nuked literal quantity use ("extra cheese"). | |
| 'trap': (-15, 20, -10, 10, -8), # was (-77,74,-127,77,-48) freq=13. Entrapment grade destroyed music-genre sentences ("trap remix"). | |
| } | |
| EMOTIONAL_VOCABULARY.update(_SLANG_BATCH1_2026_06) | |
| # ── SLANG BATCH 2 2026-06-11: sense-split atoms + register regrades ── | |
| _SLANG_BATCH2_2026_06 = { | |
| 'fam': ( 12, 8, 5, 0, 10), # was (40,15,20,0,25). SOLVENT contract (phase.py) says register markers carry near-zero charge; +40 stacked on dissolution double-counted the warmth. | |
| 'mid': (-28, 5, -5, 0, -10), # was (-18,5,0,0,-8). Dismissive slang reads harder than the old grade; temporal "mid morning" is split off in tokenize. | |
| 'firehazard': (-40, 40, -10, 50, -20), # tokenize sense-split atom: literal fire ("a fire in my kitchen"). | |
| 'firepraise': ( 45, 30, 15, 0, 15), # tokenize sense-split atom: predicate slang ("it's fire"). | |
| 'filthypraise': ( 35, 25, 10, 0, 10), # tokenize sense-split atom: sports praise ("that play was filthy"). | |
| 'soback': ( 35, 35, 15, 0, 10), # hype compound atom from "so back" ("WE ARE SO BACK"). | |
| 'obsessed': (-15, 30, -12, 10, 12), # new. LIQUID (phase.py): fixation by default, fandom praise under SOLVENT ("lowkey obsessed"). | |
| 'helluva': ( 15, 10, 5, 0, 5), # new. "one helluva X" = awe-leaning intensifier. | |
| 'recommend': ( 26, 8, 12, 0, 10), # new. Endorsement; dV > 25 so hard-negator inversion binds "wouldn't recommend" forward instead of proximity sign-flipping earlier words. | |
| 'bite': (-15, 30, 10, 25, 5), # was (-52,74,44,65,9) freq=46. Attack-grade charge for a word whose common uses ("grab a bite", game/song titles) are mundane; alarm kept in A/U. | |
| } | |
| EMOTIONAL_VOCABULARY.update(_SLANG_BATCH2_2026_06) | |