[英]How to name a node when insert it into the tree in Tsurgeon
當我在Stanford Parser API中使用Tsurgeon時,我想知道在將節點插入語法樹時如何命名節點。
例如,我有兩個操作:
Tsurgeon.parseOperation("replace predphrase (MAINVP=newpred > PLACEHOLDER)");//Step 1
Tsurgeon.parseOperation("insert predphrase >-1 > newpred")//Step 2
完成這些操作后,樹(A(B(predphrase ...))變為(A(MAINVP(B = predphrase ...))))。
但是,我發現它在步驟1中無法命名MAINVP節點,並且在步驟2中的操作無法找到名為newpred的節點並引發異常。
您需要在單個命令中提供多個Tsurgeon模式,以便第二個模式可以訪問在第一個模式中創建的命名節點。 使用方括號可以做到這一點:
TsurgeonPattern t = Tsurgeon.parseOperation(
"[replace predphrase (MAINVP=newpred > PLACEHOLDER)]" +
"[insert predphrase >-1 > newpred]");
我認為您想要進行修改的更簡單方法如下:
[adjoinF (MAINVP > foot@) predphrase]
這會將匹配的節點predphrase
放置在新的MAINVP
樹中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.