史上规模最大的中文知识图谱以及估值两个亿的 AI 核心代码

—— 大声告诉我,怎样才能可以让你变得更强?

—— 充钱

—— ???

—— 都什么玩意?还有啥子咧?

—— 充更多钱

执迷不悟,无可救药了。

所以,正确答案应该是什么呢?

答:是知识。

反正,说这些就是为了切入「知识」这个话题。

知识是什么?比如:姚明的身高是 226cm,这就是一个知识。

那么问题来了,世界上错综复杂的事物这么多,我们上哪里去学这么多知识啊?怎么快速把有意义的数据收集下来呢?

爬虫?可以,去爬吧,维基百科,百度百科,爬个全站,然后分析下,是能得到不少知识,可你得花多少钱多少时间才能搞下来啊。

不过,今天你看到了这篇文章,那就不用费这些功夫了。

史上规模最大的中文知识图谱
今天逛 GitHub 发现了一个开源项目,叫做 KnowledgeGraphData,号称是史上规模最大的中文知识图谱,有 1.4 亿条数据。

知识图谱

这个时代,想必大家或多或少也听人吹嘘过「知识图谱」这个词,好像每个公司也在自己建各种各样的知识图谱,想必大家不知道知识图谱的也知道个差不多这是干嘛的了。

知识就是力量,知识图谱是人工智能新时代的产物,简单地说知识图谱就是通过关联关系将知识组成网状的结构,然后我们的人工智能可以通过这个图谱来认识其代表的这一个现实事件,这个事件可以是现实,也可以是虚构的。

就像上面的图一样,每个实体(比如一个人、一家公司、一件事),它都会作为一个节点出现在知识图谱里面,实体和实体之间又有各种关联关系,每一个实体又有各种属性,每个属性都有其对应的属性值。

比如「姚明」的妻子是「叶莉」,他们之间就构成了夫妻关系,这就是实体和实体之间的关联。「姚明」的身高是 226cm,「身高」就是一个属性,「226cm」就是属性值。

就是这样,一个个的实体和属性就构成了一个庞大的知识库,把它构建成图(Graph)的形式就成了知识图谱,就是这么回事。

那么一条知识一般怎么来表示呢?

很常见的形式就是三元组,比如:

姚明,身高,226cm
 这里以逗号分隔了,第一个字段就代表实体,第二个字段代表其属性,第三个字段代表其属性值。

嗯,那今天介绍的这个开源知识图谱也是这样的形式,它是一个 csv 文件,包含了 1.4 亿条数据。

先放 GitHub 地址:https://github.com/ownthink/KnowledgeGraphData,详情大家可以直接过去看。

下载之后解压得到一个 csv 文件,看看文本行数:

1 wc -l ownthink_v2.csv
2 140919781 ownthink_v2.csv

确实是 1.4 亿。

看看里面的格式是怎样的:

 1 $ head ownthink_v2.csv
 2 实体,属性,值
 3 胶饴,描述,别名: 饴糖、畅糖、畅、软糖。
 4 词条,描述,词条(拼音:cí tiáo)也叫词目,是辞书学用语,指收列的词语及其释文。
 5 词条,标签,文化
 6 红色食品,描述,红色食品是指食品为红色、橙红色或棕红色的食品。
 7 红色食品,中文名,红色食品
 8 红色食品,是否含防腐剂,否
 9 红色食品,主要食用功效,预防感冒,缓解疲劳
10 红色食品,适宜人群,全部人群
11 红色食品,用途,增强表皮细胞再生和防止皮肤衰老

我们可以用 Python 来输出一部分看看:

1 import sys
2 import csv
3
4 with open(‘ownthink_v2.csv‘, ‘r‘, encoding=‘utf8‘) as fin:
5   reader = csv.reader(fin)
6   for index, read in enumerate(reader):
7     print(read)
8     if index > 10:
9       sys.exit(0)

运行结果:

 1 [‘实体‘, ‘属性‘, ‘值‘]
 2 [‘胶饴‘, ‘描述‘, ‘别名: 饴糖、畅糖、畅、软糖。‘]
 3 [‘词条‘, ‘描述‘, ‘词条(拼音:cí tiáo)也叫词目,是辞书学用语,指收列的词语及其释文。‘]
 4 [‘词条‘, ‘标签‘, ‘文化‘]
 5 [‘红色食品‘, ‘描述‘, ‘红色食品是指食品为红色、橙红色或棕红色的食品。‘]
 6 [‘红色食品‘, ‘中文名‘, ‘红色食品‘]
 7 [‘红色食品‘, ‘是否含防腐剂‘, ‘否‘]
 8 [‘红色食品‘, ‘主要食用功效‘, ‘预防感冒,缓解疲劳‘]
 9 [‘红色食品‘, ‘适宜人群‘, ‘全部人群‘]
10 [‘红色食品‘, ‘用途‘, ‘增强表皮细胞再生和防止皮肤衰老‘]
11 [‘红色食品‘, ‘标签‘, ‘非科学‘]
12 [‘红色食品‘, ‘标签‘, ‘生活‘]

可以看到,输出结果就是一个三元组的形式,三元组个数一共是 1.4 亿个。

可以说是相当丰富了。

用法
这个知识图谱是来自于「思知 OwnThink」的,利用知识图谱我们可以做非常多的事情,比如做对话机器人、语义理解、知识推荐等等。

翻了翻「思知 OwnThink」的官方文档,发现他们已经在这个知识图谱的基础上搭建了很多服务了,比如对话机器人、微信机器人、语义理解等等相关的服务,并封装了相应的 API。

详情可以见:https://www.ownthink.com/docs/。

就拿知识图谱来说吧:https://www.ownthink.com/docs/kg/,这里封装了一些 API,比如获取歧义关系、获取实体知识、获取属性值等等。

例如获取属性值,我们可以用两种方式来获取。

GET
我们可以使用 GET 请求直接获取,请求的 URL 是 https://api.ownthink.com/kg/eav?entity=entity_name&attribute=attribute_name,这里就传入实体名称和属性即可。

例如直接访问:https://api.ownthink.com/kg/eav?entity=苹果&attribute=颜色 就可以获取 JSON 格式的结果了。

POST
同样也可以以 POST 形式来获取,Python 示例代码:

1 import requests
2
3 url = ‘https://api.ownthink.com/kg/eav‘
4 data = {
5     ‘entity‘: ‘苹果‘,
6     ‘attribute‘: ‘颜色‘
7 }
8 response = requests.post(url, data=data)
9 print(response.json())

返回结果:

{‘message‘: ‘success‘, ‘data‘: {‘entity‘: ‘苹果‘, ‘attribute‘: ‘颜色‘, ‘value‘: [‘红色粉色金黄色绿色白色‘]}}

这里不知咋回事,结果的 list 没有逗号分隔,但官方文档那边是有的,应该是出了一点问题。

其他的一些调用也可以参考它的官方文档:https://www.ownthink.com/docs/kg/,另外也可以关注下它们的自然语言处理工具、语义理解工具,看起来还是值得一用的。

AI 核心代码

想必之前大家又被一个号称估值一个亿的 AI 核心代码刷过屏,那么首先看看人家的估值一个亿的 AI 核心代码是怎样的:

1 while True:
2     print(input().replace(‘你‘, ‘我‘).replace(‘吗‘, ‘‘).replace(‘?‘, ‘!‘))

运行结果如下:

1 在吗?
2 在!
3 你能听懂中文吗?
4 我能听懂中文!
5 你是世界上最强的AI吗?
6 我是世界上最强的AI!

看起来已经相当牛逼了!但还不够!

有了这个图谱的加持,我们可以把它的估值做到两个亿!

首先有了图谱,我们就可以让这个 AI 来学习知识了,比如让它学习到「姚明」的「身高」是「226cm」这样的知识,只要它会,那就有问必答,要是不会,你告诉它了,它就能学习,再问一遍就可以能答对,具有超强的学习和记忆能力!

怎么样碉堡了有没有?

那就放出代码来吧!

 1 from collections import defaultdict
 2
 3 data = defaultdict(dict)
 4 file = ‘ownthink_v2.csv‘
 5 total = 10000000
 6
 7
 8 def learn(total=None):
 9     count = 0
10     fin = open(file, encoding=‘utf-8‘)
11     while total is None or count < total:
12         line = fin.readline().strip()
13         print(line)
14         count += 1
15         groups = line.split(‘,‘)
16         if len(groups) == 3:
17             data[groups[0]][groups[1]] = groups[2]
18
19
20 learn(total)
21 print(f‘我学习了{total}条知识,来问我问题吧!‘)
22 while True:
23     question = input(‘你问我个问题?‘)
24     name, attribute = question.split(‘的‘)
25     if name in data and attribute in data[name]:
26         print(f‘{name}的{attribute}是{data[name][attribute]}!‘)
27     else:
28         answer = input(‘我不知道啊,你告诉我呗!‘)
29         data[name][attribute] = answer

其实吧哈哈,就是随便玩玩写了个玩具代码,主要是想看看里面的知识全不全。

在这里定义了 total 这个变量,随便给它指定多少,他就学 CSV 里面多少条知识,设定为 None 就会全部学习。

在这里我们使用了 defaultdict 来存储三元组信息,然后最后根据问的问题来回答,如果它回答不上来,可以告诉它,下次再问它就会了。

我们来试试这个估值两个亿的 AI 代码吧:

 1 我学习了100000000条知识,来问我问题吧!
 2 你问我个问题?
 3 老挝的首都
 4 老挝的首都是万象!
 5 你问我个问题?
 6 郭艾伦的身高
 7 郭艾伦的身高是1米92!
 8 你问我个问题?
 9 郭艾伦的外号
10 我不知道啊,你告诉我呗!
11 郭一分
12 你问我个问题?
13 郭艾伦的外号
14 郭艾伦的外号是郭一分!

碉堡了有木有?哈哈哈。你看它既知道好多知识,又能回答问题,又能自学习,是不是远超那一个亿的核心代码了?想必估值两个亿不在话下了。

好了,玩归玩,闹归闹,别拿艾伦开玩笑。

HDC.Cloud 华为开发者大会2020 即将于2020年2月11日-12日在深圳举办,是一线开发者学习实践鲲鹏通用计算、昇腾AI计算、数据库、区块链、云原生、5G等ICT开放能力的最佳舞台。

欢迎报名参会https://www.huaweicloud.com/HDC.Cloud.html?utm_source=&utm_medium=&utm_campaign=&utm_content=techcommunity

原文地址:https://www.cnblogs.com/huaweicloud/p/12229655.html

时间: 2024-07-28 19:41:26

史上规模最大的中文知识图谱以及估值两个亿的 AI 核心代码的相关文章

程序员进阶路上不能错过的史上最全技术知识图谱秘籍

今天在技术大海中游啊游游啊游,哇啊哈哈 ^_^发现了一份非常有用的超级技术图谱诶! 强烈推荐啊!!本文原作者是易宝支付技术经理/架构师李艳鹏,这是鹏哥多年来积累和收集的技术知识技能图谱,有的是鹏哥原创总结的最佳实践,有的是小伙伴们的分享. 其实,每个秘籍图谱里面的内容都是互联网高并发架构师应该了解和掌握的知识.鹏哥索性就把这些图谱都收集在一起,并且进行了归类,便于大家查找和学习.图谱也暗含着他的一个小目标:想把更多的技术图谱和思维导图汇集在一起,成为互联网上“最全的技术图谱”. 这份技术知识图谱

第二章 知识图谱——机器大脑中的知识库

第二章 知识图谱——机器大脑中的知识库 作者:刘知远(清华大学):整理:林颖(RPI) 版权所有,转载请注明出处 知识就是力量.——[英]弗兰西斯·培根 1 什么是知识图谱 在互联网时代,搜索引擎是人们在线获取信息和知识的重要工具.当用户输入一个查询词,搜索引擎会返回它认为与这个关键词最相关的网页.从诞生之日起,搜索引擎就是这样的模式,直到2012年5月,搜索引擎巨头谷歌在它的搜索页面中首次引入“知识图谱”:用户除了得到搜索网页链接外,还将看到与查询词有关的更加智能化的答案.如下图所示,当用户输

[转载] 知识图谱——机器大脑中的知识库

原文: http://book.thunlp.org/knowledge_graph/ 第二章 知识图谱--机器大脑中的知识库 Published by  liuzy on July 6, 2015 作者:刘知远(清华大学):整理:林颖(RPI) 版权所有,转载请注明出处 知识就是力量.--[英]弗兰西斯·培根 1 什么是知识图谱 在互联网时代,搜索引擎是人们在线获取信息和知识的重要工具.当用户输入一个查询词,搜索引擎会返回它认为与这个关键词最相关的网页.从诞生之日起,搜索引擎就是这样的模式,直

典型的知识库/链接数据/知识图谱项目

典型的知识库/链接数据/知识图谱项目 2016年12月27日 Huajun 留下评论 从人工智能的概念被提出开始,构建大规模的知识库一直都是人工智能.自然语言理解等领域的核心任务之一.下面首先分别介绍了早期的知识库项目和以互联网为基础构建的新一代知识库项目.并单独介绍了典型的中文知识图谱项目. 1. 早期的知识库项目 Cyc  :  Cyc是持续时间最久,影响范围较广,争议也较多的知识库项目.Cyc是在1984年由Douglas Lenat开始创建.最初的目标是要建立人类最大的常识知识库.典型的

Nlpir大数据知识图谱的落地指南

知识图谱技术作为一门新兴的技术,是人工智能技术的重要组成部分,其建立的具有语义处理能力与开放互联能力的知识库,可在智能搜索.智能问答.个性化推荐等智能信息服务中产生应用价值.就覆盖范围而言,知识图谱也可分为通用知识图谱和行业知识图谱.通用知识图谱注重广度,强调融合更多的实体,较行业知识图谱而言,其准确度不够高,并且受概念范围的影响,很难借助本体 库对公理.规则以及约束条件的支持能力规范其实体.属性.实体间的关系等.通用知识图谱主要应用于智能搜索等领域.行业知识图谱通常需要依靠特定行业的数据来构建

知识图谱关系抽取

1.deepdive安装 deepdive是斯坦福开发的具有语言识别能力的信息抽取工具,可用作KBC系统(Knowledge Base Construction)的内核.在做知识图谱的时候其是一个十分强大的工具.其安装可参考中文知识图谱开放网的链接.点击打开链接 2.Postgresql安装 deepdive在使用过程中,产生的数据都存放在数据库中,依赖于postgre.mysql等关系型数据库,可以直接输入如下命令在机器上安装postgre,其安装可参考上述的中文只是图谱开放网,也可参考如下链

知识图谱研究进展

在原文<知识图谱研究进展>基础上上做了相应的调整和补充 本文首先简要回顾知识图谱的历史,探讨知识图谱研究的意义.其次,介绍知识图谱构建的关键技术,包括实体关系识别技术.知识融合技术.实体链接技术和知识推理技术等.然后,给出现有开放的知识图谱数据集的介绍.最后,给出知识图谱在情报分析中的应用案例. - 漆桂林.高桓.吴天星 东南大学计算机科学与工程学院 本文节选自<情报工程>2017 年第 1 期,知识图谱专题稿件. 1 知识图谱构建技术 ??本节首先给出知识图谱的技术地图,然后介绍

BERT+知识图谱: K-BERT Enabling Language Representation with Knowledge Graph 文献理解

参考文献:BERT+知识图谱:北大-腾讯联合推出知识赋能的K-BERT模型 地址:https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/103790278 此前两篇关于知识图谱结合预训练的文章作为了解: ERNIE: Enhanced Representation through Knowledge Integration(百度) a.对实体概念知识的学习来学习真实世界的完整概念的语义表示(MASK词和知识图谱中的实体) b.对训练语料的扩

开源知识图谱介绍

中文开源知识图谱: (1)中文通用百科知识图谱(CN-DBpedia) 介绍 CN-DBpedia是由复旦大学知识工场实验室研发并维护的大规模通用领域结构化百科,其前身是复旦GDM中文知识图谱. CN-DBpedia主要从中文百科类网站(如百度百科.互动百科.中文维基百科等)的纯文本页面中提取信息,经过滤.融合.推断等操作后,最终形成高质量的结构化数据,供机器和人使用. 下载地址: http://kw.fudan.edu.cn/cndbpedia/download/ (2)思知知识图谱(个人感觉