"""
concept_vocabulary.py
顾炎武项目的概念词表与 8 维人格维度

8 维度沿用阳明/苏轼/曾国藩框架, 词表适应顾炎武 (明清易代经学家 + 反清遗民 + 经世学者) 语境

9 主题概念 (针对顾炎武):
  经学 / 史学 / 易代 / 故国 / 制度 / 兵事 / 风俗 / 学术 / 隐遁
"""

CORE_CONCEPTS = {
    "经学": ["经", "传", "注", "疏", "易", "诗", "书", "礼", "春秋"],
    "史学": ["史", "纪", "传", "志", "考", "辨", "证"],
    "易代": ["明", "清", "夷", "夏", "亡", "变", "革", "易"],
    "故国": ["故国", "宗庙", "社稷", "故臣", "遗民", "先朝", "明亡"],
    "制度": ["郡县", "封建", "井田", "学校", "科举", "钱粮", "兵制"],
    "兵事": ["兵", "战", "将", "守", "城", "贼", "盗", "寇"],
    "风俗": ["风", "俗", "民", "教", "化", "礼", "俗弊"],
    "学术": ["学", "问", "知", "考", "据", "穷理", "格物"],
    "隐遁": ["隐", "遁", "归", "山", "野", "终南", "辞官"],
}


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


PERSONALITY_DIMENSIONS = {
    "D1_政治姿态": {
        "讥讽朝政": ["讥", "讪", "诋", "怨", "谤", "刺"],
        "拥护朝政": ["圣德", "圣明", "圣朝", "尧舜"],
    },
    "D2_自我修正": {
        "承认错误": ["悔", "愧", "误", "过", "罪", "改", "自责"],
        "改弦更张": ["反思", "克己", "戒", "省身", "自省"],
    },
    "D3_实践导向": {
        "躬行亲为": ["躬", "亲", "实", "下手", "亲身", "力行"],
        "事上磨练": ["事上", "用力", "工夫", "磨", "勤"],
    },
    "D4_处变能力": {
        "镇定": ["镇", "从容", "安", "泰", "处变"],
        "自适": ["归去", "随遇", "知命", "自适"],
    },
    "D5_决断力": {
        "命令": ["速", "毋", "切", "宜", "须", "急"],
        "判断": ["以为", "断", "决", "可", "不可"],
    },
    "D6_情感深度": {
        "正向情感": ["喜", "乐", "悦", "欢"],
        "负向情感": ["哀", "悲", "苦", "忧", "愁", "泣", "涕", "痛"],
        "怀念": ["忆", "思", "怀", "念", "梦", "悼"],
    },
    "D7_隐逸倾向": {
        "归田归隐": ["归", "退", "隐", "山林", "辞官", "终南"],
        "闲适": ["闲", "适", "悠", "野"],
        "老病": ["老", "病", "衰", "疾"],
    },
    "D8_三教融合": {
        "儒": ["仁", "义", "礼", "孝", "忠", "诚", "敬"],
        "佛": ["禅", "佛", "因果", "缘", "空"],
        "道": ["道", "玄", "无为", "气"],
    },
}


if __name__ == "__main__":
    print(f"=== 9 主题 / {len(all_concepts_flat())} 概念 ===")
    for t, w in CORE_CONCEPTS.items():
        print(f"  {t:5s} ({len(w)}): {' '.join(w)}")
    print()
    print(f"=== 8 维度 / {sum(len(s) for d in PERSONALITY_DIMENSIONS.values() for s in d.values())} 词 ===")
    for d, subs in PERSONALITY_DIMENSIONS.items():
        for s, ws in subs.items():
            print(f"  {d} / {s}: {' '.join(ws)}")
