diff options
author | trevor.cohn <trevor.cohn@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-07-12 18:23:01 +0000 |
---|---|---|
committer | trevor.cohn <trevor.cohn@ec762483-ff6d-05da-a07a-a48fb63a330f> | 2010-07-12 18:23:01 +0000 |
commit | bd046a0cda7317f9dc2b68a33a0de5e21d7cbb16 (patch) | |
tree | 1c0359fcb0cd4b3ee90a1c6a9a301331d8646595 /gi/evaluation/extract_ccg_labels.py | |
parent | aaa0ad1ad9580d5eeb4fb790a937607d0ceefc4b (diff) |
Added slash limits
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@224 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'gi/evaluation/extract_ccg_labels.py')
-rw-r--r-- | gi/evaluation/extract_ccg_labels.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gi/evaluation/extract_ccg_labels.py b/gi/evaluation/extract_ccg_labels.py index 014e0399..5dd6eb65 100644 --- a/gi/evaluation/extract_ccg_labels.py +++ b/gi/evaluation/extract_ccg_labels.py @@ -60,12 +60,32 @@ def frontier(node, indices): else: return [node] +def project_heads(node): + #print 'project_heads', node + is_head = node.data.tag.endswith('-HEAD') + if node.children: + found = 0 + for child in node.children: + x = project_heads(child) + if x: + node.data.tag = x + found += 1 + assert found == 1 + elif is_head: + node.data.tag = node.data.tag[:-len('-HEAD')] + + if is_head: + return node.data.tag + else: + return None + for tline, eline in itertools.izip(tinfile, einfile): if tline.strip() != '(())': if tline.startswith('( '): tline = tline[2:-1].strip() tr = tree.parse_PST(tline) number_leaves(tr) + #project_heads(tr) # assumes Bikel-style head annotation for the input trees else: tr = None |