package edu.stanford.nlp.trees; import edu.stanford.nlp.ling.Label; import java.util.function.Function; /** * Transforms trees by turning the labels into their basic categories * according to the * {@link edu.stanford.nlp.trees.TreebankLanguagePack} * * @author John Bauer */ public class BasicCategoryTreeTransformer extends RecursiveTreeTransformer implements Function<Tree, Tree> { final TreebankLanguagePack tlp; public BasicCategoryTreeTransformer(TreebankLanguagePack tlp) { this.tlp = tlp; } @Override public Label transformNonterminalLabel(Tree tree) { if (tree.label() == null) { return null; } return tree.label().labelFactory().newLabel(tlp.basicCategory(tree.label().value())); } public Tree apply(Tree tree) { return transformTree(tree); } }