2/13
3. 多跳查询
多跳查询即形如"姚明的女儿的身高"的查询,即"姚明:女儿"查询得到的是实体"姚明"的一个属性,但同时这
个属性值也作为一个实体存在于数据集中,那么就可以接着对该实体继续查询其属性。
语法规则
输入: 实体:属性1:属性2(:属性3...)
示例输入
姚明:女儿:母亲
姚明:女儿:母亲:身高
4. 根据属性值查询实体
输入多对 [属性名 opearotr 属性值], 它们之间的关系可以是AND, OR,NOT,同时属性值可以是等于,
大于,小于一个输入值,返回满足这些属性限制的实体(由于显示原因返回10个)。
语法规则
输入: [(NOT) 属性名 op 属性值] [AND | OR] [(NOT) 属性名 op 属性值] ...
操作符operator:
3/13
: 等于
< 小于
> 大于
<= 小于等于
>= 大于等于
示例输入
职业:足球运动员 AND 国籍:中国
职业:足球运动员 AND not 国籍:中国
职业:足球运动员 OR 职业:篮球运动员 ANd 国籍:中国
职业:足球运动员 and 身高>200
职业:篮球运动员 and 身高>200 and 国籍:中国
2. 环境准备
2.1 elasticsearch安装
去官网找到elasticsearch的安装包,下载.
运行安装包目录下的/bin/elasticsearch.sh(在windows上运行/bin/elasticsearch.bat,本实
验在ubuntu上完成,后续步骤涉及到一些linux 指令)
注意:该命令已经运行了elasticsearch. 可能提示不能在root账户下运行,此时请切换到非root账
户下运行。如果想让elasticsearch在后台一直运行,在上述命令最后加-d参数即可。
至此,安装完成。可以通过访问本地9200端口来访问elasticsearch:
curl 'http://localhost:9200'
注:可通过修改配置文件使elasticsearch可以远程访问
4/13
3. 数据准备
实验所使用的数据集为一个基于cnschema标准的人物属性数据集。该数据集由三元组组成,每个三元组描述
一个人物实体的某个属性。在将此数据集导入elasticsearch之前,需要考虑其在elasticsearch中存储的
方式。最简单的方式就是将每个三元组视作一个文档,其中包含3个字段, 分别为三元组的(subject,
predicate, object). 但本实验采取的是另一种方式,即:一个实体的所有属性和属性值为一个文档。 具
体细节及原因见下述。
3.1 知识库格式转换 (preprocess.py)
实验所使用的数据集的格式如下:
A.J.万德 affiliation 篮球
A.J.万德 description A.J.万德(A.J. Wynder),1964年出生,前美国篮球运动员。
A.J.万德 nationality 美国
A.J.万德 weight 82公斤
A.J.库克 birthDate 1978年7月22日
A.J.库克 birthPlace #加拿大安大略省奥沙瓦
A.J.库克 description A.J.库克(A.J. Cook),1978年7月22日在加拿大安大略省奥沙瓦出
生,演员。|||1997年出道在电视电影《父亲大人》饰演了配
角Lisa 。1999年在电影处女作《处女之死》中饰演五女儿之一的Mary Lisbon 。2003年在电影
《死神来了2》中出演主角 。2005年开始在CBS美剧《犯罪
心理》饰演常驻角色Jennifer Jareau;2010年短暂离开《犯罪心理》剧组,2011年重新回归再次
成为常驻角色 。2011年还在电视电影《带艾瑟莉回家》
中饰演主角Libba并凭借此片提名棱镜奖迷你剧或电视电影最佳表演奖 。
A.J.库克 height 1.69m
A.J.库克 nationality 加拿大
A.J.库克 代表作品 《死神来了2》
A.J.库克 职业 演员
A.J.英格利什 birthDate 1967年7月11日
A.J.英格利什 description A·J·英格利什(英语全名:Albert Jay English,1967年7月11日
-),为美国NBA联盟的前职业篮球运动员。他在1990年的N
BA选秀中第2轮第10顺位被华盛顿子弹选中。
A.J.英格利什 nationality 美国
elasticsearch要求文档的输入格式为json。将实验数据集转化为json格式后,每个实体对应一个json的
object,也即elasticsearch中的一个文档:
{
"subj":"A.J.万德",
"weight":"82公斤",
"height":None,
"po":[{"pred":"affiliation","obj":"篮球"},
{"pred":"description","obj":"A.J.万德(A.J. Wynder),1964年出生,前美
国篮球运动员。"},
{"pred":"nationality","obj":"美国"},
]
}
评论0