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.pswp.cn/news/711273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711273.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711273.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【golang】25、圖片操作

用 “github.com/fogleman/gg” 可以畫線, 框 用 “github.com/disintegration/imaging” 可以變換顏色 一、渲染 1.1 框和字 import "github.com/fogleman/gg"func DrawRectangles(inPath string, cRects []ColorTextRect, fnImgNameChange FnImgNameChange) (st…

Python爬蟲——Urllib庫-3

目錄 ajax的get請求 獲取豆瓣電影第一頁的數據并保存到本地 獲取豆瓣電影前十頁的數據 ajax的post請求 總結 ajax的get請求 獲取豆瓣電影第一頁的數據并保存到本地 首先可以在瀏覽器找到發送數據的接口 那么我們的url就可以在header中找到了 再加上UA這個header 進行請…

Facebook的元宇宙實踐:數字化社交的新前景

近年來,元宇宙(Metaverse)這一概念備受矚目,被認為是數字化社交的未來趨勢之一。而在眾多科技巨頭中,Facebook(現更名為Meta)一直處于元宇宙發展的前沿。在本文中,我們將深入探討Fac…

萬字帶你走過數據庫的這激蕩的三年

本文收集了卡內基梅隆大學計算機科學系數據庫學副教授 Andy Pavlo 從 2021 到 2023 連續三年對數據庫領域的回顧,希望通過連續三年的回顧讓你對數據庫領域的技術發展有所了解。 關于 Andy Pavlo:卡內基梅隆大學計算機科學系數據庫學副教授,數…

vuepress項目側邊欄菜單配置使用

第一種菜單配置,自定義菜單名稱 {text: 菜單名稱,// 是否折疊collapsible: true,children: [{text: "自定義md菜單名稱",sidebarDepth: 2,link: "/xxx/aa.md",children: [],}],},第二種菜單配置 標題自動生成菜單,使用需要搭配sideb…

c語言求矩陣的局部極大值

給定M行N列的整數矩陣A,如果A的非邊界元素A[i][j]大于相鄰的上下左右4個元素,那么就稱元素A[i][j]是矩陣的局部極大值。本題要求給定矩陣的全部局部極大值及其所在的位置。 輸入格式: 輸入在第一行中給出矩陣A的行數M和列數N(3≤…

C語言創建結構體時 什么時候需要C++引用 什么情況下下不需要引用

在C語言中,結構體通常通過傳遞指針來實現對結構體的修改。當在函數中需要修改結構體的內容,并且希望這些修改在調用函數后仍然保持,可以考慮使用指針。引用是C中的一種特殊機制,用于更方便地傳遞參數,但在純粹的C語言中…

《springcloud alibaba》 三 sentinel流量控制

目錄 sentinel準備流控規則 qpspom.xmlapllication.yml啟動類controller查看結果流控提示不太友好 流控規則 線程數全局異常處理pom.xmlapplication.yml啟動類實體類controller類異常類測試 關聯流控模式關聯jmeter 鏈路servicecontroller代碼調整 流控效果Warm UP 熔斷降級規則…

[Flutter]用16進制顏色字符串初始化Color

使用: // 使用Color的靜態方法 fromARGB() 來創建顏色對象。透明度為 255(完全不透明) Color a Color.fromARGB(255, 42, 35, 72); // 使用八位的十六進制數來表示顏色,其中前兩位表示透明度,后六位表示紅色、綠色和…

本科畢業設計:計及并網依賴性的分布式能源系統優化研究。(C語言實現)(內包含NSGA II優化算法)(二)

目錄 前言 1、sofc函數 2、光伏板函數 3、集熱場函數 4、sofc電跟隨策略函數 5、二分法找sofc運行點函數 6、目標函數:成本 7、目標函數:二氧化碳排放量 8、目標函數:并網依賴性 前言 本篇文章介紹的是我的畢業設計,我將C…

JavaScript DOM操作筆記記錄回憶總結

一、什么是DOM? 1、通過 HTML DOM,可訪問 JavaScript HTML 文檔的所有元素。 2、當網頁被加載時,瀏覽器會創建頁面的文檔對象模型(Document Object Model) 二、操作DOM 1、在操作DOM之前,我們需要先獲取到…

DOM 創建節點、添加節點和刪除節點

創建元素節點 document.createElement(‘標簽名’) 創建文本節點document.createTextNode ( 內容 ) 根據傳入的標簽名創建出一個空的元素對象創建出來的默認不顯示,要成為別人的子元素才能顯示,所以要結合appendChild使用 添加節點(后面&am…

團體程序設計天梯賽 L2-001 緊急救援(迪杰斯特拉算法)

L2-001 緊急救援 分數 25 作為一個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連接城市的快速道路。每個城市的救援隊數量和每一條連接兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助電話給你的時候&…

python筆記_運算符

A,算術運算符 運算符描述舉例結果加011-減2-11*乘1*11/除1/11%取模(取余)6%51(余1)//除,且向下取整 3//2 -1//2 1 -1 **返回x的y次冪2**01 取模運算公式 a % b a - a // b * b print(-10%…

【復現】藍凌OA SQL注入漏洞_61

目錄 一.概述 二 .漏洞影響 三.漏洞復現 1. 漏洞一: 四.修復建議: 五. 搜索語法: 六.免責聲明 一.概述 藍凌智能OA是由深圳市藍凌軟件股份有限公司開發,是一款針對中小企業的移動化智能辦公產品,融合了釘釘數字…

C習題002:澡堂洗澡【僅供參考】

問題 輸入樣例 在這里給出一組輸入。例如&#xff1a; 2 5 1 3 3 2 3 3 輸出樣例 在這里給出相應的輸出。例如&#xff1a; No代碼長度限制 16 KB 時間限制 400 ms 內存限制 64 MB 棧限制 8192 KB 代碼 #include<stdio.h> int main() {int N,W,s,t,p;int arr_s[…

遞歸算法題練習(數的計算、帶備忘錄的遞歸、計算函數值)

遞歸的介紹 概念:遞歸是指函數直接或間接調用自身的過程。 解釋遞歸的兩個關鍵要素: 基本情況(遞歸終止條件):遞歸函數中的一個條件&#xff0c;當滿足該條件時&#xff0c;遞歸終止&#xff0c;避免無限遞歸。可以理解為直接解決極小規模問題的方法。遞歸表達式(遞歸調用):遞…

k8s 中 namspace deployment pod services 之間的關系

在Kubernetes&#xff08;K8s&#xff09;中&#xff0c;Namespace&#xff08;命名空間&#xff09;是一種用于將集群內部資源劃分為不同邏輯組的機制。Deployment、Pod和Service是Kubernetes中常見的資源&#xff0c;它們之間的關系如下&#xff1a; Namespace&#xff08;命…

網絡安全攻防演練:企業藍隊建設指南

第一章 概述 背景 網絡實戰攻防演習是當前國家、重要機關、企業組織用來檢驗網絡安全防御能力的重要手段之一,是對當下關鍵信息系統基礎設施網絡安全保護工作的重要組成部分。網絡攻防實戰演習通常是以實際運行的信息系統為攻擊目標,通過在一定規則限定下的實戰攻防對抗,最…

認識通訊協議——TCP/IP、UDP協議的區別,HTTP通訊協議的理解

目錄 引出認識通訊協議1、TCP/IP協議&#xff0c;UDP協議的區別2、HTTP通訊協議的講解 Redis沖沖沖——緩存三兄弟&#xff1a;緩存擊穿、穿透、雪崩緩存擊穿緩存穿透緩存雪崩 總結 引出 認識通訊協議——TCP/IP、UDP協議的區別&#xff0c;HTTP通訊協議的理解 認識通訊協議 …