Skip to content

Commit 7a91696

Browse files
committed
tutorial.Parse template and transform.Flatten
the latter is a bit faster and shorter to write alternative for util.Eval node='node.parent=node.root'
1 parent 262ca32 commit 7a91696

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

udapi/block/transform/flatten.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
"""transform.Flatten block for flattening trees."""
2+
from udapi.core.block import Block
3+
4+
class Flatten(Block):
5+
"""Apply `node.parent = node.root` on all nodes."""
6+
7+
def process_node(self, node):
8+
node.parent = node.root

udapi/block/tutorial/parse.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"""tutorial.Parse block template.
2+
3+
Usage:
4+
udapy read.Conllu zone=gold files=sample.conllu \
5+
read.Conllu zone=pred files=sample.conllu \
6+
transform.Flatten zones=pred \
7+
tutorial.Parse zones=pred \
8+
eval.Parsing gold_zone=gold \
9+
util.MarkDiff gold_zone=gold \
10+
write.TextModeTreesHtml marked_only=1 files=parse-diff.html
11+
"""
12+
from udapi.core.block import Block
13+
14+
class Parse(Block):
15+
"""Dependency parsing."""
16+
17+
def process_tree(self, root):
18+
# TODO: Your task: implement a better heuristics than "right chain"
19+
for node in root.descendants:
20+
if node.next_node:
21+
node.parent = node.next_node

0 commit comments

Comments
 (0)