Python+neo4j构建豆瓣电影知识图谱

文章目录

        • 数据来源
        • 数据整理导入
        • 节点和关系导入
          • 使用Subgraph批量导入节点和关系
        • 多标签实体和实体去重

数据来源

http://www.openkg.cn/dataset/douban-movie-kg

在这里插入图片描述
该网址拥有丰富的中文知识图谱数据集,OpenKG(Open Knowledge Graph),可供研究人员使用研究。

数据整理导入

在这里插入图片描述

import json with open('douban.json','r',encoding='utf-8') as f:res = json.load(f)for r in res:print(r)
{'id': 25746375, 'title': '我是路人甲', 'url': 'http://movie.douban.com/subject/25746375/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2252471054.jpg', 'rate': 7.4, 'director': ['尔冬升'], 'composer': ['尔冬升'], 'actor': ['万国鹏', '王婷', '沈凯', '徐小琴', '林晨', '魏星', '蒿怡帆', '蒿怡菲', '覃培军', '王昭', '张文斌', '林俭', '耿立树', '张喜来', '周鹏', '寇骏', '姜涛', '袁咏仪', '方中信', '刘伟强', '冯德伦', '吴彦祖', '尔冬升', '麦兆辉', '庄文强', '方平', '张静初', '许鞍华', '林更新', '蒋梦婕', '陆剑明'], 'category': ['剧情', '喜剧'], 'district': ['China_中国大陆'], 'language': ['汉语普通话', '粤语', '浙江方言'], 'showtime': 2015.0, 'length': 134.0, 'othername': ['I Am Somebody']}
{'id': 5446197, 'title': '铁拳', 'url': 'http://movie.douban.com/subject/5446197/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2239723542.jpg', 'rate': 7.1, 'director': ['安东尼·福奎阿'], 'composer': ['科特·萨特'], 'actor': ['杰克·吉伦哈尔', '福里斯特·惠特克', '瑞秋·麦克亚当斯', '娜奥米·哈里斯', '50分', '乌娜·劳伦斯', '米格尔·戈麦斯', '瑞塔·奥拉', '维克托·奥尔蒂斯', '克莱尔·弗利', '博·纳普', '约翰·塞纳迭姆博'], 'category': ['剧情', '动作', '运动'], 'district': ['United States of America_美国', 'China_中国大陆'], 'language': ['英语'], 'showtime': 2015.0, 'length': 123.0, 'othername': ['左撇子', '震撼擂台(台)', '再战击情(港)']}
{'id': 25885212, 'title': '我们梦中见', 'url': 'http://movie.douban.com/subject/25885212/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p2264068617.jpg', 'rate': 7.6, 'director': ['布雷特·海利'], 'composer': ['Marc Basch', '布雷特·海利'], 'actor': ['布莱思·丹纳', '马丁·斯塔尔', '琼·斯奎布', '雷亚·普尔曼', '玛丽·凯·普莱斯', '玛琳·阿克曼', '山姆·艾里奥特', '瑞德·斯科特', '麦克斯·盖尔', '马克·阿戴尔-里奥斯', '阿什利·斯皮尔斯', '阿尔蒂·曼', '卡罗琳-拉格菲尔特'], 'category': ['剧情', '喜剧'], 'district': ['United States of America_美国'], 'language': ['英语'], 'showtime': 2015.0, 'length': 92.0, 'othername': None}
{'id': 25728581, 'title': '少年透明人', 'url': 'http://movie.douban.com/subject/25728581/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p2212138459.jpg', 'rate': 6.6, 'director': ['加布里埃尔·萨瓦特瑞斯'], 'composer': None, 'actor': ['卢多维科·吉拉尔德罗', 'Ludovico Girardello', '瓦莱莉·高利诺'], 'category': ['奇幻', '冒险'], 'district': ['Italy_意大利'], 'language': ['意大利语'], 'showtime': 2014.0, 'length': 100.0, 'othername': ['The Invisible Boy']}
{'id': 5156558, 'title': '撒迦利亚', 'url': 'http://movie.douban.com/subject/5156558/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2265577230.jpg', 'rate': 6.0, 'director': ['克雷格·卓贝'], 'composer': ["Robert C. O'Brien", 'Nissar Modi'], 'actor': ['玛格特·罗比', '克里斯·派恩', '切瓦特·埃加福特'], 'category': ['剧情', '科幻', '惊悚'], 'district': ['United States of America_美国', 'Iceland_冰岛'], 'language': ['英语'], 'showtime': 2015.0, 'length': 95.0, 'othername': None}
{'id': 24325815, 'title': '非我', 'url': 'http://movie.douban.com/subject/24325815/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2251424605.jpg', 'rate': 6.3, 'director': ['塔西姆·辛'], 'composer': ['大卫·帕斯特尔', '亚历克斯·帕斯特尔'], 'actor': ['瑞恩·雷诺兹', '本·金斯利', '马修·古迪', '娜塔丽·马丁内兹', '米歇尔·道克瑞', '德里克·卢克', '维克多·加博', '玛丽安娜·宝拉·韦森特', '山姆·佩吉', '特瑞·韦伯', '格里夫·弗斯特', '艾米莉·特里梅因', '加里·维克斯'], 'category': ['科幻', '悬疑', '惊悚'], 'district': ['United States of America_美国'], 'language': ['英语'], 'showtime': 2015.0, 'length': 117.0, 'othername': ['换命法则(台)', '换命游戏', '无我', 'Selfless']}
{'id': 25922902, 'title': '唇上之歌', 'url': 'http://movie.douban.com/subject/25922902/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p2207639509.jpg', 'rate': 7.5, 'director': ['三木孝浩'], 'composer': ['持地佑季子', '登米裕一', '中田永一', '乙一'], 'actor': ['新垣结衣', '木村文乃', '桐谷健太', '恒松祐里', '下田翔大', '葵若菜', '柴田杏花', '山口麻友', '佐野勇斗', '室井響', '渡边大知', '真岛秀和', '石田光', '木村多江', '小木茂光', '角替和枝', '井川比佐志'], 'category': ['剧情'], 'district': ['Japan_日本'], 'language': ['日语'], 'showtime': 2015.0, 'length': 132.0, 'othername': ['再会吧 ! 青春小鸟(台)', 'Have a Song on Your Lips']}
{'id': 25738406, 'title': '如晴天,似雨天', 'url': 'http://movie.douban.com/subject/25738406/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p2225420926.jpg', 'rate': 8.1, 'director': ['弗兰克·威利'], 'composer': ['弗兰克·威利'], 'actor': ['朱利安·夏特金', '莉顿·梅斯特', '黛博拉·梅辛', '欧嘉·梅雷迪斯', '韦恩·普雷特洛', '乔治娅·希梅内斯·里弗谢', '阿尔弗雷多·纳西索', '比利·乔·阿姆斯特朗', '萨布丽娜·马查多', '达茜·福勒', 'Heather Whaley', 'Sammy Pignalosa', 'Frank Shattuck', 'Tamara Torres', 'Buster Whaley'], 'category': ['剧情', '音乐'], 'district': ['United States of America_美国'], 'language': ['英语'], 'showtime': 2014.0, 'length': 104.0, 'othername': ['像星期日,像下雨']}
{'id': 25767747, 'title': '故事的故事', 'url': 'http://movie.douban.com/subject/25767747/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2264871852.jpg', 'rate': 7.4, 'director': ['马提欧·加洛尼'], 'composer': ['Giambattista Basile', '马提欧·加洛尼', 'Edoardo Albinati', 'Ugo Chiti', 'Massimo Gaudioso'], 'actor': ['萨尔玛·海耶克', '文森特·卡索', '约翰·C·赖利', '托比·琼斯', '雪莉·亨德森', '斯塔西·马汀', '阿尔芭·洛尔瓦彻', '卡特里内尔·马龙', 'Hayley Carmichael', '碧碧·凯芙', 'Christian Lees', 'Jonah Lees', 'Guillaume Delaunay', 'Kathryn Hunter', 'Jessie Cave'], 'category': ['历史', '奇幻'], 'district': ['Italy_意大利', 'France_法国', 'United Kingdom_英国'], 'language': ['英语', '意大利语'], 'showtime': 2015.0, 'length': 125.0, 'othername': ['异色童话集(台)', '故事中的故事', 'The Tale of Tales']}
{'id': 25823840, 'title': '奸臣', 'url': 'http://movie.douban.com/subject/25823840/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2235239810.jpg', 'rate': 6.3, 'director': ['闵奎东'], 'composer': ['闵奎东'], 'actor': ['朱智勋', '金康宇', '林智妍', '千浩振', '李宥英'], 'category': ['剧情', '情色', '古装'], 'district': ['South Korea_韩国'], 'language': ['韩语'], 'showtime': 2015.0, 'length': 133.0, 'othername': ['The Treacherous']}
{'id': 10533913, 'title': '头脑特工队', 'url': 'http://movie.douban.com/subject/10533913/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p2266293606.jpg', 'rate': 9.0, 'director': ['彼特·道格特 ', ' 罗纳尔多·德尔·卡门'], 'composer': ['彼特·道格特', '罗纳尔多·德尔·卡门', '梅格·勒福夫', '乔什·库雷', '迈克尔·阿恩特', '西蒙·里奇', '鲍勃·彼德森', '比尔·哈德尔', '艾米·波勒'], 'actor': ['艾米·波勒', '菲利丝·史密斯', '理查德·坎德', '比尔·哈德尔', '刘易斯·布莱克', '敏迪·卡灵', '凯特林·迪亚斯', '戴安·琳恩', '凯尔·麦克拉克伦', '波拉·庞德斯通', '鲍比·莫伊尼汉', '保拉·佩尔', '大卫·戈尔兹', '弗兰克·奥兹', '乔什·库雷', '弗利', '约翰·拉岑贝格', '卡洛斯·阿拉斯拉奇', '皮特·萨加尔', '拉什达·琼斯', '罗里·艾伦', '约翰·齐甘', '雪莉·琳恩', '拉瑞恩·纽曼', '帕丽斯·冯·戴克'], 'category': ['喜剧', '动画', '冒险'], 'district': ['United States of America_美国'], 'language': ['英语'], 'showtime': 2015.0, 'length': 94.0, 'othername': ['玩转脑朋友(港)', '脑筋急转弯(台)', '头脑大作战', '大脑环游记', '脑中小小人', '大脑内外', '由内而外', '头脑总动员']}
{'id': 25814707, 'title': '小森林 冬春篇', 'url': 'http://movie.douban.com/subject/25814707/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p2215147728.jpg', 'rate': 8.9, 'director': ['森淳一'], 'composer': ['森淳一'], 'actor': ['桥本爱', '三浦贵大', '松冈茉优', '温水洋一', '桐岛加恋'], 'category': ['剧情'], 'district': ['Japan_日本'], 'language': ['日语'], 'showtime': 2015.0, 'length': 120.0, 'othername': ['Winter & Spring']}
{'id': 10773239, 'title': '小男孩', 'url': 'http://movie.douban.com/subject/10773239/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p2230105606.jpg', 'rate': 8.2, 'director': ['阿加多·蒙特沃德'], 'composer': ['阿加多·蒙特沃德', 'Pepe Portillo'], 'actor': ['雅各布·萨尔瓦提', '凯文·詹姆斯', '迈克尔·拉帕波特', '大卫·亨瑞', '艾米丽·沃森', '埃杜瓦多·维拉斯蒂吉', '泰德·拉文', '田川洋行', '汤姆·威尔金森', '本·卓别林', '阿丽·兰德里', '亚布拉哈姆·本鲁比', '托比·胡斯', '凯莉·格蕾森', 'Candice Azzara'], 'category': ['剧情', '喜剧', '战争'], 'district': ['Mexico_墨西哥', 'United States of America_美国'], 'language': ['英语'], 'showtime': 2015.0, 'length': 106.0, 'othername': None}
{'id': 25870236, 'title': '可爱的你', 'url': 'http://movie.douban.com/subject/25870236/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p2232074658.jpg', 'rate': 7.8, 'director': ['关信辉'], 'composer': ['关信辉', '张佩琼'], 'actor': ['杨千嬅', '古天乐', '吴耀汉', '吴浣仪', '姜皓文', '刘玉翠', '狄哲龙', '冯淬帆', '马浴柯', '火火', '黄文慧'], 'category': ['剧情'], 'district': ['China_香港', 'China_中国大陆'], 'language': ['汉语普通话', '粤语'], 'showtime': 2015.0, 'length': 113.0, 'othername': ['五个小孩的校长', '5个小孩的校长', 'Little Big Master']}
{'id': 26147706, 'title': '花与爱丽丝杀人事件', 'url': 'http://movie.douban.com/subject/26147706/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2222398443.jpg', 'rate': 8.0, 'director': ['岩井俊二'], 'composer': ['岩井俊二'], 'actor': ['苍井优', '铃木杏', '胜地凉', '黑木华', '木村多江', '平泉成', '相田翔子', '铃木兰兰', '郭智博', '木村绿子'], 'category': ['喜剧', '动画'], 'district': ['Japan_日本'], 'language': ['日语'], 'showtime': 2015.0, 'length': 100.0, 'othername': ['Hana to Alice Satsujin Jiken', 'The Case of Hana & Alice']}
{'id': 25761178, 'title': '百元之恋', 'url': 'http://movie.douban.com/subject/25761178/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p2205471169.jpg', 'rate': 8.3, 'director': ['武正晴'], 'composer': ['足立紳'], 'actor': ['安藤樱', '新井浩文', '稲川実代子', '早織', '宇野祥平', '坂田聡', '沖田裕樹', '吉村界人', '松浦慎一郎', '伊藤洋三郎', '重松収', '根岸季衣'], 'category': ['剧情', '喜剧', '运动'], 'district': ['Japan_日本'], 'language': ['日语'], 'showtime': 2014.0, 'length': 115.0, 'othername': ['百圆之恋', '一百日元的爱情', "100 Yen's Love"]}
{'id': 26219652, 'title': '少年班', 'url': 'http://movie.douban.com/subject/26219652/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2247339285.jpg', 'rate': 5.7, 'director': ['肖洋'], 'composer': ['张冀', '肖洋'], 'actor': ['孙红雷', '周冬雨', '董子健', '王栎鑫', '柳希龙', '李佳奇', '夏天', '赵立新', '王森'], 'category': ['剧情', '喜剧'], 'district': ['China_中国大陆'], 'language': ['汉语普通话'], 'showtime': 2015.0, 'length': 106.0, 'othername': ['The Ark of Mr. Chow']}
{'id': 25786077, 'title': '末日崩塌', 'url': 'http://movie.douban.com/subject/25786077/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2247341513.jpg', 'rate': 7.1, 'director': ['布拉德·佩顿'], 'composer': ['卡尔顿·库斯', '安德烈·法布里齐奥', '杰里米·帕斯莫尔'], 'actor': ['道恩·强森', '亚历珊德拉·达达里奥', '卡拉·古奇诺', '雨果·约翰斯通-伯特', '雅奇·潘嘉比', '科尔顿·海恩斯', '艾恩·格拉法德', '保罗·吉亚玛提', '凯莉·米洛', '李威尹', '瓦内萨·罗斯', '马特·杰拉德', '阿特·帕金森', '罗宾·阿特金·唐斯', '艾伦·D·柏温', '亚历克·乌特戈夫', '摩根·格莉芬', '杰米斯·巴特勒', '艾伦·波普尔顿'], 'category': ['动作', '冒险', '灾难'], 'district': ['United States of America_美国', 'Australia_澳大利亚'], 'language': ['英语'], 'showtime': 2015.0, 'length': 114.0, 'othername': ['加州大地震(台)', '圣安地列斯']}
{'id': 25958787, 'title': '深夜食堂 电影版', 'url': 'http://movie.douban.com/subject/25958787/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2205014862.jpg', 'rate': 7.8, 'director': ['松冈锭司'], 'composer': ['真边克彦', '小嶋健作', '松冈锭司', '安倍夜郎'], 'actor': ['小林薰', '绫田俊树', '不破万作', '松重丰', '安藤玉惠', '山中崇', '宇野祥平', '光石研', '小田切让', '高冈早纪', '柄本时生', '多部未华子', '余贵美子', '筒井道隆', '菊池亚希子', '田中裕子', '平田薫'], 'category': ['剧情'], 'district': ['Japan_日本'], 'language': ['日语'], 'showtime': 2015.0, 'length': 119.0, 'othername': ['Midnight Diner']}
{'id': 3608742, 'title': '冲出康普顿', 'url': 'http://movie.douban.com/subject/3608742/', 'cover': 'http://img3.douban.com/view/photo/photo/public/p2249238790.jpg', 'rate': 7.6, 'director': ['F·加里·格雷'], 'composer': ['乔纳森·赫尔曼', 'S·雷·利萨维治', '艾伦·温库', '安德丽亚·贝尔洛夫'], 'actor': ['科里·霍金斯', '杰森·米切尔', '小奥谢拉·杰克逊', '阿尔迪斯·霍吉', '保罗·吉亚玛提', '凯斯·斯坦菲尔德', '小尼尔·布朗', '小马龙·耶茨', '马修·博兰', 'R·马科斯·泰勒', '卡拉·帕特森', '亚历山德拉·希普', '科瑞·雷诺兹'], 'category': ['剧情', '音乐', '传记'], 'district': ['United States of America_美国'], 'language': ['英语'], 'showtime': 2015.0, 'length': 147.0, 'othername': ['再别康城']}
{'id': 11541282, 'title': '魔力麦克2', 'url': 'http://movie.douban.com/subject/11541282/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2251269074.jpg', 'rate': 5.9, 'director': ['格里高利·雅各布'], 'composer': ['雷德·卡罗林', '查宁·塔图姆'], 'actor': ['查宁·塔图姆', '马特·波莫', '乔·曼根尼罗', '安布尔·赫德', '贾达·萍克·史密斯', '伊丽莎白·班克斯', '安迪·麦克道威尔', '加布里埃尔·伊格莱西亚斯', '迈克尔·斯特拉罕', '克丽丝特尔·亨特', '简·麦克尼尔', '唐纳德·格洛弗', '凯文·纳什', '亚当·罗德里格兹', '史蒂芬·布斯', '罗达·格里菲丝', '金柏莉·德拉蒙德', '瑞克·佛莱尔', '胡安·彼德拉伊塔'], 'category': ['剧情', '喜剧', '音乐'], 'district': ['United States of America_美国'], 'language': ['英语'], 'showtime': 2015.0, 'length': 115.0, 'othername': ['巨揪舞壮士(港)', '舞力麦克:尺度极限XXL(台)', '魔力麦克XXL', 'Magic Mike 2']}
{'id': 25837175, 'title': '谜城', 'url': 'http://movie.douban.com/subject/25837175/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2257443441.jpg', 'rate': 5.5, 'director': ['林岭东'], 'composer': ['林岭东'], 'actor': ['古天乐', '余文乐', '佟丽娅', '张孝全', '谢天华', '元秋', '李璨琛', '伍允龙', '姜皓文', '林子善', '任达华', '高捷', '马浴柯', '谭炳文'], 'category': ['动作', '惊悚', '犯罪'], 'district': ['China_中国大陆', 'China_香港'], 'language': ['汉语普通话', '粤语', '闽南语'], 'showtime': 2015.0, 'length': 105.0, 'othername': ['迷城', '暴走迷城', 'Wild City']}
{'id': 10463953, 'title': '模仿游戏', 'url': 'http://movie.douban.com/subject/10463953/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2255040492.jpg', 'rate': 8.5, 'director': ['莫滕·泰杜姆'], 'composer': ['格拉汉姆·摩尔', '安德鲁·霍奇斯'], 'actor': ['本尼迪克特·康伯巴奇', '凯拉·奈特莉', '马修·古迪', '罗里·金奈尔', '艾伦·里奇', '马修·比尔德', '查尔斯·丹斯', '马克·斯特朗', '詹姆斯·诺斯科特', '汤姆·古德曼-希尔', '史蒂芬·威丁顿', '伊兰·古德曼', '杰克·塔尔登', '埃里克斯·劳瑟', '杰克·巴农'], 'category': ['剧情', '同性', '传记', '战争'], 'district': ['United Kingdom_英国', 'United States of America_美国'], 'language': ['英语', '德语'], 'showtime': 2015.0, 'length': 114.0, 'othername': ['模拟游戏', '解码游戏']}
{'id': 24397586, 'title': '小羊肖恩', 'url': 'http://movie.douban.com/subject/24397586/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2249261202.jpg', 'rate': 8.5, 'director': ['马克·伯顿 ', ' 理查德·斯塔扎克'], 'composer': ['马克·伯顿', '理查德·斯塔扎克'], 'actor': ['贾斯汀·弗莱彻', '约翰·斯帕克斯', '欧米德·吉亚李利', '理查德·韦伯', '凯特·哈伯', '蒂姆·汉兹', '安迪·尼曼', '西蒙·格林诺', '艾玛·泰特', '杰克·保尔森', '西恩·康诺利', '亨利·伯顿', '迪曼特·维瓦斯', '苏菲·劳顿', '妮娅·梅迪·詹姆斯'], 'category': ['喜剧', '动画', '冒险'], 'district': ['United Kingdom_英国', 'France_法国'], 'language': ['无对白'], 'showtime': 2015.0, 'length': 85.0, 'othername': ['小羊肖恩大电影', '超级无敌羊咩咩大电影之咩最劲(港)', '笑笑羊大电影(台)', '超级无敌羊咩咩 电影版', '笑笑羊 电影版']}
{'id': 6866928, 'title': '进击的巨人真人版:前篇', 'url': 'http://movie.douban.com/subject/6866928/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p2239093805.jpg', 'rate': 5.1, 'director': ['樋口真嗣'], 'composer': ['渡边雄介', '町山智浩', '谏山创'], 'actor': ['三浦春马', '长谷川博己', '水原希子', '本乡奏多', '三浦贵大', '樱庭奈奈美', '松尾谕', '石原里美', '皮埃尔泷', '国村隼', '渡部秀', '水崎绫女', '武田梨奈'], 'category': ['动作', '科幻', '惊悚'], 'district': ['Japan_日本'], 'language': ['日语'], 'showtime': 2015.0, 'length': 98.0, 'othername': ['The Movie']}
...
{'id': 1422954, 'title': '吮拇指的人', 'url': 'http://movie.douban.com/subject/1422954/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p1563658637.jpg', 'rate': 7.2, 'director': ['迈克·米尔斯'], 'composer': ['迈克·米尔斯', 'Walter Kirn'], 'actor': ['Ted Beckman', '本杰明·布拉特', '文森特·多诺费奥', 'Arvin V. Entena', 'Tyler Gannon', '凯丽·加纳', 'Allen Go', 'Dakota Goldhor', 'Walter Kirn', 'Kit Koenig', 'Sarah Lucht', 'Eric Normington', '南希·奥黛尔', 'Lanette Prazeau', '卢·泰勒·普奇'], 'category': ['剧情', '喜剧'], 'district': ['United States of America_美国'], 'language': ['英语'], 'showtime': 2005.0, 'length': 96.0, 'othername': ['吸拇指的人', '吮吸拇指的人']}
{'id': 2215609, 'title': '歌舞青春3:毕业季', 'url': 'http://movie.douban.com/subject/2215609/', 'cover': 'http://img3.douban.com/lpic/s3055372.jpg', 'rate': 7.3, 'director': ['肯尼·奥特加'], 'composer': ['Peter Barsocchini'], 'actor': ['扎克·埃夫隆', '瓦妮莎·哈金斯', '阿什丽·提斯代尔', '科宾·布鲁', '巴特·约翰逊', 'Leslie Wing', '艾莉森·瑞德'], 'category': ['剧情', '喜剧', '家庭'], 'district': ['United States of America_美国'], 'language': ['英语'], 'showtime': 2008.0, 'length': 112.0, 'othername': ['歌舞青春3:毕业年', '歌舞青春3:毕业嘉年华']}
{'id': 1292718, 'title': '大河恋', 'url': 'http://movie.douban.com/subject/1292718/', 'cover': 'http://img4.douban.com/view/movie_poster_cover/lpst/public/p949393266.jpg', 'rate': 8.4, 'director': ['罗伯特·雷德福'], 'composer': ['理查德·弗雷登伯格'], 'actor': ['布拉德·皮特', '克莱格·谢佛', '汤姆·斯凯里特', '布兰达·布莱斯', '伊迪·迈克莱尔', '约瑟夫·高登-莱维特', '艾米丽·劳伊德', '斯蒂芬·谢伦', '塞尔玛·布莱尔'], 'category': ['剧情', '家庭'], 'district': ['United States of America_美国'], 'language': ['英语'], 'showtime': 1992.0, 'length': 123.0, 'othername': ['川流岁月(港)', '大河之恋', '一条贯穿的大河', '一条奔腾而过的河流']}
{'id': 1296835, 'title': '青春年少', 'url': 'http://movie.douban.com/subject/1296835/', 'cover': 'http://img3.douban.com/view/movie_poster_cover/lpst/public/p456194105.jpg', 'rate': 7.9, 'director': ['韦斯·安德森'], 'composer': ['韦斯·安德森', '欧文·威尔逊'], 'actor': ['詹森·舒瓦兹曼', '比尔·默瑞', '奥莉维亚·威廉姆斯', '卢克·威尔逊', '康妮·尼尔森'], 'category': ['剧情', '喜剧'], 'district': ['United States of America_美国'], 'language': ['英语', '拉丁语'], 'showtime': 1999.0, 'length': 93.0, 'othername': ['都是爱情惹的祸', '撬墙角', '冲动少年']}
节点和关系导入
from py2neo import Graph, Node, Relationship
# 连接neo4j数据库,输入地址、用户名、密码
graph = Graph("http://localhost:7474", name="neo4j", password='xxx')

添加四类实体:电影film,导演director,编剧composer和演员actor
以及建立电影film与其他三类实体entity之间的关系。

import json 
graph.delete_all() #清除neo4j中原有的结点等所有信息with open('douban.json','r',encoding='utf-8') as f:res = json.load(f)for r in res:node_title = Node('film',name=r['title'],id=r['id'],rate=r['rate'],category=','.join(r['category']) if r['category'] != None else None,district=','.join(r['district']) if r['district'] != None else None,showtime=r['showtime'],length=r['length'],language=','.join(r['language']) if r['language'] != None else None,othername=','.join(r['othername']) if r['othername'] != None else None)graph.create(node_title)if r['director'] != None: for di in r['director']:node_director = Node('director',name=di)rel = Relationship(node_title,'director',node_director)graph.create(node_director)graph.create(rel)if r['composer'] != None:for co in r['composer']:node_composer = Node('composer',name=co)rel = Relationship(node_title,'composer',node_composer)graph.create(node_composer)graph.create(rel)if r['actor'] != None:for ac in r['actor']:node_actor = Node('actor',name=ac)rel = Relationship(node_title,'actor',node_actor)graph.create(node_composer)graph.create(rel)
使用Subgraph批量导入节点和关系

每次导入节点和关系非常耗时,py2neo提供了子图的方式可以批量导入节点和关系。

import json 
from py2neo import Subgraph
graph.delete_all() #清除neo4j中原有的结点等所有信息nodes = []
relationships = []with open('douban.json','r',encoding='utf-8') as f:res = json.load(f)for r in res:node_title = Node('film',name=r['title'],id=r['id'],rate=r['rate'],category=','.join(r['category']) if r['category'] != None else None,district=','.join(r['district']) if r['district'] != None else None,showtime=r['showtime'],length=r['length'],language=','.join(r['language']) if r['language'] != None else None,othername=','.join(r['othername']) if r['othername'] != None else None)nodes.append(node_title)if r['director'] != None: for di in r['director']:node_director = Node('director',name=di)rel = Relationship(node_title,'director',node_director)nodes.append(node_director)relationships.append(rel)if r['composer'] != None:for co in r['composer']:node_composer = Node('composer',name=co)rel = Relationship(node_title,'composer',node_composer)nodes.append(node_composer)relationships.append(rel)if r['actor'] != None:for ac in r['actor']:node_actor = Node('actor',name=ac)rel = Relationship(node_title,'actor',node_actor)nodes.append(node_actor)relationships.append(rel)
subgraph = Subgraph(nodes,relationships)
tx = graph.begin() 
tx.create(subgraph)graph.commit(tx)
多标签实体和实体去重

有些人既是导演又是编剧或者演员,重复生成节点会导致重复,所以需要对实体进行去重,然后对唯一实体添加他的多个标签。

import json 
from py2neo import NodeMatcher
graph.delete_all() #清除neo4j中原有的结点等所有信息entity = []
with open('douban.json','r',encoding='utf-8') as f:res = json.load(f)for r in res:node_title = Node('film',name=r['title'],id=r['id'],rate=r['rate'],category=','.join(r['category']) if r['category'] != None else None,district=','.join(r['district']) if r['district'] != None else None,showtime=r['showtime'],length=r['length'],language=','.join(r['language']) if r['language'] != None else None,othername=','.join(r['othername']) if r['othername'] != None else None)#entity.append(node_title)graph.create(node_title)if r['director'] != None:for di in r['director']:if di not in entity:entity.append(di)node_director = Node('director',name=di)rel = Relationship(node_title,'导演',node_director)graph.create(node_director)else:node_matcher = NodeMatcher(graph)node = node_matcher.match('director').where(name=di).first()if node == None:node = node_matcher.match('composer').where(name=di).first()if node == None:node = node_matcher.match('actor').where(name=di).first()node.add_label('director')else:node.add_label('director')rel = Relationship(node_title,'导演',node)graph.create(rel)if r['composer'] != None:for co in r['composer']:if co not in entity:entity.append(co)node_composer = Node('composer',name=co)rel = Relationship(node_title,'编剧',node_composer)graph.create(node_composer)else:node_matcher = NodeMatcher(graph)node = node_matcher.match('composer').where(name=co).first()if node == None:node = node_matcher.match('director').where(name=co).first()if node == None:node = node_matcher.match('actor').where(name=co).first()node.add_label('composer')else:node.add_label('director')rel = Relationship(node_title,'编剧',node)graph.create(rel)if r['actor'] != None:for ac in r['actor']:if ac not in entity:entity.append(ac)node_actor = Node('actor',name=ac)rel = Relationship(node_title,'演员',node_actor)graph.create(node_actor)else:node_matcher = NodeMatcher(graph)node = node_matcher.match('actor').where(name=ac).first()if node == None:node = node_matcher.match('director').where(name=ac).first()if node == None:node = node_matcher.match('composer').where(name=ac).first()node.add_label('actor')else:node.add_label('actor')rel = Relationship(node_title,'演员',node)graph.create(rel)
  • 最终知识图谱
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/266677.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器权限:Error: EACCES: permission denied, open‘/Cardiac/uniquC.csv

背景: 我想在服务器上传一个文件uniquC.csv,但是服务器说我没有权限 解决方案: 1. 查看目前是否存在对文件夹的权限 ls -ld /Cardiac/ # your fold path 此时,我发现 这也意味着root也没有赋予写的权限。 2. 拿到root权限 …

C语言可以干些什么?C语言主要涉及哪些IT领域?

C语言可以干些什么?C语言主要涉及哪些IT领域? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家…

肿瘤相关巨噬细胞TAM综述及研究学习②

​​​​​​​肿瘤浸润性巨噬细胞的复杂作用(综述浏览)-CSDN博客 TAM 支持癌细胞的生长和转移,并对 TME 的适应性免疫细胞产生免疫抑制作用。(上一篇学习文献) 目录 综述① TAM在肿瘤中的作用 M1与 M2 TAM作用 …

IIS发布PHP网站字体404解决办法

最近在使用 IIS 发布 PHP 网站时,我遇到了一个前端问题,即字体库文件 404 错误。这个问题的根本原因是 IIS 未能正确识别字体文件类型,导致浏览器在加载页面时无法正确获取所需字体资源,进而触发了404错误。这样的问题会导致网站页…

力扣138.随机链表的复制

给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 n…

【笔记】:更方便的将一个List中的数据传入另一个List中,避免多重循环

这里是 simpleInfoList 集合&#xff0c;记为集合A&#xff08;传值对象&#xff09; List<CourseSimpleInfoDTO> simpleInfoList courseClient.getSimpleInfoList(courseIds);if(simpleInfoListnull){throw new BizIllegalException("当前课程不存在!");}这…

【嵌入式——QT】日期与定时器

日期 QTime&#xff1a;时间数据类型&#xff0c;仅表示时间&#xff0c;如 16:16:16&#xff1b;QDate&#xff1a;日期数据类型&#xff0c;仅表示日期&#xff0c;如2024-1-22&#xff1b;QDateTime&#xff1a;日期时间数据类型&#xff0c;表示日期和时间&#xff0c;如2…

shell自定义日志输出函数log

Background 在编写比较复杂的脚本时&#xff0c;需要输出相关日志信息&#xff0c;方便知悉脚本的执行情况以及问题的排查。 源码 log.sh # 自定义日志函数 function log(){if [[ $1 "i" || $1 "info" ]]; thenecho -ne "\033[1;34mINFO: \033[0m&…

H3C防火墙安全授权导入

一、防火墙授权概述 前面我们已经了解了一些防火墙的基本概念&#xff0c;有讲过防火墙除了一些基本功能&#xff0c;还有一些高级安全防护&#xff0c;但是这些功能需要另外独立授权&#xff0c;不影响基本使用。这里以H3C防火墙为例进行大概了解下。 正常情况下&#xff0c;防…

react路由基础

1.目录 A. 能够说出React路由的作用 B. 能够掌握react-router-dom的基本使用 C. 能够使用编程式导航跳转路由 D. 能够知道React路由的匹配模式 2.目录 A. React路由介绍 B. 路由的基本使用 C. 路由的执行过程 D. 编程式导航 E. 默认路由 F. 匹配模式 3.react路由介绍 现代…

在实训云平台上配置云主机

文章目录 零、学习目标一、实训云升级二、实训云登录&#xff08;一&#xff09;登录实训云&#xff08;二&#xff09;切换界面语言&#xff08;三&#xff09;规划云主机实例 三、创建网络三、创建路由器2024-2-29更新到此四、添加接口五、创建端口六、添加安全组规则七、创建…

[设计模式Java实现附plantuml源码~行为型]算法的封装与切换——策略模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

中国社会科学院大学与美国杜兰大学金融管理硕士项目——跨越国际的智慧碰撞

在当今经济高度全球化的时代背景下&#xff0c;跨国合作和交流变得日益重要。为了满足全球化时代对金融行业高素质人才的需求&#xff0c;中国社会科学院与美杜兰大学联合推出了金融管理硕士项目&#xff0c;旨为学生们提供一个跨越国际的智慧碰撞的学习机会。 今年是你工作的第…

vue3使用echarts绘制地图

vue3使用echarts绘制地图 安装echarts npm install echarts下载地图的json数据【我这里是把json数据单独粘出来然后新建了一个文件china.json】 下载中国及各个省份的地图数据引入 import chinaJson from ./china.json绘制地图 <template><div ref"myChart&q…

租房招聘平台新篇章:Java+SpringBoot技术革新

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

代码随想录算法刷题训练营day28:LeetCode(93)复原IP地址 、LeetCode(78)子集 、LeetCode(90)子集II

代码随想录算法刷题训练营day28&#xff1a;LeetCode(93)复原IP地址 、LeetCode(78)子集 、LeetCode(90)子集II LeetCode(93)复原IP地址 题目 代码 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List;class Solu…

MSSQL渗透测试

目录 mssql数据库连接提权至服务器权限 拿到目标的IP地址&#xff0c;我们先对IP地址进行信息收集&#xff0c;收集信息资产&#xff0c;同时使用nmap对IP地址进行扫描 nmap -sC -sV IP从扫描的结果中&#xff0c;我们能知道目标服务器是windows操作系统&#xff0c;使用的是m…

金仕达与 DolphinDB 建立深度合作,共筑 FICC 科技创新新篇章

从“关起门做交易”到“打开门做服务”&#xff0c;国内 FICC 业务正经历从自营到市场化服务的转变&#xff0c;借助数据分析、算法交易等技术的快速发展&#xff0c;交易团队能够更加主动地发现市场需求&#xff0c;为不同客群提供更好的做市业务&#xff0c;FICC 交易电子化已…

奇安信发布《2024人工智能安全报告》,AI深度伪造欺诈激增30倍

2024年2月29日&#xff0c;奇安信集团对外发布《2024人工智能安全报告》&#xff08;以下简称《报告》&#xff09;。《报告》认为&#xff0c;人工智能技术的恶意使用将快速增长&#xff0c;在政治安全、网络安全、物理安全和军事安全等方面构成严重威胁。 《报告》揭示了基于…

电子科技大学课程《计算机网络系统》(持续更新)

前言 本校的课程课时有所缩减&#xff0c;因此可能出现与你学习的课程有所减少的情况&#xff0c;因此对其他学校的同学更多的作为参考作用。本文章适合学生的期中期末考试&#xff0c;以及想要考研电子科技大学的同学&#xff0c;电子科技大学同学请先看附言。 第一章 计算…