如何在知识图中建模条件三元组
How to model conditional triples in a knowledge graph
我正在尝试基于文本文档(非结构化数据)构建知识图谱。因此,我目前的方法是从数据中提取三元组并将它们发送到图形数据库,例如Neo4j 进行进一步分析。然而,我注意到在三元组的构造中有很多,我们称它们为 'conditional triples'。一个例子:
text = "Donald Trump was president-elect for the republican party since July 2016"
提供以下 'interesting' 个三元组:
(Donald Trump, was, president-elect)
(Donald Trump, was president-elect for, republican party)
(Donald Trump, was president-elect for republican party since, July 2016)
因此我们需要三个 4 节点:
1.唐纳德·特朗普
2. president-elect
2. 共和党
2. 2016 年 7 月
这些是可能与图中其他实体有有趣关系的 4 个节点。然而,我的困难(或怀疑)是关系,这些似乎非常具体和漫长。
我不确定这是否真的是一个问题,或者包括如此长的关系是否是最佳实践,例如 was president-elect for republican party since
。
我考虑过创建像这样的遍历:
(Donald Trump)-[was]->(president-elect)-[for]->(republican party)-[since]->(July 2016)
这提供了更多 'simple' 关系,但是这要么是唯一遍历使得其他 president-elects
与该特定节点无关,要么如果不是唯一遍历,则其他总统-elects 与同一节点相关,但 for
和 since
关系无法再唯一跟踪到 Donald Trump
.
因此,我现在倾向于应用更长的关系。因此,我的问题是:这是最佳实践方法,还是我缺少替代解决方案?
这是一个可能的数据模型:
(:Person {name:"Donald Trump"})-[:ACHIEVED {date:'2016-07-01'}]->(pos:Position)
(pos)-[:HAS_TITLE]->(:Title {name:"President Elect"})
(pos)-[:FOR_PARTY]->(:Party {name:"Republican"})
Person
、Title
和 Party
节点是唯一的。
你是如何提取那些三胞胎的。
我建议使用 NER 和 POS 从数据中提取知识。然后根据可用的实体,您可以设计图表
我正在尝试基于文本文档(非结构化数据)构建知识图谱。因此,我目前的方法是从数据中提取三元组并将它们发送到图形数据库,例如Neo4j 进行进一步分析。然而,我注意到在三元组的构造中有很多,我们称它们为 'conditional triples'。一个例子:
text = "Donald Trump was president-elect for the republican party since July 2016"
提供以下 'interesting' 个三元组:
(Donald Trump, was, president-elect)
(Donald Trump, was president-elect for, republican party)
(Donald Trump, was president-elect for republican party since, July 2016)
因此我们需要三个 4 节点:
1.唐纳德·特朗普
2. president-elect
2. 共和党
2. 2016 年 7 月
这些是可能与图中其他实体有有趣关系的 4 个节点。然而,我的困难(或怀疑)是关系,这些似乎非常具体和漫长。
我不确定这是否真的是一个问题,或者包括如此长的关系是否是最佳实践,例如 was president-elect for republican party since
。
我考虑过创建像这样的遍历:
(Donald Trump)-[was]->(president-elect)-[for]->(republican party)-[since]->(July 2016)
这提供了更多 'simple' 关系,但是这要么是唯一遍历使得其他 president-elects
与该特定节点无关,要么如果不是唯一遍历,则其他总统-elects 与同一节点相关,但 for
和 since
关系无法再唯一跟踪到 Donald Trump
.
因此,我现在倾向于应用更长的关系。因此,我的问题是:这是最佳实践方法,还是我缺少替代解决方案?
这是一个可能的数据模型:
(:Person {name:"Donald Trump"})-[:ACHIEVED {date:'2016-07-01'}]->(pos:Position)
(pos)-[:HAS_TITLE]->(:Title {name:"President Elect"})
(pos)-[:FOR_PARTY]->(:Party {name:"Republican"})
Person
、Title
和 Party
节点是唯一的。
你是如何提取那些三胞胎的。 我建议使用 NER 和 POS 从数据中提取知识。然后根据可用的实体,您可以设计图表