簡體   English   中英

在Tsurgeon中將節點插入樹中時如何命名節點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM