目标是找到所有在一段文本中存在任何种关系的人。特别是,如果我们有这段文字:
拥有超过30年抑制病毒流行经验的医生爱丽丝·威尔逊与梦幻岛总裁会面 国家,John Doe,讨论解决新病毒的方法。
约翰·多伊将于下周与其他国家的州官员杰克·斯派洛会面,讨论一些问题 完全无关到所述先部分的文本。
Alice Wilson
和John Doe
以及John Doe
和Jack Sparrow
之间存在关联。但是,Alice Wilson
和Jack Sparrow
之间没有真正的关系,除此之外它们都出现在同一文本中。
因此,结果对将是:
Alice Wilson, John Doe
John Doe, Jack Sparrow
我找到了一种使用Stanford CoreNLP的命名实体识别器从文本中提取人名的方法,因此有Alice Wilson
,John Doe
和Jack Sparrow
,但是我不确定如何找到它们之间的关系。 CoreNLP可以执行词性标注,可以使用Subject
,Verb
,Object
标记单词等。但是,我仍然没有看到解决所有问题的方法可以找到人名的可能变体,例如:
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.
关于如何处理这个问题的任何想法(代码是受欢迎的,但不是必要的)?
答案 0 :(得分:2)
您可以查看句子中两个实体之间是否存在依赖关系路径。有关详细信息:http://nlp.stanford.edu/software/stanford-dependencies.shtml
它不会100%准确但足够好。为了提高准确性,您可以修剪长度超过特定长度或具有某些依赖关系的路径。
您还可以查看开放式信息提取工具,例如http://reverb.cs.washington.edu