1

此处可用的 Freebase 转储中,我需要找到两个实体之间的关系。

例如。

entity1 = "barack_obama"  
entity2 = "USA"  
get_relation_from_freebase(entity1, entity2) -> "President"

截至 2018 年,是否有一种直接的方法可以从 RDF 转储中做到这一点?如果我有大约 10k 个唯一实体对,那么获取关系的最有效方法是什么,如果它在 Freebase 中可用?

注意:我正在尝试将大型语料库与 freebase 关系对齐,以生成用于关系提取任务的训练样本。

此外,我查看了以下问题 -此处此处,我可以为少数域创建一个子集,但仍然没有找到检索关系的好方法。

4

1 回答 1

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),但有一些多跳,包括您选择的示例。

如果您只对直接关系感兴趣,则可以只获取实体作为源或目标的所有关系,并通过关系另一端感兴趣的实体过滤这些关系。

于 2018-03-05T05:51:36.127 回答