public static TrainSimilarityModel trainModel(String name) throws IOException { GenderModel gm = new GenderModel(name, true); return gm; }
private GenderEnum getGender(List<Context> entity) { for (Iterator<Context> ci = entity.iterator(); ci.hasNext();) { Context ec = ci.next(); GenderEnum ge = getGender(ec); if (ge != GenderEnum.UNKNOWN) { return ge; } } return GenderEnum.UNKNOWN; }
public static void main(String[] args) throws IOException { if (args.length == 0) { System.err.println("Usage: GenderModel modelName < tiger/NN bear/NN"); System.exit(1); } String modelName = args[0]; GenderModel model = new GenderModel(modelName, false); //Context.wn = new WordNet(System.getProperty("WNHOME"), true); //Context.morphy = new Morphy(Context.wn); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); for (String line = in.readLine(); line != null; line = in.readLine()) { String[] words = line.split(" "); double[] dist = model.genderDistribution(Context.parseContext(words[0])); System.out.println("m="+dist[model.getMaleIndex()] + " f=" +dist[model.getFemaleIndex()]+" n="+dist[model.getNeuterIndex()]+" "+model.getFeatures(Context.parseContext(words[0]))); } }
Integer key = ei.next(); List<Context> entityContexts = (List<Context>) entities.get(key); GenderEnum gender = getGender(entityContexts); if (gender != null) { if (gender == GenderEnum.MALE) { GenderEnum gender = getGender(ec); if (gender == GenderEnum.MALE) { males.add(ec); addEvent(GenderEnum.MALE.toString(), ec); addEvent(GenderEnum.FEMALE.toString(), ec); addEvent(GenderEnum.NEUTER.toString(), ec);
private void addEvent(String outcome, Context np1) { List<String> feats = getFeatures(np1); events.add(new Event(outcome, feats.toArray(new String[feats.size()]))); }
public MaxentCompatibilityModel(String corefProject) throws IOException { genModel = GenderModel.testModel(corefProject + "/gen"); numModel = NumberModel.testModel(corefProject + "/num"); }
private GenderModel(String modelName, boolean train) throws IOException { this.modelName = modelName; maleNames = readNames(modelName+".mas"); femaleNames = readNames(modelName+".fem"); if (train) { events = new ArrayList<Event>(); } else { //if (MaxentResolver.loadAsResource()) { // testModel = (new BinaryGISModelReader(new DataInputStream(this.getClass().getResourceAsStream(modelName)))).getModel(); //} testModel = (new SuffixSensitiveGISModelReader(new File(modelName+modelExtension))).getModel(); maleIndex = testModel.getIndex(GenderEnum.MALE.toString()); femaleIndex = testModel.getIndex(GenderEnum.FEMALE.toString()); neuterIndex = testModel.getIndex(GenderEnum.NEUTER.toString()); } }
public static void main(String[] args) throws IOException { if (args.length == 0) { System.err.println("Usage: GenderModel modelName < tiger/NN bear/NN"); System.exit(1); } String modelName = args[0]; GenderModel model = new GenderModel(modelName, false); //Context.wn = new WordNet(System.getProperty("WNHOME"), true); //Context.morphy = new Morphy(Context.wn); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); for (String line = in.readLine(); line != null; line = in.readLine()) { String[] words = line.split(" "); double[] dist = model.genderDistribution(Context.parseContext(words[0])); System.out.println("m=" + dist[model.getMaleIndex()] + " f=" + dist[model.getFemaleIndex()] + " n=" + dist[model.getNeuterIndex()] + " " + model.getFeatures(Context.parseContext(words[0]))); } }
Integer key = ei.next(); List<Context> entityContexts = (List<Context>) entities.get(key); GenderEnum gender = getGender(entityContexts); if (gender != null) { if (gender == GenderEnum.MALE) { GenderEnum gender = getGender(ec); if (gender == GenderEnum.MALE) { males.add(ec); addEvent(GenderEnum.MALE.toString(), ec); addEvent(GenderEnum.FEMALE.toString(), ec); addEvent(GenderEnum.NEUTER.toString(), ec);
public double[] genderDistribution(Context np1) { List<String> features = getFeatures(np1); if (debugOn) { //System.err.println("GenderModel.genderDistribution: "+features); } return testModel.eval(features.toArray(new String[features.size()])); }
public MaxentCompatibilityModel(String corefProject) throws IOException { genModel = GenderModel.testModel(corefProject + "/gen"); numModel = NumberModel.testModel(corefProject + "/num"); }
private GenderModel(String modelName, boolean train) throws IOException { this.modelName = modelName; maleNames = readNames(modelName + ".mas"); femaleNames = readNames(modelName + ".fem"); if (train) { events = new ArrayList<Event>(); } else { //if (MaxentResolver.loadAsResource()) { // testModel = (new BinaryGISModelReader(new DataInputStream( // this.getClass().getResourceAsStream(modelName)))).getModel(); //} testModel = (new SuffixSensitiveGISModelReader(new File(modelName + modelExtension))).getModel(); maleIndex = testModel.getIndex(GenderEnum.MALE.toString()); femaleIndex = testModel.getIndex(GenderEnum.FEMALE.toString()); neuterIndex = testModel.getIndex(GenderEnum.NEUTER.toString()); } }
public double[] genderDistribution(Context np1) { List<String> features = getFeatures(np1); if (debugOn) { //System.err.println("GenderModel.genderDistribution: "+features); } return testModel.eval(features.toArray(new String[features.size()])); }
public static TestGenderModel testModel(String name) throws IOException { GenderModel gm = new GenderModel(name, false); return gm; }
private GenderEnum getGender(List<Context> entity) { for (Iterator<Context> ci = entity.iterator(); ci.hasNext();) { Context ec = ci.next(); GenderEnum ge = getGender(ec); if (ge != GenderEnum.UNKNOWN) { return ge; } } return GenderEnum.UNKNOWN; }
private void addEvent(String outcome, Context np1) { List<String> feats = getFeatures(np1); events.add(new Event(outcome, feats.toArray(new String[feats.size()]))); }
public static TestGenderModel testModel(String name) throws IOException { GenderModel gm = new GenderModel(name, false); return gm; }
public static TrainSimilarityModel trainModel(String name) throws IOException { GenderModel gm = new GenderModel(name, true); return gm; }