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

时间:2015-02-04 12:50:06

标签: nlp stanford-nlp opennlp

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

  

拥有超过30年抑制病毒流行经验的医生爱丽丝·威尔逊与梦幻岛总裁会面   国家,John Doe,讨论解决新病毒的方法。

     

约翰·多伊将于下周与其他国家的州官员杰克·斯派洛会面,讨论一些问题   完全无关到所述先部分的文本。

Alice WilsonJohn Doe以及John DoeJack Sparrow之间存在关联。但是,Alice WilsonJack Sparrow之间没有真正的关系,除此之外它们都出现在同一文本中。

因此,结果对将是:

Alice Wilson, John Doe
John Doe, Jack Sparrow

我找到了一种使用Stanford CoreNLP的命名实体识别器从文本中提取人名的方法,因此有Alice WilsonJohn DoeJack Sparrow,但是我不确定如何找到它们之间的关系。 CoreNLP可以执行词性标注,可以使用SubjectVerbObject标记单词等。但是,我仍然没有看到解决所有问题的方法可以找到人名的可能变体,例如:

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.

关于如何处理这个问题的任何想法(代码是受欢迎的,但不是必要的)?

1 个答案:

答案 0 :(得分:2)

您可以查看句子中两个实体之间是否存在依赖关系路径。有关详细信息:http://nlp.stanford.edu/software/stanford-dependencies.shtml

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

您还可以查看开放式信息提取工具,例如http://reverb.cs.washington.edu