Nlp 检测文本中两个人之间的关系

Nlp 检测文本中两个人之间的关系,nlp,stanford-nlp,opennlp,Nlp,Stanford Nlp,Opennlp,目标是在一段文本中找出所有两人之间存在任何关系的人。特别是,如果我们有这段文字: 艾丽丝·威尔逊博士在抑制病毒流行方面有30多年的经验,她会见了梦幻岛的总裁 约翰·多伊(JohnDoe)将在全国范围内讨论应对新病毒的方法 约翰·多伊下周将与其他国家的州官员杰克·斯派洛会面,讨论一些事情 与正文的第一部分完全无关 在爱丽丝·威尔逊和约翰·多伊之间,以及约翰·多伊和杰克·斯派洛之间存在着一种关系。然而,Alice Wilson和Jack Sparrow之间没有真正的联系,除了它们出现在同一文本中 因

目标是在一段文本中找出所有两人之间存在任何关系的人。特别是,如果我们有这段文字:

艾丽丝·威尔逊博士在抑制病毒流行方面有30多年的经验,她会见了梦幻岛的总裁 约翰·多伊(JohnDoe)将在全国范围内讨论应对新病毒的方法

约翰·多伊下周将与其他国家的州官员杰克·斯派洛会面,讨论一些事情 与正文的第一部分完全无关

爱丽丝·威尔逊
约翰·多伊
之间,以及
约翰·多伊
杰克·斯派洛
之间存在着一种关系。然而,
Alice Wilson
Jack Sparrow
之间没有真正的联系,除了它们出现在同一文本中

因此,结果对为:

Alice Wilson, John Doe
John Doe, Jack Sparrow
我已经找到了一种使用斯坦福大学CoreNLP的命名实体识别器从文本中提取人名的方法,因此有了
爱丽丝·威尔逊
约翰·多伊
杰克·斯派洛
,但我不确定如何找到他们之间的关系。CoreNLP可以执行词性标记,它可以用
主语
动词
宾语
等标记单词。尽管如此,我仍然看不到一种方法来解决可以找到人名的所有可能变化,例如:

John Doe said that... <- 'John Doe' is a Subject
Jack Sparrow introduced John Doe to the senior officials... <- 'John Doe' is an Object
Jack Sparrow, John Doe's cousin, told the press... <- Not even sure what 'John Doe' here is.

约翰·多伊说 您可以查看句子中两个实体之间是否存在依赖路径。有关更多信息:

它不会100%准确,但足够好。为了提高准确性,可以修剪长度超过特定长度或具有特定相关性的路径


您还可以查看开放式信息提取工具,如

,只要它们在同一句话中,这是非常值得研究和可能的。请参阅@Sonal Gupta的答案。但是,如果你所说的“一段文本”指的是一个跨越一个以上句子、同义词和更复杂关系的实体,那么这将是一个更难的问题。想想看:“简·多伊是总统夫人。杰克·斯帕罗在第一夫人的陪伴下花了很多时间。”我研究了依赖图。但是,图形中的每两个节点之间不存在依赖路径吗?请举例说明两条边在同一路径上,两条边不在同一路径上,好吗;根据您的问题,您可以删减哪些类型的路径是可接受的。例如,不要考虑具有RCMOD的路径。在这句话中:“伊娃嫁给了约翰,约翰以前和伊兰结过婚。”伊娃和伊兰只能通过rcmod联系起来。我猜混响更适合你的需要。它建立在斯坦福式的依赖关系之上。PS:您可以在以下位置试用斯坦福工具: