我正在尝试基于文本文档(非结构化数据)构建知识图。因此,我目前的方法是从数据中提取三元组并将其发送到图形数据库,例如neo4j进行进一步分析。但是我注意到的是,在三元组的构造中,有很多我们称之为“条件三元组”。一个例子: text = "Donald Trump was president-elect for the republican party since July 2016" 提供以下“有趣的”三元组:
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)
因此,我们需要三个4个节点:1.唐纳德·特朗普2.当选总统2.共和党2. 2016年7月
这些是可能与图中其他实体有有趣关系的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。
(Donald Trump)-[was]->(president-elect)-[for]->(republican party)-[since]->(July 2016)
结果,我现在倾向于应用更长的关系。因此,我的问题是:这是一种最佳实践方法,还是我缺少其他解决方案?