做工具自动识别负面思维句子,转换成积极表达,颠覆习惯性内耗。

📅 发布时间:2026/7/5 19:46:37 👁️ 浏览次数:
做工具自动识别负面思维句子,转换成积极表达,颠覆习惯性内耗。
负面思维转积极表达自动化工具 项目结构positive_mindset/├── README.md # 项目说明文档├── requirements.txt # 依赖包清单├── core/ # 核心模块│ ├── __init__.py│ ├── text_analyzer.py # 文本分析器│ ├── negative_detector.py # 负面思维检测器│ ├── reframe_engine.py # 积极重构引擎│ └── expression_optimizer.py # 表达优化器├── utils/ # 工具模块│ ├── __init__.py│ ├── mindset_templates.py # 思维模式模板库│ ├── sentiment_dict.py # 情感词典│ └── helpers.py # 辅助函数├── examples/ # 示例文件│ ├── negative_samples.json│ └── positive_outputs.json├── main.py # 主程序入口├── demo.py # 演示脚本└── knowledge_cards.md # 核心知识点卡片 README.md# 负面思维转积极表达自动化工具## 项目简介这是一个基于Python的智能思维转换系统专为打破习惯性内耗、培养积极心态设计。通过分析负面思维句子自动识别思维模式并转换为积极、建设性的表达方式。 **适用人群**容易内耗的人群、心理咨询师、内容创作者、数字文化艺术创新创业课程学习者## ✨ 核心功能| 功能模块 | 说明 ||---------|------|| 思维分析 | 识别负面思维模式类型 || 痛点定位 | 找出内耗的核心触发点 || 积极重构 | 将消极表达转为建设性语言 || 表达优化 | 让积极表达更自然有感染力 || 进度追踪 | 记录思维模式转变历程 |## 快速开始### 1️⃣ 安装依赖bashpip install -r requirements.txt### 2️⃣ 准备负面思维样本创建 negative_samples.json 文件json{thoughts: [我总是做不好事情我就是个废物,别人都比我强我永远赶不上,这次又失败了我果然不行,我担心会搞砸还是别试了]}### 3️⃣ 运行程序bashpython main.py --input negative_samples.json --output positive_results.json### 4️⃣ 查看结果bashpython demo.py## 输出示例json{original: 我总是做不好事情我就是个废物,mindset_type: 自我贬低型,reframed: 我在某些方面还在学习中每一次尝试都是进步的机会,positive_expression: 我正在积累经验每一步都在让我变得更好,transformation_level: 4}## ️ 代码结构core/├── text_analyzer.py # 文本预处理与模式识别├── negative_detector.py # 负面思维类型检测├── reframe_engine.py # 积极思维重构逻辑└── expression_optimizer.py # 表达自然化优化utils/├── mindset_templates.py # 思维模式转换模板库├── sentiment_dict.py # 情感词典与关键词库└── helpers.py # 通用工具函数## 核心知识点详见 [knowledge_cards.md](knowledge_cards.md)## 贡献指南欢迎提交Issue和PR请确保代码符合PEP8规范。## 许可证MIT License © 2026 Digital Culture Innovation Course requirements.txtjieba0.42.1 # 中文分词snownlp0.12.3 # 中文自然语言处理numpy1.21.0 # 数值计算pandas1.3.0 # 数据处理pyyaml6.0 # YAML配置解析transformers4.0.0 # 预训练模型可选用于高级情感分析 核心模块代码core/text_analyzer.py 文本分析器模块功能负面思维文本预处理、模式识别、特征提取核心教学点文本挖掘与模式识别在心理领域的应用import jiebaimport refrom typing import Dict, List, Tuple, Optionalfrom collections import Counter, defaultdictimport numpy as npclass NegativeThoughtAnalyzer:负面思维文本分析器核心职责1. 清洗和标准化用户输入的思维描述2. 识别关键情感词汇和表达模式3. 提取思维结构特征4. 为后续负面类型检测做准备设计理念在心理学中思维模式的识别是认知行为疗法(CBT)的基础本模块将这种专业分析过程数字化、自动化def __init__(self):初始化分析器加载专业词典self._load_sentiment_dictionary()self._load_thinking_patterns()def _load_sentiment_dictionary(self):加载情感词典词典来源结合知网Hownet、台湾大学NTUSD、自研心理专业词汇技术要点- 负面词汇按强度分级1-5级- 区分不同维度的负面情绪- 建立同义词和反义词映射# 负面情感词汇库按强度分级self.negative_words {绝望类: {5: [彻底完了, 毫无希望, 死定了, 没救了, 万劫不复],4: [完了, 没希望, 不可能, 无法挽回, 注定失败],3: [很难, 不太可能, 令人失望, 让人沮丧, 比较糟],2: [有点难, 不太顺利, 有些失望, 稍微遗憾, 不够好],1: [不够理想, 略有不足, 稍显逊色, 不够完美, 略有遗憾]},自我否定类: {5: [废物, 垃圾, 一无是处, 彻底失败, 毫无价值],4: [没用, 不行, 很差, 很糟糕, 不配],3: [不够好, 有待提高, 有缺陷, 有不足, 不够优秀],2: [一般般, 马马虎虎, 还行吧, 不太理想, 普通],1: [可以更好, 有提升空间, 略显青涩, 尚待打磨, 需要努力]},焦虑担忧类: {5: [恐惧, 恐慌, 崩溃, 焦虑发作, 精神崩塌],4: [很担心, 很害怕, 很紧张, 很不安, 很焦虑],3: [担心, 害怕, 紧张, 不安, 焦虑],2: [有点担心, 稍微紧张, 略感不安, 些许焦虑, 有点忐忑],1: [略有顾虑, 稍显谨慎, 有点犹豫, 略微紧张, 稍作思量]},比较自卑类: {5: [不如死了, 活着没意义, 完全比不上, 彻底落后, 毫无优势],4: [比不上, 输定了, 落后很多, 没优势, 不如人],3: [不够突出, 相对较差, 略逊一筹, 稍显不足, 不够领先],2: [差不多, 各有千秋, 互有长短, 难分伯仲, 旗鼓相当],1: [可以学习, 有借鉴价值, 值得参考, 可以合作, 互相促进]}}# 积极反义词映射用于重构self.positive_antonyms {废物: 正在成长的学习者,垃圾: 有独特价值的个体,失败: 获得宝贵经验的尝试,没用: 有发展潜力的,不行: 正在进步的,很差: 有改善空间的,恐惧: 充满期待的,担心: 谨慎准备的,比不上: 有不同优势的,落后: 有追赶空间的}def _load_thinking_patterns(self):加载思维认知模式库基于认知行为疗法(CBT)的经典思维陷阱分类七种常见负面思维模式1. 非黑即白思维2. 过度概括3. 心理过滤4. 否定正面5. 妄下结论6. 放大缩小7. 情绪化推理self.thinking_patterns {非黑即白: {keywords: [总是, 从不, 完全, 绝对, 根本, 彻底, 百分之百],patterns: [r总是.*?不, r从来.*?没有, r完全.*?失败,r绝对.*?不可能, r根本.*?不行, r彻底.*?完了],description: 用极端化方式看待事物没有中间地带},过度概括: {keywords: [每次, 大家都, 所有, 没有一次, 从来都, 凡是],patterns: [r每次.*?都, r大家都.*?比, r所有.*?都,r没有一次.*?成功, r从来都.*?不, r凡是.*?都],description: 从单一事件得出普遍结论},心理过滤: {keywords: [但是, 然而, 除了, 只是, 仅仅, 不过],patterns: [r虽然.*?但是, r然而.*?却, r除了.*?都,r只是.*?而已, r仅仅.*?是, r不过.*?又],description: 只关注负面细节忽略整体积极面},否定正面: {keywords: [侥幸, 只是, 碰巧, 其实, 实际上, 说白了],patterns: [r侥幸.*?成功, r只是.*?碰巧, r其实.*?不,r实际上.*?没, r说白了.*?就是, r只不过.*?是],description: 将积极经历归因于外部因素不认可自身能力},妄下结论: {keywords: [肯定, 一定, 绝对, 必然, 肯定, 显然],patterns: [r他.*?肯定.*?看不起, r这.*?一定.*?完了,r他们.*?绝对.*?不喜欢, r这.*?必然.*?失败,r显然.*?是.*?针对我],description: 缺乏证据就做出负面判断读心术/先知错误},放大缩小: {keywords: [巨大, 灾难, 可怕, 严重, 重大, 极其],patterns: [r巨大的.*?灾难, r可怕的.*?错误, r严重的.*?问题,r重大的.*?失败, r极其.*?糟糕, r天大的.*?麻烦],description: 夸大问题严重性缩小自身优点和能力},情绪化推理: {keywords: [感觉, 觉得, 认为, 好像, 似乎, 看来],patterns: [r我感觉.*?就是, r我觉得.*?肯定, r我认为.*?一定,r好像.*?所有人, r似乎.*?没人, r看来.*?我],description: 将主观感受当作客观事实}}def preprocess_text(self, raw_text: str) - Dict:文本预处理与分析Args:raw_text: 原始负面思维描述Returns:包含多种分析结果的字典处理逻辑1. 清理特殊符号和多余空格2. 分词并标注词性3. 识别情感词汇及其强度4. 提取思维模式和结构特征# 清理文本cleaned self._clean_text(raw_text)# 分词处理words list(jieba.cut(cleaned))word_positions list(jieba.tokenize(cleaned))# 识别负面情感词汇negative_analysis self._analyze_negative_words(words)# 识别思维模式pattern_analysis self._detect_thinking_patterns(cleaned)# 提取句子结构特征structure_features self._extract_structure_features(cleaned, words)return {original: raw_text,cleaned: cleaned,words: words,word_count: len(words),negative_analysis: negative_analysis,pattern_analysis: pattern_analysis,structure_features: structure_features}def _clean_text(self, text: str) - str:清理和标准化文本# 移除特殊符号保留中文、英文、数字和基本标点cleaned re.sub(r[^\u4e00-\u9fa5a-zA-Z0-9。、\s], , text)# 合并连续空格cleaned re.sub(r\s, , cleaned).strip()return cleaneddef _analyze_negative_words(self, words: List[str]) - Dict:分析负面情感词汇返回- detected_words: 检测到的负面词汇列表- intensity_scores: 各词汇的强度分数- categories: 负面情感类别分布- overall_intensity: 整体负面强度1-5detected_words []intensity_scores []categories defaultdict(list)# 遍历所有负面词汇库for category, intensity_dict in self.negative_words.items():for intensity, words_list in intensity_dict.items():for neg_word in words_list:if neg_word in .join(words):detected_words.append(neg_word)intensity_scores.append(intensity)categories[category].append((neg_word, intensity))# 计算整体负面强度if intensity_scores:overall_intensity np.mean(intensity_scores)else:overall_intensity 0return {detected_words: detected_words,intensity_scores: intensity_scores,categories: dict(categories),overall_intensity: round(overall_intensity, 2)}def _detect_thinking_patterns(self, text: str) - List[Dict]:检测负面思维模式基于CBT理论的七种思维陷阱识别返回检测到的思维模式列表按置信度排序detected_patterns []for pattern_name, pattern_info in self.thinking_patterns.items():confidence 0matched_keywords []matched_patterns []# 检查关键词for keyword in pattern_info[keywords]:if keyword in text:confidence 0.2matched_keywords.append(keyword)# 检查正则模式for pattern in pattern_info[patterns]:if re.search(pattern, text):confidence 0.3matched_patterns.append(pattern)# 只有当置信度足够时才记录if confidence 0.3:detected_patterns.append({pattern_type: pattern_name,confidence: round(confidence, 2),description: pattern_info[description],matched_keywords: matched_keywords,matched_regex: matched_patterns})# 按置信度排序detected_patterns.sort(keylambda x: x[confidence], reverseTrue)return detected_patternsdef _extract_structure_features(self, text: str, words: List[str]) - Dict:提取句子结构特征用于深入理解思维模式的结构性特征features {sentence_count: len(re.split(r[。], text)),has_self_reference: any(w in .join(words) for w in [我, 自己, 本人]),has_comparison: any(w in .join(words) for w in [比, 相比, 不如, 超过]),has_catastrophic_prediction: any(w in .join(words) for w in [完了, 毁了, 完了, 灾难]),has_perfectionism: any(w in .join(words) for w in [应该, 必须, 一定要, 绝对]),has_black_white: any(w in .join(words) for w in [总是, 从不, 完全, 绝对]),question_count: len(re.findall(r[], text)),exclamation_count: len(re.findall(r[], text))}return featuresdef calculate_mental_fatigue_index(self, analysis_result: Dict) - float:计算精神内耗指数基于多个维度综合评估思维对心理能量的消耗程度维度包括- 负面情感强度- 思维模式复杂度- 自我攻击程度- 未来导向的负面预期fatigue_score 0# 负面情感强度贡献 (0-2分)intensity analysis_result[negative_analysis][overall_intensity]fatigue_score (intensity / 5) * 2# 思维模式复杂度贡献 (0-2分)pattern_count len(analysis_result[pattern_analysis])fatigue_score min(pattern_count * 0.3, 2)# 自我攻击程度贡献 (0-2分)if analysis_result[structure_features][has_self_reference]:if 自我否定类 in analysis_result[negative_analysis][categories]:fatigue_score 1.5else:fatigue_score 0.5# 灾难化预测贡献 (0-2分)if analysis_result[structure_features][has_catastrophic_prediction]:fatigue_score 1.5# 非黑即白思维贡献 (0-2分)if analysis_result[structure_features][has_black_white]:fatigue_score 1return round(min(fatigue_score, 5), 2)def generate_analysis_report(self, analysis_result: Dict) - str:生成分析报告为人类专家或用户提供可读性强的分析结果report_lines [ * 50, 负面思维分析报告, * 50]# 基本信息report_lines.append(f\n 原始思维{analysis_result[original]})report_lines.append(f 文本长度{analysis_result[word_count]}字)# 负面情感分析neg_analysis analysis_result[negative_analysis]report_lines.append(f\n 负面情感强度{neg_analysis[overall_intensity]}/5)if neg_analysis[detected_words]:report_lines.append(f 检测到负面词汇{, .join(neg_analysis[detected_words][:5])})# 思维模式分析pattern_analysis analysis_result[pattern_analysis]if pattern_analysis:report_lines.append(f\n 识别到的思维模式)for pattern in pattern_analysis[:3]:report_lines.append(f • {pattern[pattern_type]} (置信度: {pattern[confidence]}))report_lines.append(f 描述{pattern[description]})# 精神内耗指数fatigue self.calculate_mental_fatigue_index(analysis_result)report_lines.append(f\n⚡ 精神内耗指数{fatigue}/5)report_lines.append(\n * 50)return \n.join(report_lines)core/negative_detector.py 负面思维检测器模块功能基于分析结果识别负面思维类型和严重程度核心教学点心理学分类体系的技术实现from typing import Dict, List, Tuple, Optionalfrom dataclasses import dataclass, fieldfrom enum import Enumimport randomclass MindsetType(Enum):负面思维模式枚举SELF_DEPRECATION 自我贬低型CATASTROPHIZING 灾难化思维型OVER_GENERALIZATION 过度概括型BLACK_WHITE_THINKING 非黑即白型COMPARISON_INFERIORITY 比较自卑型ANXIETY_WORRY 焦虑担忧型EMOTIONAL_REASONING 情绪化推理型PERFECTIONISM 完美主义型HELPLESSNESS 无助无力型MIND_READING 读心术型class SeverityLevel(Enum):严重程度等级MILD 轻度MODERATE 中度SEVERE 重度CRITICAL 极重度dataclassclass NegativeThoughtProfile:负面思维档案包含对负面思维的全面画像original_text: strmindset_type: MindsetTypeseverity: SeverityLevelconfidence: floatkey_indicators: List[str]emotional_impact: Dictcognitive_distortions: List[str]transformation_difficulty: int # 1-5转换难度class NegativeThoughtDetector:负面思维检测器设计理念基于认知行为疗法(CBT)和积极心理学理论将复杂的心理现象转化为可计算的分类模型核心功能1. 识别负面思维的具体类型2. 评估严重程度和影响3. 生成详细的思维档案def __init__(self):初始化检测器self.type_signatures self._load_type_signatures()self.severity_indicators self._load_severity_indicators()def _load_type_signatures(self) - Dict[MindsetType, Dict]:加载思维类型特征签名每种负面思维模式都有独特的语言和行为特征这些特征基于临床心理学研究和实践经验return {MindsetType.SELF_DEPRECATION: {core_keywords: [废物, 垃圾, 没用, 失败, 一无是处, 毫无价值],linguistic_patterns: [r我就是.*?[废物垃圾没用],r我.*?彻底.*?[失败不行],r我.*?毫无.*?[价值用处]],cognitive_features: [自我标签化, 价值否定, 能力质疑],emotional_tone: 自我攻击,transformation_strategy: 价值重构},MindsetType.CATASTROPHIZING: {core_keywords: [完了, 毁了, 灾难, 崩溃, 万劫不复, 彻底完了],linguistic_patterns: [r.*?彻底.*?完了,r.*?巨大的.*?灾难,r.*?完全.*?毁了,r.*?万劫不复],cognitive_features: [极端预测, 放大后果, 失去控制感],emotional_tone: 恐慌绝望,transformation_strategy: 现实检验},MindsetType.OVER_GENERALIZATION: {core_keywords: [总是, 从不, 每次, 所有, 没有一次, 从来都],linguistic_patterns: [r总是.*?不,r从来.*?没有,r每次.*?都,r所有.*?都.*?失败],cognitive_features: [以偏概全, 忽视例外, 绝对化判断],emotional_tone: 绝望无力,transformation_strategy: 证据收集},MindsetType.BLACK_WHITE_THINKING: {core_keywords: [完全, 绝对, 根本, 彻底, 百分之百, 要么要么],linguistic_patterns: [r完全.*?[成功失败],r绝对.*?不可能,r根本.*?不行,r要么.*?要么.*?没有中间],cognitive_features: [二元对立, 缺乏灰度, 极端判断],emotional_tone: 僵化固执,transformation_strategy: 灰度思维},MindsetType.COMPARISON_INFERIORITY: {core_keywords: [比不上, 输定了, 落后, 不如, 没优势, 完全比不上],linguistic_patterns: [r比.*?差.*?远了,r输.*?定了,r完全.*?比不上,r没.*?任何.*?优势],cognitive_features: [社会比较, 优势忽视, 价值条件化],emotional_tone: 自卑嫉妒,transformation_strategy: 优势发掘},MindsetType.ANXIETY_WORRY: {core_keywords: [担心, 害怕, 紧张, 焦虑, 恐惧, 不安],linguistic_patterns: [r很担心.*?会,r害怕.*?出.*?问题,r紧张.*?得.*?要命,r焦虑.*?得.*?睡不着],cognitive_features: [未来导向, 风险放大, 控制欲求],emotional_tone: 紧绷不安,transformation_strategy: 应对准备},MindsetType.EMOTIONAL_REASONING: {core_keywords: [感觉, 觉得, 认为, 好像, 似乎, 看来],linguistic_patterns: [r我感觉.*?就是,r我觉得.*?肯定,r看来.*?我.*?[不行失败],r似乎.*?所有人.*?都],cognitive_features: [感受等同事实, 主观臆断, 证据忽视],emotional_tone: 困惑迷茫,transformation_strategy: 事实核查},MindsetTyp利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛