Source code for udapi.block.tutorial.addcommas

"""tutorial.AddCommas block template."""
from udapi.core.block import Block

# nickname = xy123
# TODO: make up a unique nickname and edit the previous line
# if you want your results to be listed on the NPFL070 web (under that nickname).
# Delete the line if you don't want to listed on the web.

[docs] class AddCommas(Block): """Heuristically insert nodes for missing commas.""" def __init__(self, language='en', **kwargs): super().__init__(**kwargs) self.language = language
[docs] def process_node(self, node): # TODO: Your task: implement some heuristics if self.should_add_comma_before(node): comma = node.create_child(form=',', deprel='punct', upos='PUNCT') comma.shift_before_node(node)
[docs] def should_add_comma_before(self, node): prev_node = node.prev_node if prev_node is None: return False if self.language == 'en' and prev_node.lemma == 'however': return True if any(n.deprel == 'appos' for n in prev_node.children): return True return False