从零开始的知识图谱生活,构建一个百科知识图谱,完成基于Deepdive的知识抽取、基于ES的简单语义搜索、基于 REfO 的简单KBQA

2023-07-10 16:21:12

在这里插入图片描述

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用 CSDN 平台,自主完成项目设计升级,提升自身的硬实力。

在这里插入图片描述

  1. 专栏订阅:项目大全提升自身的硬实力

  2. [专栏详细介绍:项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域)

从零开始的知识图谱生活,构建一个百科知识图谱,完成基于Deepdive的知识抽取、基于ES的简单语义搜索、基于 REfO 的简单KBQA

个人入门知识图谱过程中的学习笔记,算是半教程类的,指引初学者对知识图谱的各个任务有一个初步的认识。目前暂无新增计划。

1.简介

目标是包含百度百科、互动百科、中文wiki百科的知识,千万级实体数量和亿级别的关系数目。目前已完成百度百科和互动百科部分,其中百度百科词条4,190,390条,互动百科词条4,382,575条。转换为RDF格式得到三元组 128,596,018个。存入 neo4j中得到节点 16,498,370个,关系 56,371,456个,属性 61,967,517个。

项目码源见文章顶部或文末

https://download.csdn.net/download/sinat_39620217/87988980

2.获取数据

2.1 半结构化数据

半结构化数据从百度百科和互动百科获取,采用scrapy框架,目前电影领域和通用领域两类。

2.2 非结构化数据

非结构化数据主要来源为微信公众号、虎嗅网新闻和百科内的非结构化文本。

微信公众号爬虫获取公众号发布文章的标题、发布时间、公众号名字、文章内容、文章引用来源,对应 ie/craw/weixin_spider。虎嗅网爬虫 获取虎嗅网新闻的标题、简述、作者、发布时间、新闻内容,对应 ie/craw/news_spider。

3. 非结构化文本的知识抽取

3.1 基于Deepdive的知识抽取

Deepdive是由斯坦福大学InfoLab实验室开发的一个开源知识抽取系统。它通过弱监督学习,从非结构化的文本中抽取结构化的关系数
据 。本次实战基于OpenKG上的[支持中文的deepdive:斯坦福大学的开源知识抽取工具(三元组抽取)](http://www.openkg.cn/ dataset/cn-deepdive),我们基于此,抽取电影领域的演员-电影关系。

详细介绍请见从零开始构建知识图谱(五)Deepdive抽取演员-电影间关系

3.2 神经网络关系抽取

利用自己的百科类图谱,构建远程监督数据集,并在OpenNRE上运行。最终生成的数据集包含关系事实18226,无关系(NA)实体对336 693,总计实体对354 919,用到了462个关系(包含NA)。

详细介绍请见从零开始构建知识图谱(九)百科知识图谱构建(三)神经网络关系抽取的数据集构建与实践

4.结构化数据到 RDF

结构化数据到RDF由两种主要方式,一个是通过direct mapping,另一个通过R2RML语言这种,基于R2RML语言的方式更为灵活,定制性强。对于R2RML有一些好用的工具,此处我们使用d2rq工具,它基于R2RML-KIT。

详细介绍请见从零开始构建知识图谱(二)数据库到 RDF及 Jena的访问

5.知识存储

5.1 将数据存入 Neo4j

图数据库是基于图论实现的一种新型NoSQL数据库。它的数据数据存储结构和数据的查询方式都是以图论为基础的。图论中图的节本元素为节点和边,对应于图数据库中的节点和关系。我们将上面获得的数据存到 Neo4j中。

百科类图谱请见:从零开始构建知识图谱(八)百科知识图谱构建(二)将数据存进neo4j

电影领域的请见从零开始构建知识图谱(六)将数据存进Neo4j

6.KBQA

6.1 基于 REfO 的简单KBQA

基于浙江大学在openKG上提供的 基于 REfO 的 KBQA 实现及示例,在自己的知识图谱上实现简单的知识问答系统。

详细介绍请见从零开始构建知识图谱(三)基于REfO的简单知识问答

  • 示例

语义搜索

基于elasticsearch 的简单语义搜索

本项目是对浙大的 基于elasticsearch的KBQA实现及示例 的简化版本,并在自己的数据库上做了实现。

详细介绍请见从零开始构建知识图谱(四)基于ES的简单语义搜索

  • 示例

项目码源见文章顶部或文末

https://download.csdn.net/download/sinat_39620217/87988980

更多推荐

计算机未来-发展趋势和未来方向

计算机未来-发展趋势和未来方向1.人工智能与机器学习近年来,人工智能和机器学习成为了科技领域的热门话题。在CSDN上,与人工智能和机器学习相关的文章和讨论也是不胜枚举。从深度学习到自然语言处理,从计算机视觉到强化学习,这些技术正在不断地改变我们的生活和工作方式。机器学习作为人工智能的一个重要分支,其核心技术包括监督学习

Android使用Jetpack WindowManager来开发可折叠设备的探索

一、背景我们在Google开发者大会上,看到JetpackWindowManager和WindowSizeClass这些技术,如下图。那这里不得不说折叠屏手机了在其中一个显示区域中运行一个应用。同时运行两个应用,各位于一个显示区域中(在multi-window模式下)。可折叠设备还支持不同的折叠状态。折叠状态可用来以不

特殊时间(蓝桥杯)

特殊时间问题描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。2022年2月22日22:20是一个很有意义的时间,年份为2022,由3个2和1个0组成,如果将月和日写成4位,为0222,也是由3个2和1个0组成,如果将时间中的时和分写成4位,还是由3个2和1个0组成。小蓝对这样的时间很感兴趣,

【 Ubuntu】systemd服务自启

要在Ubuntu启动后执行一个守护脚本,您可以使用Shell脚本编写一个systemd服务单元。systemd是Ubuntu中常用的服务管理工具,可以在系统启动时自动启动和管理服务。下面是一个示例的守护脚本和systemd服务单元的步骤:创建守护脚本:创建一个Shell脚本文件,例如mydaemon.sh,并在其中编写

markdown学习笔记

markdown学习笔记1.文字(依靠HTML)1.1文字缩进-空格转义符单字符空:&emsp;半字符空:&ensp;1.2文字对齐「居中:」<center>居中</center>or<palign="center">居中</p>「左对齐:」<palign="left">左对齐</p>「右对齐:」<palign="ri

VUE build:gulp打包:测试、正式环境

目录项目结构GulpVUE使用GulpVue安装GulpVue定义Gulp.jspackage.jsonbuild文件夹config文件夹static-config文件夹项目结构GulpGulp是一个自动化构建工具,可以帮助前端开发者通过自动化任务来管理工作流程。Gulp使用Node.js的代码编写,可以更加灵活地管理

STM32 基础学习——GPIO位结构(江科大老师教程)

一、GPIO内部结构1、GPIO外设名称是由GPIOA、GPIOB、GPIOC等命名,共有16个引脚2、每个GPIO模块内,主要包含了寄存器和驱动器这些东西3、寄存器写1,对应的端口就是高电平。写0,对应的端口就是低电平4、寄存器只负责存储数据这是GPIO结构图,总体来说上半部分是输入部分,下半部分是输出部分这是部分是

Bartender for Mac菜单栏图标自定义

Bartender是一款可以帮助用户更好地管理和组织菜单栏图标的macOS软件。它允许用户隐藏和重新排列菜单栏图标,从而减少混乱和杂乱。以下是Bartender的主要特点:菜单栏图标隐藏:Bartender允许用户隐藏菜单栏图标,只在需要时显示。这样可以减少菜单栏的拥挤和视觉干扰,使界面更加整洁和专注。可自定义的菜单栏

Layui快速入门之第九节 表格事件的使用

目录一:事件二:头部工具栏事件三:排序切换事件四:列拖拽宽度后的事件五:列筛选(显示或隐藏)后的事件六:行单击和双击事件七:行右键菜单事件八:单元格编辑事件九:单元格工具事件十:复选框事件十一:单选框事件十二:尾部分页栏事件一:事件table.on('event(filter)',callback);参数event(f

Spring后处理器-BeanPostProcessor

Spring后处理器-BeanPostProcessorBean被实例化后,到最终缓存到名为singletonObjects单例池之前,中间会经过bean的初始化过程((该后处理器的执行时机)),例如:属性的填充、初始化方法init的执行等,其中有一个对外拓展的点BeanPostProcessor,我们称之为bean后

2D游戏开发和3D游戏开发有什么不同?

2D游戏开发和3D游戏开发是两种不同类型的游戏制作方法,它们之间有一些显著的区别:1.图形和视觉效果:2D游戏开发:2D游戏通常使用二维图形,游戏世界和角色通常在一个平面上显示。这种类型的游戏具有平面的外观,就像经典的平台游戏,如《超级马里奥》或《糖果传奇》。3D游戏开发:3D游戏使用三维图形,玩家可以在三维环境中自由

热文推荐