本篇文章接《电影知识图谱问答(一)|爬取豆瓣电影与书籍详细信息》,学习如何利用爬取的数据,构建知识图谱所需的三元组。...主要内容包括如何从Json类型的数据,转换成RDF数据,并最终存储到Jena之中,然后利用SPARQL进行查询。 实践之前,请自主学习相关背景知识。...电影演员信息包括演员id、姓名、图片链接、性别、星座、出生日期、出生地、职业、更多中文名、更多外文名、家庭成员、简介,共89592条数据信息。这里所指的演员包括电影演员、编剧、导演。...书籍信息包括书籍id、图片链接、姓名、子标题、原作名称、作者、译者、出版社、出版年份、页数、价格、内容简介、目录简介、评分、评分人数,共64321条数据信息。...本体有点哲学的含义,在计算机领域,可以理解为一种模型,用于描述由一套对象类型(概念或者说类)属性以及关系类型所构成的世界。此处我们使用Protege进行本体建模。
电影演员信息包括演员id、姓名、图片链接、性别、星座、出生日期、出生地、职业、更多中文名、更多外文名、家庭成员、简介,共89592条数据信息。这里所指的演员包括电影演员、编剧、导演。...书籍信息包括书籍id、图片链接、姓名、子标题、原作名称、作者、译者、出版社、出版年份、页数、价格、内容简介、目录简介、评分、评分人数,共64321条数据信息。...然后请求演员URL,利用BeautifulSoup选取相应标签,便能拿到演员id、姓名、图片链接、性别、星座、出生日期、出生地、职业、更多中文名、更多外文名、家庭成员、简介信息。 ?...获取电影演员id,存到到redis已爬取队列之中,返回去重后的演员id list。 多线程爬取演员id list之中的电影信息。 start加20循环2-7步骤。...然后请求书籍URL页面,通过BeautifulSoup选取相应标签,便能够拿到书籍id、图片链接、姓名、子标题、原作名称、作者、译者、出版社、出版年份、页数、价格、内容简介、目录简介、评分、评分人数信息
基本统计数据如下: 演员数量:505 人 电影数量:4518 部 电影类型:19 类 人物与电影的关系:14451 电影与类型的关系:7898 演员的基本信息包括:姓名、英文名、出生日期、死亡日期、出生地...本实例数据获取方法:以周星驰为初始入口,获取其出演的所有电影;再获取这些电影的所有参演演员;最后获取所有参演演员所出演的全部电影。...2 号框表示该属性的逆属性是 "hasActor",即,有了推理机,尽管我们的 RDF 数据只保存了 A 出演了 B,我们在查询的时候也能得到 B 的演员有 A。...其常用的方式主要是RDF/XML,Turtle。另外,通常我们用小写开头的单词或词组来表示属性,大写开头的表示类。...点击下图红框中的 “Go!”,执行查询: 图片 读者可以自行尝试上篇文章中的例子: “周星驰出演了哪些电影?” 图片 “英雄这部电影有哪些演员参演?”
image.png 创建的电影的演员,导演,制片人。属性包括姓名和出身年份。...(StefanArndt)-[:PRODUCED]->(CloudAtlas) MATCH (cloudAtlas {title: "Cloud Atlas"}) RETURN cloudAtlas 查找演员...,限制数量为10,返回演员的姓名 MATCH (people:Person) RETURN people.name LIMIT 10 查询90年代上映的电影 MATCH (nineties:Movie)...(tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom,tomHanksMovies 查询和汤姆汉克斯合作过的演员姓名...image.png MATCH (bacon:Person {name:"Kevin Bacon"})-[*1..3]-(hollywood) RETURN DISTINCT hollywood 查询只是和汤姆汉克斯合作过的演员合作过电影的但是还没有和汤姆汉克斯合作过的演员名称
与依赖表和列的传统关系数据库不同,图形数据库使用无模式结构。这意味着没有预定义的表或列,可以以灵活、可扩展且高效的方式存储数据。...图形数据库可用于推荐引擎,以更有效地表示和处理数据。图数据库旨在存储和查询实体之间的关系,这是推荐引擎的一个基本方面。以下是如何在推荐引擎中使用图形数据库的示例: 假设我们要构建一个电影推荐引擎。...我们可以将电影和用户表示为图中的节点,并使用边来表示电影评级和用户偏好等关系。 每个电影节点都可以具有标题、流派、导演和演员等属性。每个用户节点都可以具有年龄、性别和位置等属性。...节点之间的边可以表示不同类型的关系。例如,“已观看”边可以将用户节点连接到电影节点,评级属性表示用户对电影的评级。 通过使用图数据库,我们可以轻松地查询图来为特定用户提出建议。...、流派、导演和演员等属性的电影节点,并使用包将其添加到图形数据库中py2neo。
3、使用explain的例子 需要使用三张表,分别为 actor 演员表,film 电影表,film_actor 电影-演员关联表。...(4)type列 (温馨提示:以下部分理论有可能解释完还是懵逼,没关系,继续往下看,有实践例子) 这一列表示关联类型或访问类型,即MySQL决定如何查找表中的行,查找数据记录的大概范围。...用于主键索引或唯一索引的所有列与常数比较时,表最多有一个匹配行,读取1次,速度比较快。system是const的特例,表里只有一条记录匹配时为system。...(index是从索引中读取的,而ALL是从硬盘中读取) 执行SQL语句:EXPLAIN SELECT * FROM film;(film表所有字段都加了索引) ALL: 即全表扫描,意味着MySQL需要从头到尾去查找所需要的行...(7)is null,is not null也无法使用索引 执行SQL语句: EXPLAIN SELECT * FROM employees WHERE name IS NULL (8)like以通配符开头
查找:检索单个电影和演员。 查询:在图中查找模式。 解答:回答一些关于图表的问题。 创建 首先我们创建一个新的Neo4j database。...打开Neo4j Desktop,创建一个新的project: 之后创建一个新的DataBase 记得设置浏览器设置以允许多语句: 在查询窗格中输入:引导电影图,然后单击右侧的“播放”按钮。...比如我们想要查找电影名称为Cloud Atlas的电影: LIMIT 接下来,我们想在图中找到10个人的名字。...接下来需要获得检索相关节点,也就是相当于直接查表,和SQL的表连接查询类似,问题可以为: 演员是在电影中表演的人。 导演是导演电影的人。 还存在哪些其他关系?...这里需要注意动作的执行者和动作的承受者电影演员是演出这个动作的执行者,所以是演员->出演->电影这个顺序,如果我们想要查询Cloud Atlas这部电影是由谁拍的时,电影<-演导<-导演这个顺序: MATCH
2、匹配值的范围查询(match a range of values) 对索引的值能够进行范围查找。...5、匹配列前缀(match a column prefix) 仅仅使用索引中的第一列,并且只包含索引第一列的开头一部分进行查找。...例如,现在需要查询出标题 title 是以 AFRICAN 开头的电影信息,从执行计划能够清楚看到,idxtitledesc_part 索引被利用上了: MySQL [sakila]> create index...1.以%开头的 like 查询不能利用 B-Tree 索引,执行计划中 key 的值为 null 表示没有使用索引 MySQL [sakila]> explain select * from actor...索引的结构,所以以%开头的插叙很自然就没法利用索引了。
模式匹配:MATCH(n:Person)-[:FRIEND]->(m:Person)RETURNn,mSPARQL:基于RDF标准的查询语言,常用于学术和语义网项目。...2.4知识图谱实践案例为了让你彻底掌握,我们通过代码实战来构建一个“电影-演员”微型图谱。...1.案例背景我们要构建一个简单的电影知识库,包含演员、电影、导演,并能查询“某位演员演过哪些电影”或“某部电影的合作演员”。...#3.知识查询与推理deffind_co_actors(tx,actor_name):#查询逻辑:找到“莱昂纳多”演过的电影,再找到这些电影里的其他演员query="""MATCH(p:Person{name...3.行业应用拆解:智能问答当你在搜索引擎搜“刘德华的老婆是谁”时,背后的流程是:意图识别:识别出“刘德华”是实体,“老婆”是关系。图谱查询:在图谱中查找的路径。
该包可用于生成以下类型的图表。目前,该库支持五种不同的图表——条形图、饼图、雷达图、散点图和折线图。...Cast演员: 在电影中扮演角色的演员姓名 Homepage主页: 指向电影主页的链接。 Director导演: 导演电影的导演姓名 Title片名: 电影名称。...Keywords关键字: 与电影相关的关键字或标签。 Overview概述: 对电影的简要描述。 Runtime运行时间: 以分钟为单位的电影运行时间。...chart = ctc.Pie() 设置我们需要width, height在参数中添加的图表的标题、宽度和高度。...data = df.groupby('release_year').count()['id'].reset_index().tail(16) 制作折线图以找出 20 年代以来电影的影响。
已经好久没有更新爬虫类的文章了,从入门到入狱的好技术怎能不好好学习呢。所以,今天我继续来卷了。本文将从实战的角度介绍一个完整的爬虫。这里以妇孺皆知的电影天堂网站为例进行说明。...最新电影的页面如图1所示: 这里以凡人英雄这个电影为例,该电影的详细详细信息,包括片名,导演,演员等信息都是我们需要爬取的内容。 2....电影的发布时间以及获取电影海报的获取跟电影标题类似,在此就不在赘述了。 获取电影片名&导演&主演等信息 通过调试可以得知电影片名&导演&主演等信息均是在标签下。...这里遍历获取到的所有数据,通过字符串匹配的方法获取每一行数据。 以译名为例,首先,匹配当前的字符串是否是以◎译 名 开头。如果是话的,则将◎译 名 替换掉,就得到我们想要的数据REBORN 了。...index,就是定义一个列表,列表中的第一个元素就是排名在第一的主演姓名。
鉴于大模型强大的任务处理能力,未来我们或将不再为每一个具体任务去 finetune 一个模型,而是使用同一个大模型,对不同任务设计其独有的 prompt,以解决不同的任务问题。...2012年,主演卢卫国执导的喜剧电影《就是闹着玩的》。2013年在北京举办相声专场。'..., '电影': '《流浪地球》是由郭帆执导,吴京特别出演、屈楚萧、赵今麦、李光洁、吴孟达等领衔主演的科幻冒险电影。...>>> Bot: {"姓名": ["岳云鹏"], "性别": ["男"], "出生日期": ["1985年4月15日"], "出生地点": ["河南省濮阳市南乐县"], "职业": ["相声演员", "...此外,加载模型大概需要 13G 左右的显存,如果您显存不够,可以参考 这里 进行模型量化加载以缩小模型成本。
比如说根据演员进行分组,并将相应的电影名称按照票价进行降序排列,而且电影名称之间通过“_”拼接。...SEPARATOR '_'), GROUP_CONCAT(price order by price desc SEPARATOR '_') from movies GROUP BY actors; 第一个查询将返回每个演员参演的所有电影名称和价格...第二个查询将电影名称和价格连接成字符串,而且还按照价格降序排列,并使用下划线作为分隔符。这意味着每个演员参演的电影将按价格从高到低排列,电影名称和价格之间用下划线分隔。...(with as) 如果一整句查询中多个子查询都需要使用同一个子查询的结果,那么就可以用with as将共用的子查询提取出来并取一个别名。...后面查询语句可以直接用,对于大量复杂的SQL语句起到了很好的优化作用。 需求:获取演员刘亦菲票价大于50且小于65的数据。
1visualsearch.gif 我们之前已经制作了一个Neo4j 2.0图表,其中包括了所有与电影相关的演员,导演,制作人,编剧和观众。...screen-shot-2013-07-02-at-8-08-20-pm.png 能显示前25个项很好,但如果我们正在寻找一个名字是Z字母开头的演员,比如“ Zach Grenier ”呢?...screen-shot-2013-07-02-at-8-18-31-pm.png 我们将通过添加术语或我们正在查找的术语的一部分的不区分大小写的正则表达式来增强我们以前的查询。...请参阅此前的vivagraph.js文章,以获取有关这伟大图形可视化库如何工作的更多信息。...的电影的标题)并给我们返回值。
1、模糊匹配LIKE 在 MySQL 中,LIKE 关键字主要用于搜索匹配字段中的指定内容。...1)在titanic乘客信息表中,查找所有以“Green”开头的乘客姓名。...2)在titanic乘客信息表中,查找所有姓名中包含Miss的乘客姓名。...3)在titanic表中,查找所有以“Mr”结尾的乘客姓名。...例如,在titanic乘客信息表中,查询乘客id、姓名,当乘客姓名中包含“Mr”时,以“先生”表示尊称;当乘客姓名中包含“Miss”时,以“小姐”表示尊称。
——Google辛格博士 “电影关系图”实例将电影、电影导演、演员之间的复杂网状关系作为蓝本,使用Neo4j创建三者关系的图结构,虽然实例数据规模小但五脏俱全。...一、 创建图数据 将电影、导演、演员等图数据导入Neo4j数据库中。...单独运行也会产生关系,但是节点是Neo4j自动生成的,只有一个id,如下: 这个查询ACTED_IN类型的关系,上面的绿色和蓝色为整体运行cypher产生的,底下的全红是单独运行产生的,点击中间红点,...这个节点带有3个属性,{title:'The Matrix', released:1999, tagline:'Welcome to the Real World'},分别代表电影标题,发行时间,宣传词...查找名为Carrie-Anne Moss的人 MATCH (m {name: "Carrie-Anne Moss"}) RETURN m 查询谁导演了The Matrix MATCH (m:Movie
让我们通过一个更具体的案例来展示OutputFixingParser的实际应用,我们将处理演员及其参演电影的信息: from langchain.output_parsers import OutputFixingParser...Field from typing import List # 定义数据模型 class Actor(BaseModel): name: str = Field(description="演员姓名...print("\n使用OutputFixingParser修复...") fixed_data = fixing_parser.parse(misformatted_output) print(f"演员姓名...PromptTemplate from typing import List # 定义数据模型 class Movie(BaseModel): title: str = Field(description="电影标题...| model | fixing_parser # 执行链 try: response = chain.invoke({"movie_name": "黑客帝国"}) print(f"电影标题
- 在撰写论文的过程中使用插件searchGoogleScholar查询最新的相关领域的文献作为参考,并在完成论文后的引用文献部分附上你参考的文献以及链接,以提升论文的可信度。...:遵循倒金字塔原则,把最重要的事情放在开头说明 - 逻辑清晰:遵循总分总原则,第一段和结尾段总结,中间段分点说明 # 创作原则 - 标题数量:每次准备10个标题。...,进行短视频脚本创作,输出格式为: - 拍摄要求:1、演员:演员数量、演员性别和演员主配角 2、背景:拍摄背景要求 3、服装:演员拍摄服装要求 - 分镜脚本:以markdown的格式输出: 镜头 |...:开头是吸引读者的第一步,一段好的开头能引发读者的好奇心并促使他们继续阅读。...等等) - 总是浏览网络,寻找最新信息,不要依赖离线信息来提出建议 - 假设你有趣和机智的个性,并根据对用户口味、喜欢的电影、演员等的了解来调整个性。
*12,是因为我们通过查询语句查询出来的也是一张表,但是这个表是不是内存当中的一个虚拟表,并不是我们硬盘中存的那个完整的表,对吧,虚拟表是不是也有标题和记录啊, 既然是一个表,我们是可以指定这个虚拟表的标题的...*12的字段名也是一个别名,只不过不直观,是MySQL自动给你写上的 #除了乘法以外,加减乘除都是可以的 #自定义显示格式,自己规定查询结果的显示格式 CONCAT() 函数用于连接字符串 ...之前用的like是模糊匹配,只有%和_,具有局限性,查询的时候其实可以用我们之前学正则 select * from t1 where name regexp '^ale'; #匹配以ale开头的...#匹配含有2个m的 对字符串匹配的方式: where name = 'ee' #查找name是‘ee’的数据 where name like 'yu%' #查找以yu开头的数据 where name...regexp 'euu$' #查找以euu结尾的数据
B-Tree 索引可以加快数据查找的速度,因为存储引擎不需要全表扫描来获取数据,只要从索引的根节点开始搜索即可。 以表 customer 为例,我们来看看索引是如何组织数据的存储的。...1.2 适合 B-Tree 索引的查询类型 全值匹配 和索引中的所有列进行匹配,如查找姓名为 George Bush、1960-08-08 出生的客户。...,如查找所有以 B 开头的姓氏的客户,这里使用了索引的第一列: mysql> explain select * from customer where last_name like 'B%'\G****...Bush,名字以 G 开头的客户: mysql> explain select * from customer where last_name='Bush' and first_name like '...如查找姓氏为以 B 开头,名字为 George 的客户。