Java 插入和删除类型化依赖项的转换规则
使用StanfordCorenlp,我提取了被动语态句子的所有类型依赖项。现在我想让它成为主动语态。为此,我必须删除并在其中插入一些新规则。比如说,如果我们用这样的句子 “猫被狗追赶。”然后,类型化的依赖关系表示形式如下: det(第2类,第1类) nsubjpass(槽式-4,第2类) auxpass(追逐-4,was-3) det(狗-7,狗-6) 探员(追捕-4,追捕-7) 点(凹槽-4、-8) 将上述内容转换为活动语音的转换规则需要三次删除和两次插入: 1.匹配并删除: (a) nsubjpass(?X0,?X1) (b) auxpass(?X0,?X2) (c) 药剂(?X0,?X3)Java 插入和删除类型化依赖项的转换规则,java,dependencies,stanford-nlp,Java,Dependencies,Stanford Nlp,使用StanfordCorenlp,我提取了被动语态句子的所有类型依赖项。现在我想让它成为主动语态。为此,我必须删除并在其中插入一些新规则。比如说,如果我们用这样的句子 “猫被狗追赶。”然后,类型化的依赖关系表示形式如下: det(第2类,第1类) nsubjpass(槽式-4,第2类) auxpass(追逐-4,was-3) det(狗-7,狗-6) 探员(追捕-4,追捕-7) 点(凹槽-4、-8) 将上述内容转换为活动语音的转换规则需要三次删除和两次插入: 1.匹配并删除: (a) nsub
现在我的问题是,如何将这些规则实现到java代码中。所以您想更改以下句子:
"The cat was chased by the dog."
进入:
?
如果我正在处理这个问题,我的第一反应就是使用规则生成新的句子字符串,然后用该文本重新生成一个新的注释对象
因此,我不会去编辑图表或其他注释,我只需要创建我想要的新字符串,然后重建依赖关系图
Annotation newSentenceAnnotation = new Annotation("The dog chased the cat.");
pipeline.annotate(newSentenceAnnotation);
所以你可以想象有这样一条规则:
Pattern: X was VERB by Y --> Y <VERB> X
Example: "The cat was chased by the dog." --> "The dog chased the cat."
以下是一些使用语义图的链接:
如果您查看我们最近发布的演示,会发现一个名为DependencyMatchFinder.java的类,它演示了如何从注释访问SemanticGraph:
Annotation newSentenceAnnotation = new Annotation("The dog chased the cat.");
pipeline.annotate(newSentenceAnnotation);