java 解析 树_java – 从解析树中获取某些节点

我正在研究一个涉及通过Hobbs算法进行回指解析的项目.我使用Stanford解析器解析了我的文本,现在我想操纵节点以实现我的算法.

目前,我不明白如何:

>根据其POS标签访问节点(例如,我需要以代词开头 – 我如何获得所有代词?).

>使用访客.我有点像Java的菜鸟,但在C中我需要实现一个访问者编程器然后处理它的钩子.我找不到Stanford Parser的Tree结构.那是jgrapht吗?如果是的话,你可以在代码片段中提供一些指示吗?

解决方法:

@ dhg的答案工作正常,但这里有两个其他选项,它们可能也有用了解:

> Tree类实现了Iterable.您可以在预先遍历遍历中遍历树的所有节点,或者严格地遍历每个节点的子树,其中:

for (Tree subtree : t) {

if (subtree.label().value().equals("PRP")) {

pronouns.add(subtree);

}

}

>您还可以通过使用tregex获得满足某些(可能非常复杂的模式)的节点,tregex的行为与java.util.regex相似,允许在树上进行模式匹配.你会有类似的东西:

TregexPattern tgrepPattern = TregexPattern.compile("PRP");

TregexMatcher m = tgrepPattern.matcher(t);

while (m.find()) {

Tree subtree = m.getMatch();

pronouns.add(subtree);

}

标签:java,nlp,stanford-nlp,jgrapht

来源: https://codeday.me/bug/20190713/1450891.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值