当前位置: 首页 > news >正文

基于python构造电影neo4j知识图谱

使用pandas构造neo4j电影知识谱图

实现效果

在这里插入图片描述
在这里插入图片描述

电影知识图谱构造过程

在这里插入图片描述

实现过程

import pandas as pd
from tqdm import tqdmfrom config import graph, cnndef delete_all():graph.run("MATCH(n) DETACH DELETE(n)")# 创建带属性的节点
def createNode(node, row):try:graph.run("MERGE (a:%s {name: '%s', type: '%s',  release_date:'%s', ""actors: '%s' }) "% (node, row['name'], row['type'],row['release_date'], row['actors']))except Exception as e:print(e)print('出错,但是继续')# 创建节点和关系
def create(a, b, aname, bname, relation):try:graph.run("MERGE (a:%s {name: '%s'}) ""MERGE (b:%s {name: '%s'}) ""MERGE (a)-[:%s]->(b)" % (a, aname, b, bname, relation))except Exception as e:print(e)print('出错,但是继续')def import_neo():sql = "select * from tb_movies"df = pd.read_sql(sql, con=cnn)# 使用 tqdm 包装 df.iterrows()for index, row in tqdm(df.iterrows(), total=df.shape[0], desc="构造电影知识图谱"):# print(row['name'])createNode('电影', row)if row['directors'] != '':create('电影', '导演', row['name'], row['directors'], '执导')if row['year'] != '':create('电影', '年份', row['name'], row['year'], '所属年份')if row['regions'] != '':create('电影', '国家或地区', row['name'], row['regions'], '出品国家或地区')if row['genres'] != '':create('电影', '类型', row['name'], row['genres'], '所属类型')if row['languages'] != '':create('电影', '语言', row['name'], row['languages'], '语言')if __name__ == '__main__':delete_all()import_neo()

http://www.mrgr.cn/news/66655.html

相关文章:

  • SQL server 中 CROSS APPLY的使用
  • 为什么 Allow 配合 meta noindex 比使用Disallow好?
  • QML----复制指定下标的ListModel数据
  • el-date-picker日期选择器动态设置日期
  • VScode的C/C++点击转到定义,不是跳转定义而是跳转声明怎么办?(内附详细做法)
  • 企业AI助理驱动的决策支持:从数据洞察到战略执行
  • MongoDB基础介绍以及从0~1语法介绍
  • WEB:如何优化大数据菜单展示的攻略指南
  • 平衡的二叉搜索树 —— AVL树
  • 基于java+SpringBoot+Vue的旅游管理系统设计与实现
  • 小菜家教平台(二):基于SpringBoot+Vue打造一站式学习管理系统
  • 【JAVA】Java基础—基础语法:控制结构(条件语句、循环结构)
  • 省级-财政分权数据(2000-2022年)
  • redis学习万字详解(一)
  • 鸿蒙跳转商店应用页面(给我评分功能)
  • 跳表原理-课堂笔记
  • 职业院校关于大数据、云计算和物联网传感器技术的结合与应用探讨
  • TensorRT-LLM的k8s弹性伸缩部署方案
  • 用 Python 自动检测交易图形态的实用指南请查收
  • 【Rust Crate之Actix Web(一)】
  • i2c-tools 4.3 for Android 9.0
  • Redis完全指南:从基础功能到缓存管理与高可用性设计
  • 解决SRS推送webrtc流卡顿问题
  • Java多线程的几种常见写法
  • w023基于web学生宿舍管理系统的设计与开发
  • 谈谈“项目复盘会议”怎么组织