知识图谱api用例

想要做一个简单的基于已开源的通用型知识图谱的问答demo,所以看了一下比较流行的几个api的用法,基本上有以下三种功能:

  1. 用名称查实体列表
  2. 用实体查属性列表和对应值
  3. 用实体和属性查对应属性的值

以CN-Dbpedia为例,分别对应以下三种:

  1. api/cndbpedia/ment2ent
  2. api/cndbpedia/avpair
  3. api/cndbpedia/value

(具体内容和方法参考官网http://kw.fudan.edu.cn/apis/cndbpedia/

举个例子,我问:红楼梦的作者是谁?

首先,分词系统对我的问题进行划分,得到实体q(应该)是“红楼梦”,属性attr(应该)是“作者”。这里我写“应该”是因为这只是一个预判,实体和属性的名称有可能存在同义词的情况,实体的名称也可能存在歧义的情况。同义词情况我们在分词阶段可以进行处理,而对于歧义情况我的想法是通过多次查询解决。

比如说对于“红楼梦的作者是谁”这个问题,是一个“实体+属性”的查询,使用api/cndbpedia/value进行属性查询

http://shuyantech.com/api/cndbpedia/value?q=红楼梦&attr=作者

无法返回我们想要的答案,原因是“红楼梦”具有歧义,此处的红楼梦仅为名称,不是实体。

所以接下来使用api/cndbpedia/ment2ent查看“红楼梦”名称对应的所有实体列表

http://shuyantech.com/api/cndbpedia/ment2ent?q=红楼梦

返回:

{"status": "ok", "ret": ["红楼梦(中国古典四大名著之一)", "红楼梦(2010年李少红执导的古装情感剧)", "红楼梦(1987年陈晓旭、欧阳奋强主演央视版电视剧)", "红楼梦(1989年中国内陆电影版)", "红楼梦(1996年台湾华视版电视剧)", "红楼梦(1978年台湾华视电视剧)", "红楼梦(1975年香港tvb版电视剧)", "红楼梦(1977年香港佳视版电视剧)", "红楼梦(1927年复旦影片公司版电影)", "红楼梦(1962年香港邵氏电影)", "红楼梦(2002年梁永璋执导的越剧电视剧)", "红楼梦(1944年卜万苍执导电影)", "红楼梦(2009年娱乐通发行的恋爱游戏)", "红楼梦(1983年台湾华视版)", "红楼梦(2015年上映的龚应恬执导昆曲电影)", "红楼梦(1962年岑范执导电影)", "红楼梦(1929年上海孔雀影片公司电影版)", "红楼梦(2007年经典版数字越剧舞台艺术电影)", "红楼梦(胡雪阳执导新版越剧)", "红楼梦(杭州越剧院制作策划的作品)", "红楼梦(大型水景秀)", "红楼梦(1991年马科执导黄梅戏)", "红楼梦(1949年周诗禄执导电影)", "红楼梦(上海城市舞蹈有限公司制作的舞剧作品)", "红楼梦(曹克英改编的评剧)", "红楼梦(庞龙演唱歌曲)", "红楼梦(2017年潘礼平团队执导电视剧)", "红楼梦(2011年国产动画片)", "红楼梦(2018年胡玫执导电影)", "红楼梦(2009年国产动画片)", "红楼梦(2008年国产动画片)", "红楼梦(2007年国产动画片)", "红楼梦(越剧经典剧目)", "红楼梦(1989年版杨丽花电视歌仔戏)", "红楼梦(林奕华导演的舞台剧)", "红楼梦(2017年高占全执导电影)", "红楼梦(1995年陈淑桦演唱歌曲)", "红楼梦(白冰冰演唱歌曲)", "红楼梦(胡雁演唱歌曲)", "红楼梦(李克勤演唱歌曲)", "红楼梦(原创舞剧)", "红楼梦(王亚平演唱歌曲)", "红楼梦"]}

 

可以看到我们所想的红楼梦对应第一个实体:红楼梦(中国古典四大名著之一)

 

所以再次进行属性查询:

http://shuyantech.com/api/cndbpedia/value?q=红楼梦(中国古典四大名著之一)&attr=作者

返回:

{"status": "ok", "ret": ["原著:曹雪芹(清);续书:无名氏,程伟元、高鹗整理"]}

 

 

只是刚开始的一点小的学习心得,知识图谱的学习道阻且长。

猜你喜欢

转载自blog.csdn.net/qq_37857747/article/details/81100574
今日推荐