[图数据库]Neo4j 中心性算法 - 以红楼梦为例
背景
近期由于知识图谱的原因,又一次将关注点转移到了图数据库 Neo4j 中,之所以选择 Neo4j,还是因为前些年已经对其进行了调研,上手较快,不同的应用场景可以会有其他的技术选型。
本文期望提供知识图谱增强下的资源推荐功能,其他使用中心性算法帮助发现用户的兴趣点和社交圈子,从而提供更加个性化的推荐内容。
介绍
由于作者使用的是 Neo4j 3.5 版本,所以引入了插件进行了增强 graph-algorithms-algo-3.5.4.0.jar,如果是较新的版本,引入的插件包发生了变化,本文不做过多介绍。
本文对中心性算法: 度中心度、紧密中心度、中介中心度、特征向量中心度 分别进行了介绍。
代码
首先是针对不同中心性算法的 Cypher 查询语句。
复制代码
其次是针对如上查询语句,在处理知识图谱数据过程中对应的节点(HLM)和关系(RELATIONSHIP)的设置。
复制代码
执行效果
第一张图是红楼梦人物数据的展示图,后面四张图是四种中心性算法的执行结果。
![](https://static001.geekbang.org/infoq/ac/acead11d92775d4abd068aba3477ee71.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
![](https://static001.geekbang.org/infoq/52/5297437e31ba664d327218a52e485958.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
![](https://static001.geekbang.org/infoq/48/4841e8ebb6eb16c3e8f8b4cd6134bca8.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
![](https://static001.geekbang.org/infoq/be/be37334ae9b02ce0839276f6f9eda8fb.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
![](https://static001.geekbang.org/infoq/86/86125e7037175514fcfd2ac97d86e812.jpeg?x-oss-process=image%2Fresize%2Cp_80%2Fauto-orient%2C1)
总结
使用 Neo4j 的 graph-algorithms-algo 插件,调用了针对红楼梦人物关系数据的四种中心度算法。
参考
版权声明: 本文为 InfoQ 作者【alexgaoyh】的原创文章。
原文链接:【http://xie.infoq.cn/article/75a66277c1d89554a41d33228】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论