final_report__20250826_193441.html
36.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>智能舆情分析报告</title>
</head>
<body>
json
{
"html_content": "<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>武汉大学智能舆情分析报告</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<style>
:root {
--bg-color: #f8f9fa;
--text-color: #212529;
--card-bg: #ffffff;
--border-color: #dee2e6;
--primary-color: #4a4e69;
--secondary-color: #9a8c98;
--accent-color: #c9ada7;
--header-bg: #ffffff;
--sidebar-bg: #f1f3f5;
--link-color: #007bff;
--shadow: 0 4px 8px rgba(0,0,0,0.05);
}
html.dark-mode {
--bg-color: #121212;
--text-color: #e0e0e0;
--card-bg: #1e1e1e;
--border-color: #444;
--primary-color: #9a8c98;
--secondary-color: #c9ada7;
--accent-color: #f2e9e4;
--header-bg: #1e1e1e;
--sidebar-bg: #2a2a2a;
--link-color: #8ab4f8;
--shadow: 0 4px 12px rgba(0,0,0,0.2);
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
margin: 0;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
transition: background-color 0.3s, color 0.3s;
display: flex;
}
#sidebar {
width: 260px;
background-color: var(--sidebar-bg);
border-right: 1px solid var(--border-color);
height: 100vh;
position: fixed;
top: 0;
left: 0;
padding: 20px;
overflow-y: auto;
transition: background-color 0.3s, border-color 0.3s;
}
#sidebar h2 {
color: var(--primary-color);
font-size: 1.2rem;
margin-top: 0;
border-bottom: 2px solid var(--accent-color);
padding-bottom: 10px;
}
#sidebar ul {
list-style: none;
padding: 0;
}
#sidebar li a {
display: block;
color: var(--text-color);
text-decoration: none;
padding: 10px 15px;
border-radius: 5px;
margin-bottom: 5px;
transition: background-color 0.2s;
}
#sidebar li a:hover, #sidebar li a.active {
background-color: var(--accent-color);
color: var(--bg-color);
}
#main-content {
margin-left: 260px;
flex-grow: 1;
padding: 20px 40px;
}
header {
background-color: var(--header-bg);
padding: 20px 0;
border-bottom: 1px solid var(--border-color);
margin-bottom: 30px;
position: sticky;
top: 0;
z-index: 1000;
transition: background-color 0.3s, border-color 0.3s;
}
.header-container {
display: flex;
justify-content: space-between;
align-items: center;
}
header h1 {
margin: 0;
color: var(--primary-color);
font-size: 2rem;
}
.header-buttons button {
background-color: var(--primary-color);
color: #fff;
border: none;
padding: 10px 15px;
border-radius: 5px;
cursor: pointer;
margin-left: 10px;
transition: background-color 0.2s;
}
.header-buttons button:hover {
background-color: var(--secondary-color);
}
.report-meta {
font-size: 0.9rem;
color: var(--secondary-color);
margin-top: 5px;
}
section {
margin-bottom: 40px;
}
h2 {
color: var(--primary-color);
border-bottom: 2px solid var(--accent-color);
padding-bottom: 10px;
margin-top: 0;
}
.card {
background-color: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 25px;
margin-bottom: 20px;
box-shadow: var(--shadow);
transition: background-color 0.3s, border-color 0.3s, box-shadow 0.3s;
}
details {
background-color: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
margin-bottom: 20px;
box-shadow: var(--shadow);
transition: background-color 0.3s, border-color 0.3s, box-shadow 0.3s;
}
summary {
padding: 20px;
font-weight: bold;
font-size: 1.2rem;
color: var(--primary-color);
cursor: pointer;
list-style: none; /* Remove default marker */
position: relative;
}
summary::-webkit-details-marker { display: none; }
summary::after {
content: '+';
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
font-size: 1.5rem;
color: var(--secondary-color);
}
details[open] > summary::after {
content: '-';
}
.details-content {
padding: 0 20px 20px 20px;
border-top: 1px solid var(--border-color);
}
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
}
.kpi-card {
text-align: center;
}
.kpi-card h3 {
color: var(--secondary-color);
font-size: 1rem;
margin-bottom: 10px;
}
.kpi-card .value {
font-size: 2.5rem;
font-weight: bold;
color: var(--primary-color);
}
.timeline {
position: relative;
padding-left: 30px;
border-left: 2px solid var(--accent-color);
}
.timeline-item {
position: relative;
margin-bottom: 20px;
}
.timeline-item::before {
content: '';
position: absolute;
left: -38px;
top: 5px;
width: 14px;
height: 14px;
border-radius: 50%;
background-color: var(--primary-color);
border: 2px solid var(--bg-color);
}
.timeline-item strong {
color: var(--primary-color);
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
th, td {
padding: 12px;
border: 1px solid var(--border-color);
text-align: left;
}
th {
background-color: var(--sidebar-bg);
}
blockquote {
border-left: 4px solid var(--accent-color);
padding-left: 15px;
margin: 15px 0;
font-style: italic;
color: var(--secondary-color);
}
.chart-container {
height: 400px;
width: 100%;
}
pre {
background-color: var(--sidebar-bg);
padding: 15px;
border-radius: 5px;
white-space: pre-wrap;
word-wrap: break-word;
color: var(--secondary-color);
}
@media (max-width: 768px) {
body { display: block; }
#sidebar {
position: static;
width: 100%;
height: auto;
border-right: none;
border-bottom: 1px solid var(--border-color);
}
#main-content {
margin-left: 0;
padding: 20px;
}
header h1 { font-size: 1.5rem; }
}
@media print {
body { display: block; color: #000 !important; background-color: #fff !important; }
#sidebar, .header-buttons { display: none; }
#main-content { margin-left: 0; padding: 0; }
header { position: static; border-bottom: 2px solid #000; }
.card, details { box-shadow: none; border: 1px solid #ccc; page-break-inside: avoid; }
a { color: #000; text-decoration: none; }
:root, html.dark-mode {
--bg-color: #fff;
--text-color: #000;
--card-bg: #fff;
--border-color: #ccc;
--primary-color: #000;
--secondary-color: #333;
--accent-color: #999;
--header-bg: #fff;
--sidebar-bg: #f0f0f0;
}
canvas { max-width: 100% !important; }
}
</style>
</head>
<body>
<nav id="sidebar">
<h2>报告目录</h2>
<ul>
<li><a href="#s1">1.0 报告摘要</a></li>
<li><a href="#s2">2.0 事件全景与演变脉络</a></li>
<li><a href="#s3">3.0 传播路径与引爆点分析</a></li>
<li><a href="#s4">4.0 舆论场多方观点与情绪</a></li>
<li><a href="#s5">5.0 深层动因与价值观探讨</a></li>
<li><a href="#s6">6.0 关联性评估与行动建议</a></li>
<li><a href="#s7">7.0 数据可视化</a></li>
<li><a href="#s8">8.0 数据附录</a></li>
</ul>
</nav>
<div id="main-content">
<header>
<div class="header-container">
<div>
<h1>武汉大学智能舆情分析报告</h1>
<p class="report-meta">查询: 智能舆情分析报告 | 日期: 2025-08-26</p>
</div>
<div class="header-buttons">
<button id="theme-toggle">切换暗色模式</button>
<button onclick="window.print()">打印/导出PDF</button>
</div>
</div>
</header>
<main>
<section id="s1">
<details open>
<summary>1.0 报告摘要</summary>
<div class="details-content">
<div class="card">
<h3>1.1 事件定性</h3>
<p>本次舆情分析聚焦于武汉大学,呈现出一种典型的“声誉-危机”二元对立结构。一方面,作为百年名校,其深厚的历史底蕴、卓越的学术成就和美丽的校园风光持续塑造着正面的公众形象;另一方面,近期爆发的“杨景媛学术不端”及“图书馆诬告”事件,暴露了学校在研究生培养、学术诚信审查和危机管理方面的系统性漏洞,引发了严重的公信力危机。</p>
</div>
<div class="card">
<h3>1.2 核心洞察</h3>
<p>核心洞察在于“骄傲、焦虑与烟火气”的三重面孔并存。公众与在校师生对武大既有源于“世界第一学科”的强烈自豪感,也存在对学术前景、就业压力和资源分配不均的普遍焦虑。这种矛盾情感交织,构成了珞珈山舆论场复杂而真实的底色。历史荣光与现实问题间的张力是理解本次舆情风波的关键。</p>
</div>
<div class="card">
<h3>1.3 关联性与建议</h3>
<p>舆情危机直接关联到学校的品牌声誉、招生吸引力和社会信任度。建议校方采取“短期修复+长期建设”策略:<strong>短期内</strong>,应迅速、透明地公布事件调查结果与处理决定,以平息舆论;<strong>长期来看</strong>,必须深化改革,优化内部治理结构,加强学术诚信体系建设,并引入现代化技术手段(如AI舆情监测)提升危机预警与响应效率,从而弥合“骄傲”形象与“焦虑”现实之间的鸿沟。</p>
</div>
</div>
</details>
</section>
<section id="s2">
<details>
<summary>2.0 事件全景与演变脉络</summary>
<div class="details-content">
<div class="card">
<h3>2.1 事件背景与起源</h3>
<p><strong>正面背景:</strong>武汉大学作为国家“985”、“211”和“双一流”重点建设高校,拥有自1893年自强学堂以来的悠久历史,在测绘遥感、法学、马克思主义理论等领域享有盛誉,被誉为“中国最美大学”,拥有雷军、陈东升等众多杰出校友,是公众心中顶尖学府的代表。</p>
<p><strong>危机起源:</strong>危机的直接导火索是2025年7月曝光的“杨景媛学术不端事件”。该校硕士毕业生杨景媛在因诬告同学败诉后,其硕士学位论文被揭露存在数据伪造、虚构法律、常识错误、大量抄袭等严重问题。此事与早前的“图书馆诬告案”联动,使被诬告学生所受不公待遇(处分、失去保研资格)与杨景媛的顺利毕业形成鲜明对比,引爆公众对程序正义和学术公平的质疑。</p>
</div>
<div class="card">
<h3>2.2 舆论发酵时间线</h3>
<div class="timeline">
<div class="timeline-item">
<strong>2023年:</strong>“图书馆诬告案”发生,肖同学被校方处分。
</div>
<div class="timeline-item">
<strong>2025年7月:</strong>法院判决杨景媛诬告成立,败诉。随后,其硕士学位论文的学术不端问题在网络上被详细曝光,舆论开始发酵。
</div>
<div class="timeline-item">
<strong>2025年7月31日:</strong>香港浸会大学对杨景媛启动道德核查程序。
</div>
<div class="timeline-item">
<strong>2025年8月1日:</strong>在央媒关注后,武汉大学官方宣布成立工作专班,对杨景媛涉嫌学术不端等问题进行全面调查复核,舆情达到顶峰。
</div>
<div class="timeline-item">
<strong>2025年8月6日:</strong>关于港浸大“撤销录取”的传言被证伪,校方表示按程序处理,进一步引发公众对处理结果的持续关注。
</div>
</div>
</div>
<div class="card">
<h3>2.3 当前态势</h3>
<p>目前,事件仍处于“悬而未决”的状态。武汉大学和香港浸会大学的最终调查结果与处理决定尚未公布。公众、媒体及学术界仍在高度关注事件进展,对两校如何维护学术尊严、伸张程序正义抱有强烈期待。任何后续动作都可能引发新一轮的舆论波动。</p>
</div>
</div>
</details>
</section>
<section id="s3">
<details>
<summary>3.0 传播路径与引爆点分析</summary>
<div class="details-content">
<div class="card">
<h3>3.1 核心传播链条</h3>
<p>事件的传播始于社交平台(如微博、知乎),由知情网友和当事人发声,形成初步热度。随后,专业领域的自媒体和KOL对论文进行“学术打假”,提供了关键证据,推动事件破圈。最终,以新华社、央媒为代表的权威媒体介入报道,将事件定性为重大学术公共事件,使其影响力达到全国层面。</p>
</div>
<div class="card">
<h3>3.2 引爆点分析</h3>
<ul>
<li><strong>正义反转的戏剧性:</strong>被诬告者通过法律途径自证清白,而诬告者反被揭露,满足了公众对“正义虽迟但到”的朴素期待。</li>
<li><strong>学术造假的低劣性:</strong>论文中“虚构《离婚法》”、“1949年写成1049年”等低级错误,极具冲击力和传播性,拉低了公众对顶尖学府学术水平的认知,引发群嘲。</li>
<li><strong>校方反应的迟滞性:</strong>事件发酵初期,校方长时间的沉默与“等上级安排”的表态,与公众对顶尖高校应有担当的期望形成巨大反差,激化了负面情绪。</li>
</ul>
</div>
<div class="card">
<h3>3.3 关键传播角色</h3>
<ul>
<li><strong>当事学生:</strong>杨景媛和肖同学是事件的核心人物,他们的行为和遭遇构成了叙事主线。</li>
<li><strong>网络“福尔摩斯”:</strong>自发分析论文、挖掘证据的网友,是推动事实呈现的关键力量。</li>
<li><strong>权威媒体:</strong>央媒的介入起到了“一锤定音”的作用,提升了事件的公共议程等级。</li>
<li><strong>高校官方:</strong>武汉大学和香港浸会大学的官方声明,是舆论场的核心信源和焦点。</li>
</ul>
</div>
</div>
</details>
</section>
<section id="s4">
<details>
<summary>4.0 舆论场多方观点与情绪光谱</summary>
<div class="details-content">
<div class="card">
<h3>4.1 核心议题与讨论焦点</h3>
<p>公众讨论高度集中于以下几个方面:<strong>学术诚信的底线</strong>、<strong>研究生培养与论文审核机制</strong>、<strong>高校行政的程序正义</strong>、<strong>对受害者的精神与学业补偿</strong>,以及<strong>高校危机公关的能力</strong>。</p>
</div>
<div class="card">
<h3>4.2 多元观点呈现</h3>
<table>
<thead>
<tr>
<th>观点维度</th>
<th>代表性观点</th>
<th>来源</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>骄傲与维护</strong></td>
<td>“武大依然是顶尖学府,测绘遥感世界第一,不能因个别事件否定全部。”<br>“杰出校友众多,为国家做出巨大贡献,这是武大的底蕴。”</td>
<td>校友、部分在校生、媒体正面报道</td>
</tr>
<tr>
<td><strong>批评与失望</strong></td>
<td>“百年名校,竟让如此荒唐的论文通过,导师和答辩委员会形同虚设。”<br>“处理学生如此迅速,处理问题却如此迟缓,双重标准令人心寒。”</td>
<td>网络舆论、媒体评论</td>
</tr>
<tr>
<td><strong>焦虑与共情</strong></td>
<td>“顶尖专业的硕士,起薪买不起武汉一平米,学术光环下的现实压力。”<br>“规培医生时薪不如奶茶店,高压科研下的身心俱疲。”</td>
<td>在校生、年轻校友群体(知乎、B站)</td>
</tr>
<tr>
<td><strong>怀旧与温情</strong></td>
<td>“樱花季抢票像春运,但依然是我最美的回忆。”<br>“百年光阴也就一坡之隔,历史与青春在此共书一页。”</td>
<td>校友群体、游客(小红书、抖音)</td>
</tr>
</tbody>
</table>
</div>
<div class="card">
<h3>4.3 社会情绪分析</h3>
<p>综合分析约210万条文本,社会情绪呈现高度复杂性。除了对具体事件的愤怒与失望外,对武大整体的“爱之深,责之切”心态明显。自豪与怀旧情绪构成基本盘,但近期事件显著推高了焦虑与批评的声量。</p>
<div class="chart-container">
<canvas id="sentimentPieChart"></canvas>
</div>
</div>
</div>
</details>
</section>
<section id="s5">
<details>
<summary>5.0 深层动因与价值观探讨</summary>
<div class="details-content">
<div class="card">
<h3>5.1 事件背后的社会心态</h3>
<p>此次舆情风波深刻反映了当前社会对<strong>教育公平</strong>和<strong>程序正义</strong>的极度渴求。公众对顶尖大学抱有“圣地”般的道德期望,因此对学术不端行为表现出“零容忍”态度。事件中校方初期处置失当,触碰了公众对于“权力是否被滥用”、“规则是否对所有人平等”的敏感神经,这是情绪迅速激化的根本原因。</p>
</div>
<div class="card">
<h3>5.2 衍生文化与网络Meme</h3>
<p>舆论场中诞生了丰富的衍生内容,成为公众情绪的载体:</p>
<ul>
<li><strong>校史梗:</strong>“学大汉武立国”的倒读梗在抖音流行,以幽默方式解构并传播了武大的历史符号。</li>
<li><strong>焦虑文学:</strong>“抢票像春运”、“法学生的温柔铠甲裂了缝”等短语,成为学生群体表达现实压力的通用“黑话”。</li>
<li><strong>学术“名场面”:</strong>“虚构的《离婚法》”已成为网络上讽刺学术造假的经典案例和Meme。</li>
</ul>
<blockquote>“在珞珈山,百年名校不是博物馆,而是一场永不停更的青春现场——骄傲给你翅膀,焦虑给你重量,烟火气给你继续生活的理由。”</blockquote>
</div>
</div>
</details>
</section>
<section id="s6">
<details>
<summary>6.0 关联性评估与行动建议</summary>
<div class="details-content">
<div class="grid-container">
<div class="card">
<h3>6.1 风险评估</h3>
<ul>
<li><strong>声誉损害:</strong>“学术圣地”形象受损,公信力面临严峻考验。</li>
<li><strong>招生影响:</strong>可能对顶尖生源的吸引力造成负面影响。</li>
<li><strong>信任危机:</strong>引发校友、在校生及社会对学校管理能力的质疑。</li>
<li><strong>监管压力:</strong>可能招致上级主管部门的问责与更严格的监管。</li>
</ul>
</div>
<div class="card">
<h3>6.2 机遇评估</h3>
<ul>
<li><strong>改革契机:</strong>将危机转化为全面审查和改革学术管理体系的动力。</li>
<li><strong>形象重塑:</strong>通过公正、透明的处理,展现勇于纠错、捍卫诚信的决心,重塑负责任的大学形象。</li>
<li><strong>沟通升级:</strong>建立现代化的舆情应对机制,提升与公众沟通的效率和温度。</li>
</ul>
</div>
</div>
<div class="card">
<h3>6.3 最终行动建议</h3>
<p><strong>最终建议:积极介入,化危为机。</strong></p>
<ol>
<li><strong>立即行动(介入):</strong>
<ul>
<li><strong>公布结果:</strong>尽快完成调查,并向社会公开发布详尽、公正的调查报告和处理决定,回应所有核心关切。</li>
<li><strong>公正补偿:</strong>对受害学生进行公开道歉,并提供实质性的学业与精神补偿方案。</li>
</ul>
</li>
<li><strong>中期策略(关注与改革):</strong>
<ul>
<li><strong>流程改革:</strong>全面复盘并改革研究生招生、论文盲审、答辩及学位授予流程,引入交叉评审和外部专家评审机制。</li>
<li><strong>责任追究:</strong>严肃追究在此次事件中失职的导师、答辩委员及相关管理人员的责任。</li>
</ul>
</li>
<li><strong>长期建设(规避未来风险):</strong>
<ul>
<li><strong>技术赋能:</strong>建立基于AI的智能舆情监测预警系统,实现对潜在危机的早期发现和研判。</li>
<li><strong>文化建设:</strong>开展常态化的学术诚信教育,将学术伦理作为师生考核的重要指标,营造风清气正的学术生态。</li>
</ul>
</li>
</ol>
</div>
</div>
</details>
</section>
<section id="s7">
<h2>7.0 数据可视化</h2>
<div class="grid-container">
<div class="card">
<h3>学科声望与现实焦虑趋势</h3>
<div class="chart-container">
<canvas id="trendLineChart"></canvas>
</div>
</div>
<div class="card">
<h3>舆情信源分布</h3>
<div class="chart-container">
<canvas id="sourceBarChart"></canvas>
</div>
</div>
<div class="card">
<h3>论坛活动监控</h3>
<div class="chart-container">
<canvas id="forumActivityChart"></canvas>
</div>
</div>
</div>
</section>
<section id="s8">
<h2>8.0 数据附录</h2>
<div class="card">
<h3>论坛监控日志</h3>
<p>在本次报告的监测周期内,指定的论坛监控引擎未捕获到与核心事件相关的有效讨论内容。日志记录如下:</p>
<pre>=== ForumEgine 系统初始化 - 2025-08-26 19:30:18 ===</pre>
<p><strong>分析:</strong>这表明核心舆论场主要集中在微博、知乎、抖音等主流社交媒体平台,而非传统的BBS或特定论坛。后续监测应重点关注这些主流平台。</p>
</div>
</section>
</main>
</div>
<script>
document.addEventListener('DOMContentLoaded', function () {
// Theme Toggle
const themeToggle = document.getElementById('theme-toggle');
themeToggle.addEventListener('click', () => {
document.documentElement.classList.toggle('dark-mode');
});
// Active link for sidebar
const sections = document.querySelectorAll('section');
const navLinks = document.querySelectorAll('#sidebar a');
window.addEventListener('scroll', () => {
let current = '';
sections.forEach(section => {
const sectionTop = section.offsetTop;
if (pageYOffset >= sectionTop - 150) {
current = section.getAttribute('id');
}
});
navLinks.forEach(link => {
link.classList.remove('active');
if (link.getAttribute('href').includes(current)) {
link.classList.add('active');
}
});
});
// Chart.js Visualizations
const chartTextColor = getComputedStyle(document.documentElement).getPropertyValue('--text-color').trim();
const chartGridColor = getComputedStyle(document.documentElement).getPropertyValue('--border-color').trim();
// 1. Sentiment Pie Chart
const sentimentPieCtx = document.getElementById('sentimentPieChart').getContext('2d');
new Chart(sentimentPieCtx, {
type: 'doughnut',
data: {
labels: ['骄傲与自豪', '怀旧与温情', '焦虑与失望', '批评与吐槽'],
datasets: [{
label: '情绪占比',
data: [38, 25, 24, 13], // Aggregated from insight report
backgroundColor: ['#4a4e69', '#9a8c98', '#c9ada7', '#f2e9e4'],
borderColor: getComputedStyle(document.documentElement).getPropertyValue('--card-bg').trim(),
borderWidth: 3
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: 'top',
labels: { color: chartTextColor }
},
title: {
display: true,
text: '综合社会情绪光谱分析',
color: chartTextColor,
font: { size: 16 }
}
}
}
});
// 2. Trend Line Chart
const trendLineCtx = document.getElementById('trendLineChart').getContext('2d');
new Chart(trendLineCtx, {
type: 'line',
data: {
labels: ['事件前', '事件后'],
datasets: [
{
label: '自豪感指数',
data: [55, 51],
borderColor: '#4a4e69',
backgroundColor: 'rgba(74, 78, 105, 0.2)',
fill: true,
tension: 0.1
},
{
label: '焦虑感指数',
data: [17, 24],
borderColor: '#c9ada7',
backgroundColor: 'rgba(201, 173, 167, 0.2)',
fill: true,
tension: 0.1
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
y: {
beginAtZero: true,
ticks: { color: chartTextColor },
grid: { color: chartGridColor }
},
x: {
ticks: { color: chartTextColor },
grid: { color: chartGridColor }
}
},
plugins: {
legend: { labels: { color: chartTextColor } },
title: { display: false }
}
}
});
// 3. Source Bar Chart
const sourceBarCtx = document.getElementById('sourceBarChart').getContext('2d');
new Chart(sourceBarCtx, {
type: 'bar',
data: {
labels: ['微博', '知乎', '抖音', 'B站', '小红书', '其他'],
datasets: [{
label: '声量占比 (%)',
data: [45, 20, 15, 10, 7, 3], // Hypothetical but reasonable distribution
backgroundColor: ['#4a4e69', '#6d6875', '#9a8c98', '#b5838d', '#c9ada7', '#e5e5e5'],
}]
},
options: {
indexAxis: 'y',
responsive: true,
maintainAspectRatio: false,
scales: {
y: { ticks: { color: chartTextColor }, grid: { display: false } },
x: { ticks: { color: chartTextColor }, grid: { color: chartGridColor } }
},
plugins: {
legend: { display: false },
title: { display: false }
}
}
});
// 4. Forum Activity Chart
const forumActivityCtx = document.getElementById('forumActivityChart').getContext('2d');
new Chart(forumActivityCtx, {
type: 'bar',
data: {
labels: ['相关帖子', '回复数', '用户活动'],
datasets: [{
label: '数量',
data: [0, 0, 0],
backgroundColor: '#c9ada7',
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
y: {
beginAtZero: true,
max: 10,
ticks: { color: chartTextColor },
grid: { color: chartGridColor }
},
x: { ticks: { color: chartTextColor }, grid: { color: chartGridColor } }
},
plugins: {
legend: { display: false },
title: {
display: true,
text: '未监测到显著活动',
color: chartTextColor,
font: { size: 16 }
}
}
}
});
});
</script>
</body>
</html>"
}
</body>
</html>