|
| 1 | +"""Block ud.ro.FixFixed |
| 2 | + |
| 3 | +Author: Dan Zeman |
| 4 | +""" |
| 5 | +import logging |
| 6 | + |
| 7 | +from udapi.core.block import Block |
| 8 | + |
| 9 | + |
| 10 | +class FixFixed(Block): |
| 11 | + """Block for fixing verbal 'fixed' expressions.""" |
| 12 | + |
| 13 | + def process_node(self, node): |
| 14 | + if node.upos=='VERB': |
| 15 | + fixchildren = [x for x in node.children if x.udeprel=='fixed'] |
| 16 | + nfc = len(fixchildren) |
| 17 | + if nfc==1 and fixchildren[0].upos == 'NOUN': |
| 18 | + fixchildren[0].deprel = 'obj' |
| 19 | + elif nfc==2 and fixchildren[1].upos == 'NOUN': |
| 20 | + fixchildren[0].parent = fixchildren[1] |
| 21 | + fixchildren[0].deprel = 'case' |
| 22 | + fixchildren[1].deprel = 'obl' |
| 23 | + elif nfc>0: |
| 24 | + logging.info('Another case: '+node.lemma+' '+' '.join([x.form for x in fixchildren])) |
0 commit comments