文章目录
- 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