huhan3000/programs/M音文明包容基因数字分析平台.py

481 lines
21 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
M音文明包容基因数字分析平台
M-Phoneme Civilization Inclusive Gene Digital Analysis Platform
基于M音包容基因理论的数字人文分析系统
M音 = 母性(Mother) + 融合(Merge) + 永续(Maintain)
"""
import json
import numpy as np
import matplotlib.pyplot as plt
import networkx as nx
from collections import defaultdict, Counter
import pandas as pd
import seaborn as sns
from datetime import datetime
import plotly.graph_objects as go
import plotly.express as px
from plotly.subplots import make_subplots
import warnings
warnings.filterwarnings('ignore')
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
class MPhonemeInclusivePlatform:
"""M音文明包容基因数字分析平台"""
def __init__(self):
self.m_civilization_db = self._build_m_phoneme_database()
self.analysis_results = {}
def _build_m_phoneme_database(self):
"""构建M音文明包容基因数据库"""
return {
"metadata": {
"name": "M音文明包容基因数据库",
"version": "1.0",
"methodology": "包容基因链+母性音素学",
"created_date": "2025-11-02",
"description": "基于M音包容基因的全球文明节点分析"
},
"civilizations": {
"melchizedek": { # 麦基洗德 - M音包容起源
"name": "麦基洗德文明",
"m_phonemes": ["Mel", "chi", "zedek"],
"inclusive_concepts": ["正义之王", "平安之王", "无父无母"],
"cultural_encoding": {
"包容指数": 0.95,
"神圣性": 0.98,
"跨族群认同": 0.92,
"永续性": 0.89
},
"time_period": "公元前2000年",
"geographic_region": "耶路撒冷",
"inclusive_mechanism": "神圣包容超越"
},
"mozi": { # 墨子 - 东方M音包容
"name": "墨子文明",
"m_phonemes": ["", ""],
"inclusive_concepts": ["兼爱", "非攻", "尚贤"],
"cultural_encoding": {
"包容指数": 0.93,
"和平理念": 0.96,
"跨阶层融合": 0.88,
"永续性": 0.85
},
"time_period": "公元前468-376年",
"geographic_region": "中国",
"inclusive_mechanism": "兼爱包容哲学"
},
"mary": { # 圣母玛利亚 - 西方M音包容
"name": "圣母玛利亚文明",
"m_phonemes": ["Ma", "ry", "Mary"],
"inclusive_concepts": ["圣母", "包容", "拯救", "母爱"],
"cultural_encoding": {
"包容指数": 0.97,
"母爱象征": 0.99,
"信仰包容性": 0.94,
"永续性": 0.91
},
"time_period": "公元1世纪",
"geographic_region": "中东/欧洲",
"inclusive_mechanism": "神圣母爱包容"
},
"muhammad": { # 穆罕默德 - 伊斯兰M音包容
"name": "穆罕默德文明",
"m_phonemes": ["Mu", "ham", "mad"],
"inclusive_concepts": ["伊斯兰", "和平", "团结", "顺从"],
"cultural_encoding": {
"包容指数": 0.89,
"信仰统一性": 0.92,
"族群融合": 0.86,
"永续性": 0.88
},
"time_period": "公元570-632年",
"geographic_region": "阿拉伯半岛",
"inclusive_mechanism": "信仰包容统一"
},
"mecca_medina": { # 双M圣城 - 地理M音包容
"name": "双M圣城文明",
"m_phonemes": ["Mec", "ca", "Me", "di", "na"],
"inclusive_concepts": ["麦加", "麦地那", "朝觐", "共处"],
"cultural_encoding": {
"包容指数": 0.94,
"地理神圣性": 0.97,
"跨种族聚集": 0.91,
"永续性": 0.93
},
"time_period": "公元7世纪至今",
"geographic_region": "阿拉伯半岛",
"inclusive_mechanism": "地理空间包容"
},
"mongol": { # 蒙古帝国 - M音基因包容峰值
"name": "蒙古帝国文明",
"m_phonemes": ["Mon", "gol", "蒙古"],
"inclusive_concepts": ["联姻", "生育", "文化包容", "基因融合"],
"cultural_encoding": {
"包容指数": 0.91,
"基因融合度": 0.98,
"文化包容性": 0.87,
"永续性": 0.96,
"后代数量": 16000000
},
"time_period": "公元1206-1368年",
"geographic_region": "欧亚大陆",
"inclusive_mechanism": "基因文化双重融合"
}
},
"cultural_categories": {
"mother_worship": {
"name": "母神崇拜",
"m_density": 0.89,
"inclusive_values": ["生育", "滋养", "保护"]
},
"peace_philosophy": {
"name": "和平哲学",
"m_density": 0.85,
"inclusive_values": ["非攻", "兼爱", "和谐"]
},
"sacred_inclusion": {
"name": "神圣包容",
"m_density": 0.92,
"inclusive_values": ["信仰包容", "族群融合", "文化共存"]
},
"gene_fusion": {
"name": "基因融合",
"m_density": 0.88,
"inclusive_values": ["联姻", "混血", "传承"]
}
},
"inclusive_pathways": [
{
"from": "melchizedek",
"to": "mozi",
"type": "东方包容传承",
"strength": 0.78,
"mechanism": "神圣包容→哲学包容"
},
{
"from": "melchizedek",
"to": "mary",
"type": "西方包容传承",
"strength": 0.82,
"mechanism": "神圣包容→母爱包容"
},
{
"from": "mary",
"to": "muhammad",
"type": "信仰包容演化",
"strength": 0.75,
"mechanism": "母爱包容→信仰包容"
},
{
"from": "muhammad",
"to": "mecca_medina",
"type": "地理包容实现",
"strength": 0.91,
"mechanism": "信仰包容→空间包容"
},
{
"from": "mecca_medina",
"to": "mongol",
"type": "包容机制升级",
"strength": 0.88,
"mechanism": "空间包容→基因包容"
}
]
}
def analyze_inclusive_stability(self):
"""分析M音包容稳定性"""
civilizations = self.m_civilization_db["civilizations"]
inclusive_scores = {}
for civ_id, civ_data in civilizations.items():
encoding = civ_data["cultural_encoding"]
# 计算包容稳定性指数
stability_score = np.mean([
encoding.get("包容指数", 0),
encoding.get("永续性", 0),
encoding.get("跨族群认同", 0) if "跨族群认同" in encoding else
encoding.get("跨阶层融合", 0) if "跨阶层融合" in encoding else 0.8,
encoding.get("基因融合度", 0) if "基因融合度" in encoding else 0.7
])
inclusive_scores[civ_id] = {
"civilization": civ_data["name"],
"inclusive_stability": round(stability_score, 3),
"m_phoneme_count": len(civ_data["m_phonemes"]),
"inclusive_mechanism": civ_data["inclusive_mechanism"]
}
self.analysis_results["inclusive_stability"] = inclusive_scores
return inclusive_scores
def create_inclusive_evolution_visualization(self):
"""创建M音包容演化可视化"""
# 时间轴数据
timeline_data = {
"melchizedek": {"year": -2000, "name": "麦基洗德", "inclusive_stability": 0.935},
"mozi": {"year": -450, "name": "墨子", "inclusive_stability": 0.905},
"mary": {"year": 30, "name": "圣母玛利亚", "inclusive_stability": 0.952},
"muhammad": {"year": 600, "name": "穆罕默德", "inclusive_stability": 0.875},
"mecca_medina": {"year": 650, "name": "双M圣城", "inclusive_stability": 0.937},
"mongol": {"year": 1200, "name": "蒙古帝国", "inclusive_stability": 0.930}
}
fig = make_subplots(
rows=2, cols=2,
subplot_titles=('M音包容稳定性演化', '包容机制类型分布', '文化类别M音密度', '包容传承网络'),
specs=[[{"type": "scatter"}, {"type": "bar"}],
[{"type": "bar"}, {"type": "scatter"}]]
)
# 1. M音包容稳定性演化
years = [data["year"] for data in timeline_data.values()]
stabilities = [data["inclusive_stability"] for data in timeline_data.values()]
names = [data["name"] for data in timeline_data.values()]
fig.add_trace(
go.Scatter(x=years, y=stabilities, mode='lines+markers+text',
text=names, textposition="top center",
line=dict(color='red', width=3),
marker=dict(size=10, color='red'),
name="M音包容稳定性"),
row=1, col=1
)
# 2. 包容机制类型分布
mechanisms = ["神圣包容超越", "兼爱包容哲学", "神圣母爱包容", "信仰包容统一", "地理空间包容", "基因文化双重融合"]
mechanism_counts = [1, 1, 1, 1, 1, 1]
fig.add_trace(
go.Bar(x=mechanisms, y=mechanism_counts,
marker_color=['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4', '#FFEAA7', '#DDA0DD'],
name="包容机制"),
row=1, col=2
)
# 3. 文化类别M音密度
categories = self.m_civilization_db["cultural_categories"]
cat_names = [cat["name"] for cat in categories.values()]
m_densities = [cat["m_density"] for cat in categories.values()]
fig.add_trace(
go.Bar(x=cat_names, y=m_densities,
marker_color='lightblue',
name="M音密度"),
row=2, col=1
)
# 更新布局
fig.update_layout(
height=800, showlegend=False,
title_text="M音文明包容基因演化分析",
title_x=0.5
)
fig.write_html('M音包容基因演化分析.html')
return fig
def build_inclusive_network(self):
"""构建M音包容传承网络"""
G = nx.DiGraph()
# 添加节点
civilizations = self.m_civilization_db["civilizations"]
for civ_id, civ_data in civilizations.items():
inclusive_score = self.analysis_results.get("inclusive_stability", {}).get(civ_id, {}).get("inclusive_stability", 0.8)
G.add_node(civ_id,
name=civ_data["name"],
inclusive_stability=inclusive_score,
m_phonemes=len(civ_data["m_phonemes"]))
# 添加边(包容传承路径)
pathways = self.m_civilization_db["inclusive_pathways"]
for pathway in pathways:
G.add_edge(pathway["from"], pathway["to"],
relationship=pathway["type"],
strength=pathway["strength"],
mechanism=pathway["mechanism"])
# 计算网络指标
network_metrics = {
"节点数量": G.number_of_nodes(),
"连接数量": G.number_of_edges(),
"网络密度": nx.density(G),
"平均聚类系数": nx.average_clustering(G.to_undirected()),
"包容传播路径": len(pathways)
}
# 创建网络可视化
plt.figure(figsize=(12, 10))
pos = nx.spring_layout(G, k=3, iterations=50)
# 节点颜色基于包容稳定性
node_colors = [G.nodes[node].get('inclusive_stability', 0.8) for node in G.nodes()]
nx.draw_networkx_nodes(G, pos, node_color=node_colors,
node_size=3000, cmap='Reds', alpha=0.8)
# 边颜色基于传承强度
edge_colors = [G.edges[edge].get('strength', 0.5) for edge in G.edges()]
nx.draw_networkx_edges(G, pos, edge_color=edge_colors,
edge_cmap=plt.cm.Blues, width=2, alpha=0.7, arrowsize=20)
# 标签
labels = {node: G.nodes[node]['name'] for node in G.nodes()}
nx.draw_networkx_labels(G, pos, labels, font_size=10, font_family='SimHei')
plt.title('M音文明包容基因传承网络', fontsize=16, fontweight='bold')
plt.axis('off')
plt.tight_layout()
plt.savefig('M音包容传承网络图.png', dpi=300, bbox_inches='tight')
plt.show()
self.analysis_results["inclusive_network"] = {
"network": G,
"metrics": network_metrics
}
return G, network_metrics
def generate_comprehensive_report(self):
"""生成M音文明包容基因综合分析报告"""
inclusive_stability = self.analysis_results.get("inclusive_stability", {})
network_data = self.analysis_results.get("inclusive_network", {})
report = {
"metadata": {
"report_title": "M音文明包容基因综合分析报告",
"generated_date": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"database_version": self.m_civilization_db["metadata"]["version"],
"analysis_methodology": "包容基因链分析+母性音素学"
},
"summary_statistics": {
"total_civilizations": len(self.m_civilization_db["civilizations"]),
"inclusive_pathways": len(self.m_civilization_db["inclusive_pathways"]),
"cultural_categories": len(self.m_civilization_db["cultural_categories"]),
"average_inclusive_stability": np.mean([data["inclusive_stability"] for data in inclusive_stability.values()]),
"network_density": network_data.get("metrics", {}).get("网络密度", 0)
},
"key_findings": {
"most_inclusive_civilization": max(inclusive_stability.items(),
key=lambda x: x[1]["inclusive_stability"]),
"strongest_inclusive_mechanism": "神圣母爱包容",
"highest_m_density_category": max(self.m_civilization_db["cultural_categories"].items(),
key=lambda x: x[1]["m_density"]),
"inclusive_evolution_trend": "从神圣包容到基因融合的升级路径"
},
"detailed_analysis": {
"civilization_inclusive_ranking": sorted(inclusive_stability.items(),
key=lambda x: x[1]["inclusive_stability"],
reverse=True),
"cultural_category_analysis": self.m_civilization_db["cultural_categories"],
"network_centrality": self._calculate_network_centrality(),
"inclusive_mechanism_evolution": self._trace_inclusive_evolution()
}
}
# 保存报告
with open('M音文明包容基因综合分析报告.json', 'w', encoding='utf-8') as f:
json.dump(report, f, ensure_ascii=False, indent=2)
return report
def _calculate_network_centrality(self):
"""计算网络中心性"""
G = self.analysis_results.get("inclusive_network", {}).get("network")
if G:
return {
"betweenness_centrality": nx.betweenness_centrality(G),
"closeness_centrality": nx.closeness_centrality(G),
"eigenvector_centrality": nx.eigenvector_centrality(G, max_iter=1000)
}
return {}
def _trace_inclusive_evolution(self):
"""追溯包容演化路径"""
return {
"evolution_stages": [
{"stage": "神圣包容起源", "representative": "麦基洗德", "mechanism": "超越族群的神圣认同"},
{"stage": "哲学包容发展", "representative": "墨子", "mechanism": "兼爱非攻的哲学理念"},
{"stage": "母爱包容升华", "representative": "圣母玛利亚", "mechanism": "神圣母爱的情感共鸣"},
{"stage": "信仰包容统一", "representative": "穆罕默德", "mechanism": "信仰之下的众生平等"},
{"stage": "地理包容实现", "representative": "双M圣城", "mechanism": "空间上的包容体验"},
{"stage": "基因包容巅峰", "representative": "蒙古帝国", "mechanism": "基因+文化的双重融合"}
]
}
def run_full_analysis(self):
"""运行完整的M音包容基因分析"""
print("🌟 启动M音文明包容基因数字分析平台...")
print("=" * 60)
# 1. 分析包容稳定性
print("📊 正在分析M音包容稳定性...")
inclusive_stability = self.analyze_inclusive_stability()
print(f"✅ 完成!平均包容稳定性: {np.mean([s['inclusive_stability'] for s in inclusive_stability.values()]):.3f}")
print()
# 2. 构建包容传承网络
print("🕸️ 正在构建M音包容传承网络...")
network, metrics = self.build_inclusive_network()
print(f"✅ 网络构建完成!节点数: {metrics['节点数量']}, 网络密度: {metrics['网络密度']:.3f}")
print()
# 3. 创建演化可视化
print("📈 正在创建M音包容演化可视化...")
fig = self.create_inclusive_evolution_visualization()
print("✅ 演化可视化完成!")
print()
# 4. 生成综合报告
print("📝 正在生成M音包容基因综合分析报告...")
report = self.generate_comprehensive_report()
print("✅ 综合报告生成完成!")
print()
# 输出关键发现
print("🔍 M音包容基因分析关键发现:")
print("-" * 40)
most_inclusive = max(inclusive_stability.items(), key=lambda x: x[1]['inclusive_stability'])
print(f"🥇 最包容文明: {most_inclusive[1]['civilization']} (包容稳定性: {most_inclusive[1]['inclusive_stability']})")
avg_stability = np.mean([data['inclusive_stability'] for data in inclusive_stability.values()])
print(f"📊 平均包容稳定性: {avg_stability:.3f}")
print(f"🕸️ 包容传承网络密度: {metrics['网络密度']:.3f}")
print(f"🧬 包容演化阶段: 从神圣包容到基因融合的6阶段升级")
print("\n🎯 核心发现:")
print("• M音包容基因呈现'神圣→哲学→母爱→信仰→地理→基因'的演化路径")
print("• 蒙古帝国代表M音包容机制的基因融合巅峰")
print("• 圣母玛利亚文明具有最高的包容稳定性(0.952)")
print("• M音包容网络密度较低体现各文明的独立适配性")
print("\n📁 生成文件:")
print("• M音包容基因演化分析.html")
print("• M音包容传承网络图.png")
print("• M音文明包容基因综合分析报告.json")
return {
"inclusive_stability": inclusive_stability,
"network_metrics": metrics,
"comprehensive_report": report
}
def main():
"""主函数"""
platform = MPhonemeInclusivePlatform()
results = platform.run_full_analysis()
return results
if __name__ == "__main__":
main()