"""
concept_vocabulary.py
苏轼项目的概念词表与 8 维人格维度定义

参考阳明项目 concept_vocabulary.py 结构,但针对苏轼语料重新设计。

8 维度 (沿用阳明项目的人格维度框架, 词表为苏轼场景重写):
  D1. 政治姿态:       讥讽朝政 / 拥护朝政 / 中立
  D2. 自我修正:       承认错误、改弦更张
  D3. 实践导向:       做事、躬耕、亲历
  D4. 处变能力:       平静面对逆境
  D5. 决断力:         明确表态、命令、判断
  D6. 情感深度:       喜怒哀乐念忆叹
  D7. 隐逸倾向:       归田、闲、老、病、归
  D8. 三教融合:       儒佛道并用

51 个核心概念词 (用于第 3 章 概念分布散度分析)
"""

# ============================================================
# 51 个核心概念词 (按主题分 9 组)
# ============================================================
CORE_CONCEPTS = {
    # 1. 政治新法 (王安石异质对照核心)
    "政治新法": ["新法", "青苗", "免役", "保甲", "市易", "均输", "募役"],
    # 2. 三教融合
    "儒家纲领": ["仁", "义", "礼", "中庸", "道德"],
    "佛家": ["禅", "佛", "般若", "空", "无相", "缘"],
    "道家": ["道", "老子", "玄", "无为", "自然", "丹"],
    # 3. 隐逸归田
    "归隐": ["归", "归田", "闲", "老", "病", "贫"],
    # 4. 贬谪场景
    "贬谪": ["谪", "贬", "瘴", "迁", "流", "海南"],
    # 5. 情感核心
    "情感": ["忆", "思", "怀", "哀", "悲", "感"],
    # 6. 黄州东坡转向
    "黄州": ["黄州", "东坡", "雪堂", "赤壁", "临皋"],
    # 7. 君臣纲领
    "君臣": ["君", "臣", "圣", "朝廷"],
    # 8. 文学体裁标记
    "文学": ["诗", "词", "赋", "记", "序"],
}


def all_concepts_flat():
    """展平为单一概念列表 (无重复)"""
    seen = set()
    out = []
    for theme, words in CORE_CONCEPTS.items():
        for w in words:
            if w not in seen:
                seen.add(w)
                out.append(w)
    return out


# ============================================================
# 8 维人格评分关键词 (用于第 1 / 5 章人格分析)
# ============================================================
PERSONALITY_DIMENSIONS = {
    "D1_政治姿态": {
        "讥讽朝政": ["讥讽", "讥切", "讪", "诋", "怨", "谤", "讪上", "诋讦"],
        "拥护朝政": ["圣德", "圣明", "陛下英", "圣朝", "尧舜", "明君"],
    },
    "D2_自我修正": {
        "承认错误": ["悔", "愧", "误", "过", "罪", "改", "自责"],
        "改弦更张": ["改之", "省身", "自省", "反思", "改易"],
    },
    "D3_实践导向": {
        "躬耕亲为": ["躬耕", "亲为", "下手", "做工", "实地", "亲身"],
        "事上磨练": ["事上", "用力", "工夫", "磨", "练"],
    },
    "D4_处变能力": {
        "镇定": ["镇定", "从容", "安然", "泰然", "安之"],
        "豁达": ["归去", "随遇", "随缘", "适意", "自适"],
    },
    "D5_决断力": {
        "命令": ["速行", "毋得", "即令", "切宜", "须", "急"],
        "判断": ["以为", "断", "决", "可", "不可", "宜"],
    },
    "D6_情感深度": {
        "正向情感": ["喜", "乐", "悦", "欢", "笑"],
        "负向情感": ["哀", "悲", "苦", "忧", "愁", "泣", "涕", "恸"],
        "怀念": ["忆", "思", "怀", "念", "梦"],
    },
    "D7_隐逸倾向": {
        "归田归隐": ["归田", "归去", "归休", "退", "隐", "山林"],
        "闲适": ["闲", "适", "悠", "闲居", "野"],
        "老病": ["老", "病", "衰", "疾", "鬓"],
    },
    "D8_三教融合": {
        "儒": ["仁", "义", "礼", "孝", "忠"],
        "佛": ["禅", "佛", "般若", "空", "缘", "幻"],
        "道": ["道", "玄", "无为", "丹", "气"],
    },
}


def all_personality_words():
    """展平所有 8 维词表"""
    words = set()
    for dim, subdims in PERSONALITY_DIMENSIONS.items():
        for subdim, ws in subdims.items():
            words.update(ws)
    return sorted(words)


if __name__ == "__main__":
    print(f"=== 概念词表 ===")
    print(f"  9 主题, {len(all_concepts_flat())} 个不重复核心概念")
    for theme, words in CORE_CONCEPTS.items():
        print(f"    {theme:8s} ({len(words)}): {' '.join(words)}")
    print()
    print(f"=== 8 维人格词表 ===")
    print(f"  8 维度, {sum(len(s) for sd in PERSONALITY_DIMENSIONS.values() for s in sd.values())} 个词")
    for dim, subs in PERSONALITY_DIMENSIONS.items():
        total = sum(len(w) for w in subs.values())
        print(f"  {dim} ({total} 词)")
        for subdim, words in subs.items():
            print(f"    {subdim:8s}: {' '.join(words)}")
