public static Tree NormalizeTree(Tree tree, TreeNormalizer tn, ITreeFactory tf) { foreach (Tree node in tree) { if (node.IsLeaf()) { node.Label().SetValue(tn.NormalizeTerminal(node.Label().Value())); } else { node.Label().SetValue(tn.NormalizeNonterminal(node.Label().Value())); } } return(tn.NormalizeWholeTree(tree, tf)); }
/// <summary>Read parse trees from a Reader.</summary> /// <param name="in">Reader</param> /// <param name="tf">TreeFactory -- factory to create some kind of Tree</param> /// <param name="tn">the method of normalizing trees</param> /// <param name="st">Tokenizer that divides up Reader</param> public PennTreeReader(Reader @in, ITreeFactory tf, TreeNormalizer tn, ITokenizer <string> st) { // misuse a list as a stack, since we want to avoid the synchronized and old Stack, but don't need the power and JDK 1.6 dependency of a Deque reader = @in; treeFactory = tf; treeNormalizer = tn; tokenizer = st; // check for whacked out headers still present in Brown corpus in Treebank 3 string first = (st.MoveNext() ? st.Peek() : null); if (first != null && first.StartsWith("*x*x*x")) { int foundCount = 0; while (foundCount < 4 && st.MoveNext()) { first = st.Current; if (first != null && first.StartsWith("*x*x*x")) { foundCount++; } } } }
public LabeledScoredTreeReaderFactory(ILabelFactory lf, TreeNormalizer tm) { this.lf = lf; this.tm = tm; }
public LabeledScoredTreeReaderFactory(TreeNormalizer tm) { lf = CoreLabel.Factory(); this.tm = tm; }
public LabeledScoredTreeReaderFactory(ILabelFactory lf) { this.lf = lf; tm = new BobChrisTreeNormalizer(); }
/// <summary>Create a new TreeReaderFactory with CoreLabel labels.</summary> public LabeledScoredTreeReaderFactory() { lf = CoreLabel.Factory(); tm = new BobChrisTreeNormalizer(); }
/// <summary> /// Adds the given tree normalizer to this combination; the tree normalizers /// are applied in the order they were added, with the first to be added being /// the first to be applied. /// </summary> public virtual void AddTreeNormalizer(TreeNormalizer tn) { this.tns.Add(tn); }
/// <summary>Read parse trees from a Reader.</summary> /// <param name="in">Reader</param> /// <param name="tf">TreeFactory -- factory to create some kind of Tree</param> /// <param name="tn">the method of normalizing trees</param> public PennTreeReader(Reader @in, ITreeFactory tf, TreeNormalizer tn) : this(@in, tf, tn, new PennTreebankTokenizer(@in)) { }
/// <summary>Create a new tree bank, using a specific TreeNormalizer.</summary> /// <remarks> /// Create a new tree bank, using a specific TreeNormalizer. /// The trees are made with a <code>LabeledScoredTreeReaderFactory</code>. /// <p/> /// <i>Compatibility note: Until Sep 2004, this used to create a Treebank /// with a SimpleTreeReaderFactory, but this was changed as the old /// default wasn't very useful, especially to naive users.</i> /// </remarks> public MemoryTreebank(TreeNormalizer tm) : this(new LabeledScoredTreeReaderFactory(tm)) { }
/// <summary> /// Specify your own /// <see cref="ITreeFactory"/> /// ; /// uses a /// <see cref="PennTreebankTokenizer"/> /// , and a /// <see cref="TreeNormalizer"/> /// . /// </summary> /// <param name="tf">The TreeFactory to use in building Tree objects to return.</param> /// <param name="tn">The TreeNormalizer to use</param> public PennTreeReaderFactory(ITreeFactory tf, TreeNormalizer tn) { this.tf = tf; this.tn = tn; }
/// <summary> /// Specify your own /// <see cref="TreeNormalizer"/> /// ; /// uses a /// <see cref="PennTreebankTokenizer"/> /// , and a /// <see cref="LabeledScoredTreeFactory"/> /// . /// </summary> /// <param name="tn">The TreeNormalizer to use in building Tree objects to return.</param> public PennTreeReaderFactory(TreeNormalizer tn) : this(new LabeledScoredTreeFactory(), tn) { }