从可用的Freebase转储here,我需要找到两个实体之间的关系。
EG。
entity1 = "barack_obama"
entity2 = "USA"
get_relation_from_freebase(entity1, entity2) -> "President"
截至2018年,是否有一种直接的方式从RDF转储中执行此操作? 如果我有大约10k个唯一实体对,那么获得该关系的最有效方法是什么?如果它在Freebase中可用?
注意:我正在尝试将大型语料库与freebase关系对齐,以生成relation extraction任务的训练样本。
答案 0 :(得分:1)
Freebase架构远不如你的问题所暗示的那么简单。
从内存中可以看出:
Governmental Office
.name President of the United States
.jurisdiction United States of America
.office_holders[]
Governmental Office Holder
.office ^entity above^
.term start <date>
.term end <date>
.office_holder Barak Obama
会有一些实体通过关系直接连接(例如Person.birthplace),但会有一些多跳,包括你选择的例子。
如果您只对直接关系感兴趣,您可以抓住实体作为源或目标的所有关系,并通过关系另一端的感兴趣实体过滤这些关系。