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

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

—— 充钱

—— ???

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

—— 充更多钱

执迷不悟,无可救药了。

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

答:是知识。

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

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

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

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

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

史上规模最大的中文知识图谱

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

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

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

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

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

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

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

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

姚明,身高,226cm

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

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

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

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

wc -l ownthink_v2.csv 
140919781 ownthink_v2.csv

确实是 1.4 亿。

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

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

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

import sys
import csv

with open('ownthink_v2.csv', 'r', encoding='utf8') as fin:
  reader = csv.reader(fin)
  for index, read in enumerate(reader):
    print(read)
    if index > 10:
      sys.exit(0)

运行结果:

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

可以看到,输出结果就是一个三元组的形式,三元组个数一共是 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 示例代码:

import requests

url = 'https://api.ownthink.com/kg/eav'
data = {
    'entity': '苹果',
    'attribute': '颜色'
}
response = requests.post(url, data=data)
print(response.json())

返回结果:

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

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

其他的一些调用也可以参考它的官方文档:https://www.ownthink.com/docs/kg/,

另外也可以关注下它们的自然语言处理工具、语义理解工具,看起来还是值得一用的。

AI 核心代码

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

while True:
    print(input().replace('你', '我').replace('吗', '').replace('?', '!'))

运行结果如下:

在吗?
在!
你能听懂中文吗?
我能听懂中文!
你是世界上最强的AI吗?
我是世界上最强的AI!

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

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

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

怎么样碉堡了有没有?

那就放出代码来吧!

from collections import defaultdict

data = defaultdict(dict)
file = 'ownthink_v2.csv'
total = 10000000


def learn(total=None):
    count = 0
    fin = open(file, encoding='utf-8')
    while total is None or count < total:
        line = fin.readline().strip()
        print(line)
        count += 1
        groups = line.split(',')
        if len(groups) == 3:
            data[groups[0]][groups[1]] = groups[2]


learn(total)
print(f'我学习了{total}条知识,来问我问题吧!')
while True:
    question = input('你问我个问题?')
    name, attribute = question.split('的')
    if name in data and attribute in data[name]:
        print(f'{name}的{attribute}是{data[name][attribute]}!')
    else:
        answer = input('我不知道啊,你告诉我呗!')
        data[name][attribute] = answer

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

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

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

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

我学习了100000000条知识,来问我问题吧!
你问我个问题?
老挝的首都
老挝的首都是万象!
你问我个问题?
郭艾伦的身高
郭艾伦的身高是1米92!
你问我个问题?
郭艾伦的外号
我不知道啊,你告诉我呗!
郭一分
你问我个问题?
郭艾伦的外号
郭艾伦的外号是郭一分!

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

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

大家如果感兴趣可以去 GitHub 主页(https://github.com/ownthink/KnowledgeGraphData)下载这个知识图谱。

Image placeholder
skyinsea
未设置
  25人点赞

没有讨论,发表一下自己的看法吧

推荐文章
云原生时代,分布式系统设计必备知识图谱(内含22个知识点)

作者|杨泽强(竹涧)阿里云技术专家我们身处于一个充斥着分布式系统解决方案的计算机时代,无论是支付宝、微信这样顶级流量产品、还是区块链、IOT等热门概念、抑或如火如荼的容器生态技术如Kubernetes

Drive.ai轰然倒下:曾估值两亿,吴恩达夫妇站台,苹果将接盘部分可用技术人才

大数据文摘编辑部出品曾经估值两个亿美元,吴恩达夫妇亲自站台,风极一时的无人车创业公司Drive.ai轰然倒塌。本月20日,总部位于加州山景城的Drive.ai公司被证实已经向一家州政府机构递交了通知,

实现koa核心代码

导语:实现简单的koa核心代码,便于理解koa原理。顺便学习koa代码的那些骚操作。简单分析koa创建一个http服务,只绑一个中间件。创建index.js/**index.js*/ constKoa

代码传奇 | 身价10亿的程序员 雷军当年也为他打工——WPS之父 求伯君

他的前半生,值得我们每一个人深思。在普通人眼里,他寂寂无名,只有年岁稍长的文化人,才听说过他传奇般的存在。在IT人眼里,他是块活化石,中国第一的大旗除了他,没人敢抗!他是求伯君,从一个浙江穷山村走出来

美团大规模微服务通信框架及治理体系OCTO核心组件开源

微服务通信框架及治理平台OCTO作为美团基础架构设施的重要组成部分,目前已广泛应用于公司技术线,稳定承载上万应用、日均支撑千亿级的调用。业务基于OCTO提供的标准化技术方案,能够轻松实现服务注册/发现

5G是一个数据通道,未来最大的产业是人工智能 | 任正非对话卡普兰

大数据文摘出品昨天下午,华为创始人任正非邀请两位人工智能领域的国际顶级专家参与“与任正非咖啡对话”。这已经不是任正非第一次举办这种与行业专家的对话,上一次是在6月17日在与《福布斯》著名撰稿人乔治·吉

我的天!这是史上最烂的项目:苦撑12年,600多万行代码…

编译:欧剃来源:projectfailures.wordpress.com转载自:Java技术栈你见过最烂的项目,撑了多长时间才完蛋?六个月?一年?今天介绍的这个奇葩项目,不但一开始就烂得透透的,还硬

亚马逊将公布超过最大会话和知识数据集,超400万字

4月1日,亚马逊宣布:他们计划向公众公开“TopicalChat”数据集,超410万单词21万句子的语料库将于2019年9月17日发布。该数据集是为参加AlexaPrizeSocialbotGrand

估值 27.5 亿美元,GitLab“超车”GitHub

近日,知名代码托管平台GitLab宣布完成E轮2.68亿美元融资。据悉,本次融资由高盛银行和IconiqCappital牵头,包括YCombinatorContinuity基金。这可能是该公司上市前

历史上最著名计算机病毒,似乎都成了我们的回忆

Windows勒索病毒似乎让全球计算机用户都闻风丧胆,不过这其实真的不算什么。然而令人始料不及的是,即便勒索病毒传遍了100多个国家,也仅仅才收获了5万美金。所以说勒索病毒真的不算啥。历史上比勒索病毒

史上最全Oracle数据泵常用命令

导读:expdp和impdp是oracle数据库之间移动数据的工具,本文简单总结了数据泵的常用命令,希望对大家有帮助。前言expdp和impdp是oracle数据库之间移动数据的工具。expdp和

史上最快AI计算机发布!谷歌TPU V3的1/5功耗、1/30体积,首台实体机已交付

大数据文摘作品还记得8月份占据各家科技头条的有史以来最大芯片吗?这个名为CerebrasWaferScaleEngine(WSE)的“巨无霸”面积达到42225平方毫米,拥有1.2万亿个晶体管,400

史上第一张黑洞照片是用Python合成的?

这两天,史上第一张黑洞照片,在朋友圈和各大公众号疯传,希望你没有收到视觉中国的律师函。好了,言归正传。这个照片是怎么「拍到」的呢?其中一位研究人员(一个妹子,MIT 的博士,就是头图这位)就在 TED

餐饮SaaS规模之战一触即发 客如云显制胜决心

记得上小学的时候腊月时节下起了夜雨,第二天清晨寒风凛冽中公路铺满了薄薄的冰层,外出行人即使再小心也不免滑倒。2018年对于创业者来说何尝不是一个下雨的冬天,宏观经济带来了凛冽寒风。国内民以食为天,去年

多云时代下大规模数据库管理,该怎么做?

中国经济的高速发展是世界各国人们有目共睹的,随着数字经济时代的到来,金融数据库的管理,也随之面对一系列的新技术与挑战。云计算一直以来被认为是极具颠覆性的技术力量,随着云计算的应用普及,越来越为企业重视

etcd 在超大规模数据场景下的性能优化

作者|阿里云智能事业部高级开发工程师 陈星宇(宇慕)划重点etcd优化背景问题分析优化方案展示实际优化效果本文被收录在5月9日cncf.io官方blog中,链接:https://www.cncf.io

AWS计划扩大其在中国市场的业务规模

近日,AWS首席云计算企业顾问张侠表示,AWS希望在中国快速发展的云计算市场中占有更大的份额。  AWS首席云计算企业顾问张侠(Digitimes的AaronLee摄)AWS在全球云计算市场中占有40

超大规模商用 K8s 场景下,阿里巴巴如何动态解决容器资源的按需分配问题?

导读:资源利用率一直是很多平台管理和研发人员关心的话题。本文作者通过阿里巴巴容器平台团队在这一领域的工作实践,整理出了一套资源利用提升的方案,希望能够带给大家带来一些讨论和思考。引言不知道大家有没有过

运营商大规模数据集群治理的实践指南

写在开头的话Q: 军哥,你们运营商行业的大规模集群,都有啥特点啊?A: 我们集群主要是承载B域、信令和互联网日志等去标识化数据,简单的说,有三个特点:1)集群规模较大:数千节点规模,近百PB数据量,日

我们走访了900名微软员工,为你揭秘全球最大软件公司的代码评审机制

大数据文摘出品来源:michaelagreiler编译:倪倪、钱天培、毅航全球最大的软件公司之一微软拥有约140,000名员工,其中大约44%,即超过60,000名员工,是工程师。Office、Vis

算法题:乘积最大子序列

题目来源于力扣 理论基础 动态规划 乘积最大子序列题目描述 给定一个整数数组nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例示例1: 输入:[2,3,-2,4] 输出:

2019年8月数据库流行度排行:双星闪耀 MySQL 成月度最大赢家

炎炎夏日,DB-Engines的8月榜单已经发布,本月积分MySQL获得了最显著的增长,较上月增加了24分,Oracle获得了18分的增长,Oracle公司的两个王牌产品,闪耀8月。以下是前10名的榜

欧洲最大笔融资,骗过软银!印度AI公司被曝造假,自动开发背后是真人码农

大数据文摘编辑部出品AI融资有泡沫,这大家都知道。但是,这泡沫能有多大呢?一家名叫Engineer.ai的明星AI初创公司刚刚刷新了这一纪录。这家以ai作为域名的公司由两名印度创始人创建,号称可以通过

欧洲最大MySQL用户之一,Booking.com数据库构架探秘!

吴鑫Booking.com数据库工程师TeamLead2015年加入总部位于阿姆斯特丹的Booking.com数据团队,现任数据库工程师团队负责人,主要是负责Booking.com里MySQL相关的运

调查:企业数字化转型中面临的最大挑战是什么?

数字化转型是将新兴的数字技术集成到企业的各个方面的过程。比如最近的云迁移,其中数据和业务流程由第三方提供商管理。因此,数字化转型被视为利用技术简化运营并保持竞争力的一种方式。但Couchbase周三发