我正在尝试在标准解析树上实现 TSurgeon(来自 core-nlp api)。我想要执行的操作是向我找到的节点添加一个前缀(例如,找到的节点是 NN,我想将其重命名为 Skip-NN)
我正在尝试的是:
TsurgeonPattern surgery = Tsurgeon.parseOperation("relabel target Skip-target");
for (TregexPattern pat : patterns) {
Tsurgeon.processPattern(pat, surgery, tree).pennPrint();
}
TregexPattern 使用的一个示例是 NP << NP=target
尽管您可能猜到结果类似于:
NP -> "Skip-target"
而不是NP -> "Skip-NP"
我对使用 TSurgeon 还很陌生,不确定在哪里寻找有关此类问题的信息。
编辑:基本上就是我要问的;有没有办法在重新标记节点时使用节点的当前标签。
最佳答案
您应该能够为此使用正则表达式。类似的东西
relabel target /^(.*)$/Skip-$1/
虽然您必须小心您的模式,但它必须忽略以 Skip-
开头的节点。
关于java - TSurgeon - 使用旧值重新标记节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231248/