从这里提供的Freebase转储中,我需要找到两个实体之间的关系。
例如。
entity1 = "barack_obama"
entity2 = "USA"
get_relation_from_freebase(entity1, entity2) -> "President"
截至2018年,有没有一种简单的方法可以从RDF转储中做到这一点?如果我有大约 10k 个唯一的实体对,那么获取关系的最有效方法是什么(如果在 Freebase 中可用(?
注意:我正在尝试将大型语料库与自由基础关系对齐,以生成用于关系提取任务的训练样本。
另外,我看了以下问题 - 在这里和这里,我可以为几个域创建一个子集,但仍然没有找到检索关系的好方法。
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(,但会有一些多跳,包括你选择的例子。
如果您只对直接关系感兴趣,则可以获取实体作为其来源或目标的所有关系,并按关系另一端感兴趣的实体过滤这些关系。