从零开始的常识图谱日子,构建一个百科常识图谱,完成根据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个。

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

项目码源见文末

码源:点击跳转

  • 目录
    • 百度百科与互动百科的常识抽取

      • 半结构化数据
        • 百度百科爬虫
        • 互动百科爬虫
      • 非结构化数据
        • 微信大众号爬虫
        • 虎嗅网爬虫
    • 非结构化文本的常识抽取

      • 制作类似于NYT的长途监督学习语料–baidu_6w
      • 神经网络联系抽取
    • 常识存储

      • 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:斯坦福大学的开源常识抽取东西(三元组抽取)](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的访问

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

5.常识存储

5.1 将数据存入 Neo4j

图数据库是根据图论完成的一种新式NoSQL数据库。它的数据数据存储结构和数据的查询方法都是以图论为根底的。图论中图的节本元素为节点和边,对应于图数据库中的节点和联系。咱们将上面获得的数据存到 Neo4j中。

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

电影范畴的请见从零开始构建常识图谱(六)将数据存进Neo4j

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

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

6.KBQA

6.1 根据 REfO 的简略KBQA

根据浙江大学在openKG上供给的 根据 REfO 的 KBQA 完成及示例,在自己的常识图谱上完成简略的常识问答系统。

具体介绍请见从零开始构建常识图谱(三)根据REfO的简略常识问答

  • 示例

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

语义查找

根据elasticsearch 的简略语义查找

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

具体介绍请见从零开始构建常识图谱(四)根据ES的简略语义查找

  • 示例

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

项目码源见文末

码源:点击跳转

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