package edu.stanford.nlp.parser.tools; import edu.stanford.nlp.util.logging.Redwood; import java.util.Set; import edu.stanford.nlp.parser.lexparser.LexicalizedParser; import edu.stanford.nlp.util.Generics; /** * Loads a LexicalizedParser and tries to get its tag list. * * @author John Bauer */ public class PrintTagList { /** A logger for this class */ private static Redwood.RedwoodChannels log = Redwood.channels(PrintTagList.class); public static void main(String[] args) { String parserFile = null; for (int argIndex = 0; argIndex < args.length; ) { if (args[argIndex].equalsIgnoreCase("-model")) { parserFile = args[argIndex + 1]; argIndex += 2; } else { String error = "Unknown argument " + args[argIndex]; log.info(error); throw new RuntimeException(error); } } if (parserFile == null) { log.info("Must specify a model file with -model"); System.exit(2); } LexicalizedParser parser = LexicalizedParser.loadModel(parserFile); Set<String> tags = Generics.newTreeSet(); for (String tag : parser.tagIndex) { tags.add(parser.treebankLanguagePack().basicCategory(tag)); } System.out.println("Basic tags: " + tags.size()); for (String tag : tags) { System.out.print(" " + tag); } System.out.println(); System.out.println("All tags size: " + parser.tagIndex.size()); Set<String> states = Generics.newTreeSet(); for (String state : parser.stateIndex) { states.add(parser.treebankLanguagePack().basicCategory(state)); } System.out.println("Basic states: " + states.size()); for (String tag : states) { System.out.print(" " + tag); } System.out.println(); System.out.println("All states size: " + parser.stateIndex.size()); System.out.println("Unary grammar size: " + parser.ug.numRules()); System.out.println("Binary grammar size: " + parser.bg.numRules()); } }