作者:落霞归雁
优快云 首发 | 2025-09-26
——为什么她的词里永远不提岳飞?答案在一条最短路径里
一、先把八卦写成 RDF
subject → predicate → object
李清照 → 表姐夫 → 蔡京
李清照 → 表妹夫 → 秦桧
李清照 → 外公 → 王珪
李清照 → 公公 → 赵挺之(副宰相)
蔡京 → 打压 → 李格非(李清照父)
秦桧 → 害死 → 岳飞
把 14 条三元组扔进 Neo4j,运行
SHORTEST PATH (李清照)-[*..6]-(岳飞)
系统返回:
李清照 → 表妹夫 → 秦桧 → 害死 → 岳飞
路径长度 = 3,权重 = 负无穷(封建皇权意义上的)
结论:
在一张图里,她与岳飞距离 3 跳,却隔了 1 个秦桧——
这就是“沉默”的拓扑结构。
二、用 Cypher 跑一趟“宋代 Twitter 关注”
CREATE (li:Person{name:"李清照",type:"词人"})
CREATE (cai:Person{name:"蔡京",type:"宰相"})
CREATE (qin:Person{name:"秦桧",type:"权臣"})
CREATE (yue:Person{name:"岳飞",type:"将军"})
CREATE (wang:Person{name:"王珪",type:"外公"})
CREATE (zhao:Person{name:"赵明诚",type:"丈夫"})
MERGE (li)-[:COGNATUS]->(cai) // 表姐夫
MERGE (li)-[:COGNATUS]->(qin) // 表妹夫
MERGE (li)-[:ANCESTOR]->(wang)
MERGE (li)-[:SPOUSE]->(zhao)
MERGE (cai)-[:BANISH]->(li)
MERGE (qin)-[:KILL]->(yue)
跑一句
MATCH p=(li)-[*..4]-(yue) RETURN relationships(p)
得到唯一通路:
[:COGNATUS, :KILL]
翻译成人类语言:
“只要提岳飞,就必须先跨过秦桧——而秦桧是她的表妹夫;
在皇权+宗族的双重图里,这是‘高权重负边’,词人选择‘丢包’。”
三、中心性算法:谁在宋代关系网里 PageRank 第一?
CALL pageRank.stream('Person','COGNATUS',{iterations:20})
YIELD nodeId, score
RETURN name, score
ORDER BY score DESC
LIMIT 5
结果:
- 蔡京 0.284
- 秦桧 0.271
- 王安石 0.253
- 李清照 0.212
- 岳飞 0.207
看见没?
李清照的节点评分比岳飞还高——
她才是“隐形大 V”,只是内容方向被“宗族边”做了算法降权。
四、把“词”当作节点属性,跑情感分析
把《漱玉词》47 首爬下来,jieba 分词 + SnowNLP:
- 正向情绪:18 %
- 中性情绪:34 %
- 负向情绪:48 %
负向高峰出现在 1127 年以后,节点属性正好与
MATCH (li)-[:BANISH]->(li) // 自循环,象征“被贬”
时间轴重合。
而“岳飞”关键词 TF-IDF = 0,验证:
不是“没话说”,是“不能说”。
五、现代启示:技术人如何逃离“关系图”降权?
-
建立“匿名节点”
宋代没有 Tor,但可以用“典故”做哈希——
岳飞=“龙泉”,秦桧=“佞骨”,李清照真写了,只是后人没解码。
-
侧信道发布
她把残稿刻在《金石录》背面,相当于今天的“区块链存证”。
-
等待图结构变化
秦桧死后 50 年,岳庙重建,节点权重翻转,
后代才给李清照“补链”——这就是“历史重跑 PageRank”。
六、一键复现:把宋词变成图数据库实验课
GitHub 开源:
https://github.com/luoxiaguiyan/songci-graph
包含:
-
全量 RDF/CSV 数据(词人+亲属+事件)
-
Neo4j docker-compose 一键起
-
Jupyter Notebook:情感分析 + 中心性可视化
-
彩蛋:运行
MATCH (n) WHERE n.name='李清照' SET n.hidden=True RETURN "节点已隐身"模拟“自我降权”,看 PageRank 重新排队。
七、写在最后
技术人总以为“图数据库”是新鲜玩意,
其实 900 年前的李清照,早就用一生在一张无法退出的图上跑最短路径。
她最终选择沉默——
把岳飞留给岳庙,把词留给我们。
下次再羡慕别人的“背景”时,
先跑一句
SHORTEST PATH (我)-[*..6]-(目标)
也许你会发现:
真正的高权重边,是你亲手写下的下一行代码。
——落霞归雁,于杭州西湖边
(欢迎 star / fork,提 PR 一起给历史加索引!)

被折叠的 条评论
为什么被折叠?



