我正在尝试基于文本文档(非结构化数据)构建知识图谱。因此,我目前的方法是从数据中提取三元组并将它们发送到图形数据库,例如 neo4j 以进行进一步分析。然而我注意到的是,在三元组的构造中有很多,让我们称它们为“条件三元组”。一个例子:
text = "Donald Trump was president-elect for the republican party since July 2016"
提供以下“有趣”的三元组:
(Donald Trump, was, president-elect)
(Donald Trump, was president-elect for, republican party)
(Donald Trump, was president-elect for republican party since, July 2016)
We thus need three 4 nodes:
1. Donald Trump
2. president-elect
2. republican party
2. July 2016
这些是可能与图中其他实体有有趣关系的 4 个节点。然而,我的困难(或怀疑)在于关系,这些似乎非常具体和漫长。
我不确定这是否真的是一个问题,或者包含如此长的关系是否是最佳实践,例如was president-elect for republican party since
.
我考虑过创建遍历,例如:
(Donald Trump)-[was]->(president-elect)-[for]->(republican party)-[since]->(July 2016)
这提供了更“简单”的关系,但是这是独特的遍历,因此其他遍历president-elects
与该特定节点无关,for
或since
关系不再可以唯一地跟踪到Donald Trump
.
因此,我现在倾向于应用更长的关系。因此,我的问题是:这是一种最佳实践方法,还是我错过了替代解决方案?