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

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

从零开始的知识图谱生活,构建一个百科知识图谱,完成基于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个。

项目码源见文末

码源:点击跳转

  • 目录

    • [百度百科与互动百科的知识抽取]

      • 半结构化数据

        • 百度百科爬虫
        • 互动百科爬虫
      • 非结构化数据

        • 微信公众号爬虫
        • 虎嗅网爬虫
    • 非结构化文本的知识抽取

    • 知识存储

      • [D2RQ 的使用]
      • [Jena 的使用]
    • 知识融合

      • [Silk 实战]
    • KBQA

      • [基于 REfO 的简单KBQA]
    • 语义搜索

      • [基于elasticsearch 的简单语义搜索 支持实体检索、实体属性检索和条件检索]

2.获取数据

2.1 半结构化数据

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

  • 通用领域百科数据:百度百科词条4,190,390条,互动百科词条3,677,150条。爬取细节请见[从零开始构建知识图谱(七)百科知识图谱构建(一)百度百科的知识抽取]
  • 电影领域: 百度百科包含电影22219部,演员13967人,互动百科包含电影13866部,演员5931 人。项目详细介绍请见[从零开始构建知识图谱(一)半结构化数据的获取]

2.2 非结构化数据

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

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

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

3.1 基于Deepdive的知识抽取

Deepdive是由斯坦福大学InfoLab实验室开发的一个开源知识抽取系统。它通过弱监督学习,从非结构化的文本中抽取结构化的关系数
据 。本次实战基于OpenKG上的[支持中文的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的简单语义搜索]

  • 示例

项目码源见文末

码源:点击跳转

更多优质内容请关注公号&知乎:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。

相关文章
|
2天前
|
机器学习/深度学习 人工智能 缓存
最佳实践!使用 GraphRAG + GLM-4 对《红楼梦》全文构建中文增强检索
特别介绍`graphrag-practice-chinese`项目,这是一个针对中文优化的GraphRAG应用实例,通过改进文本切分策略、使用中文提示词及选择更适合中文的模型等手段,显著提升了处理中文内容的能力。项目不仅包括详细的搭建指南,还提供了《红楼梦》全文的索引构建与查询测试示例,非常适合个人学习和研究。
20 1
|
1月前
|
机器学习/深度学习 自然语言处理 算法
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
90 0
|
4月前
|
机器学习/深度学习 自然语言处理 并行计算
淘宝搜索中的深度语义模型:从理论到实践
淘宝搜索系统通过引入深度语义模型,极大地提升了搜索质量和用户体验。这些模型不仅能够准确理解用户的需求,还能够智能地匹配和推荐商品,为用户提供了一个更加便捷、个性化的购物环境。随着技术的不断发展和完善,淘宝搜索将会变得更加智能和高效。
|
4月前
|
人工智能 自然语言处理 搜索推荐
阿里云搜索开发工作台:快速搭建AI语义搜索与RAG链路的深度解析
阿里云搜索开发工作台凭借其丰富的组件化服务和强大的模型能力,为企业快速搭建AI语义搜索及RAG链路提供了有力支持。通过该平台,企业可以灵活调用各种服务,实现高效的数据处理、查询分析、索引构建和文本生成等操作,从而大幅提升信息获取与处理能力。随着AI技术的不断发展,阿里云搜索开发工作台将继续优化和完善其服务,为企业数字化转型和智能化升级注入更强动力。
152 0
|
6月前
|
人工智能 自然语言处理 Cloud Native
向量检索服务在语义检索、知识库搭建、AI多模态搜索等场景中有着广泛的应用
向量检索服务在语义检索、知识库搭建、AI多模态搜索等场景中有着广泛的应用
218 0
|
6月前
|
数据采集 存储 人工智能
【AI大模型应用开发】【LangChain系列】实战案例4:再战RAG问答,提取在线网页数据,并返回生成答案的来源
【AI大模型应用开发】【LangChain系列】实战案例4:再战RAG问答,提取在线网页数据,并返回生成答案的来源
577 0
|
6月前
|
人工智能 自然语言处理 机器人
NLP自学习平台中的文本摘要功能并不仅限于电商版
【1月更文挑战第20天】【1月更文挑战第100篇】NLP自学习平台中的文本摘要功能并不仅限于电商版
141 2
|
自然语言处理 算法 API
NLP自学习平台提供了一种称为“关键词提取”的功能
NLP自学习平台提供了一种称为“关键词提取”的功能
129 1
|
机器学习/深度学习 人工智能 自然语言处理
深入解析情感分析技术:从篇章到属性
深入解析情感分析技术:从篇章到属性
178 0
|
人工智能 自然语言处理 PyTorch
NLP信息抽取全解析:从命名实体到事件抽取的PyTorch实战指南
NLP信息抽取全解析:从命名实体到事件抽取的PyTorch实战指南
799 0