/** {@inheritDoc} */ public HeadFinder headFinder() { return new TigerHeadFinder(this); }
public String basicCategory(String category) { if (category == null) { return null; } return category.substring(0, postBasicCategoryIndex(category)); }
String motherCat = basicCategory(t.label().value()); if (DEBUG) { System.err.println("Looking for head of " + t.label() + System.err.println(" Using defaultRule"); return traverseLocate(t.children(), defaultRule, true); } else { return null; theHead = traverseLocate(t.children(), how[i], deflt); if (theHead != null) { break;
private int postBasicCategoryIndex(String category) { boolean sawAtZero = false; char seenAtZero = '\u0000'; int i = 0; for (int leng = category.length(); i < leng; i++) { char ch = category.charAt(i); if (isLabelAnnotationIntroducingCharacter(ch)) { if (i == 0) { sawAtZero = true; seenAtZero = ch; } else if (sawAtZero && ch == seenAtZero) { sawAtZero = false; } else { break; } } } return i; }
/** Vends a "semantic" NegraHeadFinder---one that disprefers modal/auxiliary verbs as the heads of S or VP. * * @return a NegraHeadFinder that uses a "semantic" head-finding rule for the S category. */ public static HeadFinder tigerSemanticHeadFinder() { TigerHeadFinder result = new TigerHeadFinder(); result.nonTerminalInfo.put("S", new String[][]{{result.right, "VVFIN", "VVIMP"}, {"right", "VP","CVP"}, { "right", "VMFIN", "VAFIN", "VAIMP"}, {"right", "S","CS"}}); result.nonTerminalInfo.put("VP", new String[][]{{"right","VVINF","VVIZU","VVPP"}, {result.right, "VZ", "VAINF", "VMINF", "VMPP", "VAPP", "PP"}}); result.nonTerminalInfo.put("VZ", new String[][]{{result.right,"VVINF","VAINF","VMINF","VVFIN","VVIZU"}}); // note that VZ < VVIZU is very rare, maybe shouldn't even exist. return result; }
public NegraPennTreebankParserParams() { super(new NegraPennLanguagePack(defaultLeaveGF, defaultGFCharacter)); //wsg2010: Commented out by Roger? //return new NegraHeadFinder(); //return new LeftHeadFinder(); headFinder = new TigerHeadFinder(); // override output encoding: make it UTF-8 setOutputEncoding("UTF-8"); }