maxentcompatibilitymodel.java

来自「自然语言处理领域的一个开发包」· Java 代码 · 共 57 行

JAVA
57
字号
package opennlp.tools.coref.sim;import java.io.IOException;public class MaxentCompatibilityModel {    private final double minGenderProb = 0.66;  private final double minNumberProb = 0.66;    private static TestGenderModel genModel;  private static TestNumberModel numModel;    private boolean debugOn = false;    public MaxentCompatibilityModel(String corefProject) throws IOException {    genModel = GenderModel.testModel(corefProject + "/gen");    numModel = NumberModel.testModel(corefProject + "/num");  }  public Gender computeGender(Context c) {    Gender gender;    double[] gdist = genModel.genderDistribution(c);    if (debugOn) {      System.err.println("MaxentCompatibilityModel.computeGender: "+c.toString()+" m="+gdist[genModel.getMaleIndex()]+" f="+gdist[genModel.getFemaleIndex()]+" n="+gdist[genModel.getNeuterIndex()]);    }    if (genModel.getMaleIndex() >= 0 && gdist[genModel.getMaleIndex()] > minGenderProb) {      gender = new Gender(GenderEnum.MALE,gdist[genModel.getMaleIndex()]);    }    else if (genModel.getFemaleIndex() >= 0 && gdist[genModel.getFemaleIndex()] > minGenderProb) {      gender = new Gender(GenderEnum.FEMALE,gdist[genModel.getFemaleIndex()]);    }    else if (genModel.getNeuterIndex() >= 0 && gdist[genModel.getNeuterIndex()] > minGenderProb) {      gender = new Gender(GenderEnum.NEUTER,gdist[genModel.getNeuterIndex()]);    }    else {      gender = new Gender(GenderEnum.UNKNOWN,minGenderProb);    }    return gender;  }  public Number computeNumber(Context c) {    double[] dist = numModel.numberDist(c);    Number number;    //System.err.println("MaxentCompatibiltyResolver.computeNumber: "+c+" sing="+dist[numModel.getSingularIndex()]+" plural="+dist[numModel.getPluralIndex()]);    if (dist[numModel.getSingularIndex()] > minNumberProb) {      number = new Number(NumberEnum.SINGULAR,dist[numModel.getSingularIndex()]);    }    else if (dist[numModel.getPluralIndex()] > minNumberProb) {      number = new Number(NumberEnum.PLURAL,dist[numModel.getPluralIndex()]);    }    else {      number = new Number(NumberEnum.UNKNOWN,minNumberProb);    }    return number;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?