天天看点

知识图谱学习资料1 知识图谱是什么2 推荐资料3 主要内容4 相关术语及技术路线5 项目实战

文章目录

  • 1 知识图谱是什么
  • 2 推荐资料
  • 3 主要内容
    • 3.1 知识提取
      • 3.1.1 使用规则
      • 3.1.2 使用深度学习
    • 3.2 知识表示
    • 3.3 知识存储
    • 3.4 知识检索
  • 4 相关术语及技术路线
    • 4.1 Protege构建本体系列
    • 4.2 开发语言
    • 4.3 图数据库技术
    • 4.4 可视化技术
    • 4.5 分词技术
  • 5 项目实战

1 知识图谱是什么

知识图谱是一种结构化数据的处理方法,它涉及知识的提取、表示、存储、检索等一系列技术。从渊源上讲,它是知识表示与推理、数据库、信息检索、自然语言处理等多种技术发展的融合。

2 推荐资料

为什么需要知识图谱?什么是知识图谱?——KG的前世今生

https://zhuanlan.zhihu.com/p/31726910

什么是知识图谱?

https://zhuanlan.zhihu.com/p/34393554

智能搜索时代:知识图谱有何价值?

https://zhuanlan.zhihu.com/p/35982177?from=1084395010&wm=9848_0009&weiboauthoruid=5249689143

百度王海峰:知识图谱是 AI 的基石

http://www.infoq.com/cn/news/2017/11/Knowledge-map-cornerstone-AI#0-tsina-1-5001-397232819ff9a47a7b7e80a40613cfe1

译文|从知识抽取到RDF知识图谱可视化

http://rdc.hundsun.com/portal/article/907.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

3 主要内容

3.1 知识提取

构建kg首先需要解决的是数据,知识提取是要解决结构化数据生成的问题。我们可以用自然语言处理的方法,也可以利用规则。

3.1.1 使用规则

正则表达式

正则表达式(Regular Expression, regex)是字符串处 理的基本功。数据爬取、数据清洗、实体提取、关系提取,都离不开regex。

推荐资料入门:

精通正则表达式

regexper 可视化:例 [a-z]*(\d{4}(\D+))

pythex 在线测试正则表达式:

http://pythex.org/

推荐资料进阶:

re2 :

Python wrapper for Google’s RE2 using Cython

https://pypi.python.org/pypi/re2/

Parsley :更人性化的正则表达语法

http://parsley.readthedocs.io/en/latest/tutorial.html

中文分词和词性标注

分词也是后续所有处理的基础,词性(Part of Speech, POS)就是中学大家学过的动词、名词、形容词等等的词的分类。一般的分词工具都会有词性标注的选项。

推荐资料入门:

jieba 中文分词包

https://github.com/fxsjy/jieba

中文词性标记集

https://github.com/memect/kg-beijing/wiki/

推荐资料进阶:

genius 采用 CRF条件随机场算法

https://github.com/duanhongyi/genius

Stanford CoreNLP分词

https://blog.csdn.net/guolindonggld/article/details/72795022

命名实体识别

命名实体识别(NER)是信息提取应用领域的重要基础工具,一般来说,命名实体识别的任务就是识别出待处理文本中三大类(实体类、时间类和数字类)、七小类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。

推荐资料:

Stanford CoreNLP 进行中文命名实体识别

https://blog.csdn.net/guolindonggld/article/details/72795022

3.1.2 使用深度学习

使用自然语言处理的方法,一般是给定schema,从非结构化数据中抽取特定领域的三元组(spo),如最近百度举办的比赛就是使用DL模型进行信息抽取。

序列标注

使用序列生出模型,主要是标记出三元组中subject及object的起始位置,从而抽取信息。

推荐资料:

序列标注问题

https://www.cnblogs.com/jiangxinyang/p/9368482.html

seq2seq

使用seq2seq端到端的模型,主要借鉴文本摘要的思想,将三元组看成是非结构化文本的摘要,从而进行抽取,其中还涉及Attention机制。

推荐资料:

seq2seq详解

https://blog.csdn.net/irving_zhang/article/details/78889364

详解从Seq2Seq模型到Attention模型

https://caicai.science/2018/10/06/attention总览/

3.2 知识表示

知识表示(Knowledge Representation,KR,也译为知识表现)是研究如何将结构化数据组织,以便于机器处理和人的理解的方法。

需要熟悉下面内容:

JSON和YAML

json库:

https://docs.python.org/2/library/json.html

PyYAML: 是Python里的Yaml处理库

http://pyyaml.org/wiki/PyYAML

RDF和OWL语义:

http://blog.memect.cn/?p=871

JSON-LD

主页:http://json-ld.org/

3.3 知识存储

需要熟悉常见的图数据库

a.知识链接的方式:字符串、外键、URI

b.PostgreSQL及其JSON扩展

Psycopg包操作PostgreSQL

http://initd.org/psycopg/docs/

c.图数据库 Neo4j和OrientDB

1.Neo4j的Python接口 https://neo4j.com/developer/python/

2.OrientDB:http://orientdb.com/orientdb/

d.RDF数据库Stardog

Stardog官网:http://stardog.com/

3.4 知识检索

需要熟悉常见的检索技术

ElasticSearch教程:

http://joelabrahamsson.com/elasticsearch-101/

4 相关术语及技术路线

本体:

https://www.zhihu.com/question/19558514

RDF:

https://www.w3.org/RDF/

Apache Jena:

https://jena.apache.org/

D2RQ:

http://d2rq.org/getting-started

4.1 Protege构建本体系列

protege:

https://protege.stanford.edu/

protege使用:

https://zhuanlan.zhihu.com/p/32389370

4.2 开发语言

python或java

4.3 图数据库技术

Neo4j:https://neo4j.com/

AllegroGraph:https://franz.com/agraph/allegrograph/

4.4 可视化技术

d3.js:https://d3js.org/

Cytoscape.js:http://js.cytoscape.org/

4.5 分词技术

jieba:https://github.com/fxsjy/jieba

hanlp:https://github.com/hankcs/HanLP

5 项目实战

基于知识图谱的问答:

https://github.com/kangzhun/KnowledgeGraph-QA-Service

Agriculture_KnowledgeGraph:

https://github.com/qq547276542/Agriculture_KnowledgeGraph

原文由知名开源平台,AI技术平台以及领域专家:Datawhale,ApacheCN,AI有道和黄海广博士联合整理贡献,内容涵盖AI入门基础知识、数据分析\挖掘、机器学习、深度学习、强化学习、前沿Paper和五大AI理论应用领域:自然语言处理,计算机视觉,推荐系统,风控模型和知识图谱。链接:https://mp.weixin.qq.com/s/fUNDdCzJrWBoKYh1tT4gSw

继续阅读