体协作系统,用于分析聊天记录中特定人物的荣格八维人格类型。 本文使用 CC-BY-NC-SA . 协议。转载或者 AI 模型/智能体 ...
体协作系统从聊天记录到荣格八维人格画像的工程实践本文使用 CC-BY-NC-SA 协议。转载或 AI 模型/智能体训练引用请注明出处。### 引言为什么需要体协作系统在团队协作、心理咨询或用户研究中我们常常需要快速了解某个人的性格倾向。荣格八维如 Ni、Fe、Ti、Se 等是 MBTI 的理论基础但传统问卷容易受自我美化影响。而聊天记录是自然行为数据能更真实地反映认知偏好。 本文设计一个体协作系统——它不是一个单机脚本而是一个由“数据采集 → 特征提取 → 模型推理 → 可视化协作面板”组成的小型分布式体系。多个分析节点体可以并行处理同一份聊天记录最终汇聚成一份人格画像报告。### 系统架构概览[聊天记录源] → [清洗/分句] → [特征向量化] → [八维评分模型] → [协作聚合] → [可视化面板]每个“体”是一个独立服务可用 Docker 部署它们通过消息队列如 Redis Stream协作。下面我们聚焦核心代码实现。### 模块一聊天记录清洗与特征提取Python我们首先将聊天记录按消息拆解并提取与荣格八维相关的语言线索如“我感觉”对应 Fi“因为…所以”对应 Te/Ti。python# -*- coding: utf-8 -*-import reimport jsonfrom collections import defaultdict# 简易特征词库实际场景需用更大语料FEATURE_MAP { Ni: [预见, 本质, 趋势, 潜意识, 顿悟], Ne: [可能, 联想, 发散, 如果, 新点子], Si: [习惯, 记得, 以前, 经验, 细节], Se: [当下, 感官, 行动, 立刻, 体验], Ti: [逻辑, 定义, 原理, 为什么, 分析], Te: [效率, 结果, 步骤, 执行, 进度], Fi: [感觉, 价值观, 内心, 认同, 情感], Fe: [大家, 氛围, 和谐, 应该, 体谅]}def clean_message(raw_text: str) - str: 去除时间戳、系统通知等噪声 text re.sub(r\[\d{2}:\d{2}:\d{2}\], , raw_text) text re.sub(r\w, , text) # 移除 提及 return text.strip()def extract_features(messages: list) - dict: 输入原始消息列表 [{sender: Alice, text: ...}, ...] 输出每个 sender 的八维原始计分 scores defaultdict(lambda: defaultdict(int)) for msg in messages: sender msg[sender] text clean_message(msg[text]) for dim, keywords in FEATURE_MAP.items(): for kw in keywords: if kw in text: scores[sender][dim] 1 return scores# 示例数据模拟聊天sample_chat [ {sender: Alice, text: [10:21] 我觉得这个方案虽然高效但不符合我的价值观}, {sender: Bob, text: [10:22] 按逻辑分析先定义边界条件再推导结果}, {sender: Alice, text: [10:23] 大家觉得氛围会不会太紧张Bob}, {sender: Bob, text: [10:24] 执行步骤已经列出下一步看数据反馈}]if __name__ __main__: result extract_features(sample_chat) print(json.dumps(result, ensure_asciiFalse, indent2)) # 输出Alice 的 Fi 和 Fe 得分较高Bob 的 Te 和 Ti 得分较高### 模块二八维评分归一化与协作聚合单一特征计数不能直接当分数我们需要归一化并与其他“体”的评分合并。这里实现一个基于置信度加权的聚合算法。python# -*- coding: utf-8 -*-import numpy as npfrom typing import Dict, Listdef normalize_scores(raw_scores: Dict[str, int]) - Dict[str, float]: 将原始计数转为 0~1 的归一化分数按维度独立 total sum(raw_scores.values()) if total 0: return {k: 0.0 for k in FEATURE_MAP} return {k: v / total for k, v in raw_scores.items()}def collaborative_aggregate(individual_scores: List[Dict[str, float]], confidence: List[float]) - Dict[str, float]: 体协作聚合不同分析节点可能侧重不同维度 confidence 表示每个节点的整体可信度例如基于语料大小。 公式加权平均后做 softmax 归一。 dims list(FEATURE_MAP.keys()) combined np.zeros(len(dims)) total_conf sum(confidence) for score, conf in zip(individual_scores, confidence): for i, d in enumerate(dims): combined[i] score.get(d, 0.0) * conf combined / total_conf # 转为概率分布便于比较 exp_vals np.exp(combined - np.max(combined)) prob exp_vals / exp_vals.sum() return dict(zip(dims, prob))# 模拟两个“体”的评分假设来自不同时间窗口的分析body1 normalize_scores({Ni: 3, Te: 5, Fi: 2})body2 normalize_scores({Ni: 1, Te: 3, Fi: 4, Fe: 2})conf [0.7, 0.5] # 体1语料更多置信度更高final collaborative_aggregate([body1, body2], conf)print(最终八维概率分布)for k, v in sorted(final.items(), keylambda x: -x[1]): print(f {k}: {v:.3f})运行结果会显示 Te 与 Ni 占主导若数据如此但 Fi 也有存在感——这比单一规则判断更稳健。### 模块三可视化协作面板简单 Web 展示虽然核心是代码但“体协作”需要人机交互。我们可以用 Flask 快速展示结果让多个分析者体投票或调整权重。python# app.py (简化版)from flask import Flask, jsonify, requestimport threadingapp Flask(__name__)# 全局存储各体提交的评分global_scores []lock threading.Lock()app.route(/submit, methods[POST])def submit(): data request.get_json() with lock: global_scores.append((data[score], data[confidence])) return jsonify({status: ok, received: len(global_scores)})app.route(/aggregate, methods[GET])def aggregate(): with lock: if not global_scores: return jsonify({error: no data}) # 调用上面的聚合函数 result collaborative_aggregate([s for s,_ in global_scores], [c for _,c in global_scores]) return jsonify(result)if __name__ __main__: app.run(port5000)这样不同分析节点体可以 POST 自己的评分系统实时汇聚。实际部署时还可加入 Redis Stream 保证消息不丢失。### 工程挑战与优化1.上下文感知简单关键词匹配容易误判如“我感觉”在 Fi 和 Fe 中都出现。可以引入 BERT 向量化但成本高。实际方案是使用滑动窗口 意图分类器或让多个体分别用不同模型规则/统计/深度学习最后聚合投票。2.隐私保护聊天记录是敏感数据。可采用联邦学习每个“体”在本地计算特征只上传评分而非原始文本。3.动态权重不同聊天场景工作群 vs 朋友圈对八维的触发概率不同。可以在聚合时根据消息类型自动调节 confidence。### 总结本文展示了“体协作系统”的骨架它不是一个单体应用而是由多个分析单元体通过特征提取、归一化、加权聚合构成的小型分布式系统。我们用 Python 实现了核心代码——从聊天清理到八维评分再到协作聚合并给出了 Web 接口示例。 这种设计有三大优势可扩展性增加新模型只需注册新体、鲁棒性单一模型误判被集体投票抵消、可解释性每个体的评分可追溯。 如果你要落地到生产建议将特征词库替换为预训练模型并引入消息队列和数据库存储。荣格八维本身是模糊的但工程化后能为团队协作提供一份“动态性格地图”。 最后提醒本文代码仅作演示真实人格分析需结合心理学专业校准切勿过度解读。

相关新闻

18.5英寸FHD液晶屏DIY全攻略:从驱动板选型到故障排查

18.5英寸FHD液晶屏DIY全攻略:从驱动板选型到故障排查

1. 项目缘起:为什么是18.5英寸FHD?最近在折腾一个桌面信息展示终端,核心需求是找一块尺寸适中、分辨率清晰、接口通用且价格合理的显示器。市面上主流的选择要么是24寸起步的桌面显示器,要么是7-15寸的树莓派专用屏,中…

2026/10/20 18:54:15 阅读更多 →
Tajima‘s D:从原理到实战,解读群体遗传学中的中性检验

Tajima‘s D:从原理到实战,解读群体遗传学中的中性检验

1. 项目概述:从“天书”到“地图”的群体遗传学利器 如果你在分析一批动植物的DNA数据,想看看它们背后的种群历史是不是有故事,比如有没有经历过种群扩张、瓶颈,或者不同群体之间有没有发生过基因交流,那你大概率会碰到…

2026/10/17 10:18:09 阅读更多 →
Python实现多语言帮助中心自动化同步系统

Python实现多语言帮助中心自动化同步系统

1. 项目背景与核心价值 多语言帮助中心是现代企业服务全球化用户的关键基础设施。传统人工维护多语言版本存在更新滞后、翻译成本高、版本不一致等痛点。我们团队最近用Python开发了一套自动化采集与对齐引擎,实现了帮助中心内容的实时同步更新,翻译准确…

2026/10/18 6:57:42 阅读更多 →

最新新闻

Microsoft Barcode Control 9.0:VB6直连打印机的GS1条码实现方案

Microsoft Barcode Control 9.0:VB6直连打印机的GS1条码实现方案

简介:本资源是基于 Microsoft Barcode Control 9.0 的条形码生成与打印完整开发示例,面向 .NET Framework 2.0 及以上版本的 Windows Forms 开发者,尤其适合需快速集成条形码功能的库存管理、物流追踪等业务系统项目。压缩包共30个文件&#…

2026/10/20 23:06:26 阅读更多 →
NX二次开发必修课:UF_UI_create_filebox多文件选择过滤器全解析

NX二次开发必修课:UF_UI_create_filebox多文件选择过滤器全解析

做NX二次开发的时间一长,你会发现一个绕不开的需求:文件选择对话框。无论是做批量导入、数据转换,还是做内部工具的小前端,几乎每个工具都会遇到“让用户挑一个文件”的场景。而UFUN里最经典的那套UF_UI_create_filebox&#xff0…

2026/10/20 23:06:26 阅读更多 →
Linux Samba与AD集成:如何固定映射指定uid避免权限漂移

Linux Samba与AD集成:如何固定映射指定uid避免权限漂移

1. 为什么要在 Linux 上折腾 Samba 与 AD 的 uid 映射很多做企业内网运维的朋友都遇到过这种场景:公司内部有一套 Active Directory 域控,Windows 客户端登录、文件共享、权限管理全靠它。但业务部门又跑着一批 Linux 服务器,需要让 Linux 上…

2026/10/20 23:06:26 阅读更多 →
本地化AI自动剪辑实战:从语音识别到静音检测的完整方案

本地化AI自动剪辑实战:从语音识别到静音检测的完整方案

“AI自动剪辑”这四个字,去年到今年我是看着它从噱头变成真家伙的。作为一个每天要和大量视频素材打交道的人,我前后搭了好几版自动剪辑流程,也踩了无数坑。今天不聊那种“上传视频让平台帮你剪”的黑箱产品,而是想分享一套我自己…

2026/10/20 23:06:26 阅读更多 →
打造有效SKILL.md:AI Agent技能文件的设计原理与实战

打造有效SKILL.md:AI Agent技能文件的设计原理与实战

关于 SKILL.md,写了很多份,也踩了很多坑,今天想认真聊聊:到底什么样的 SKILL.md 才是真正有效的 AI Agent Skills 文件,而不是一份自我感良好的 Markdown 文档。这个问题值得单独拿出来说,是因为我在实际项…

2026/10/20 23:06:26 阅读更多 →
排序算法实战指南:从O(n²)到O(n log n)的选型与优化

排序算法实战指南:从O(n²)到O(n log n)的选型与优化

1. 排序算法到底在排什么:从一次性能翻车说起排序算法这几个字,几乎是每个写代码的人绕不开的坎。不管你是做后端接口、数据分析、前端表格渲染,还是写嵌入式设备上的传感器采样处理,只要涉及到一组无序数据需要按某种规则理清楚&…

2026/10/20 23:05:20 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →