numberer.java

来自「Standord Classifier实现了一个基于Java的最大熵分类器。用于」· Java 代码 · 共 113 行

JAVA
113
字号
package edu.stanford.nlp.util;import java.util.*;import java.io.Serializable;/** Gives a unique integer serial numbers to a family of objects, identified *  by a name space. *  @author Dan Klein */public class Numberer implements Serializable {  private static Map numbererMap = new HashMap();  public static Map getNumberers() { return numbererMap; }  public static void setNumberers(Map numbs) { numbererMap = numbs; }  public static Numberer getGlobalNumberer(String type) {    Numberer n = (Numberer) numbererMap.get(type);    if (n==null) {      n = new Numberer();      numbererMap.put(type, n);    }    return n;  }  public static int number(String type, Object o) {    return getGlobalNumberer(type).number(o);  }  public static Object object(String type, int n) {    return getGlobalNumberer(type).object(n);  }  public static int translate(String sourceType, String targetType, int n) {    return getGlobalNumberer(targetType).number(getGlobalNumberer(sourceType).object(n));  }  private int total;  private Map intToObject;  private Map objectToInt;  private MutableInteger tempInt;  private boolean locked = false;  public int total() {    return total;  }  public void lock() {    locked = true;  }  public boolean hasSeen(Object o) {    return objectToInt.keySet().contains(o);  }  public int number(Object o) {    MutableInteger i = (MutableInteger)objectToInt.get(o);    if (i == null) {      if (locked) {	throw new NoSuchElementException();      }      i = new MutableInteger(total);      total++;      objectToInt.put(o,i);      intToObject.put(i,o);    }    return i.intValue();  }  public Object object(int n) {    tempInt.set(n);    return intToObject.get(tempInt);  }  public String toString() {    StringBuffer sb = new StringBuffer();    sb.append("[");    for (int i=0; i<total; i++) {      sb.append(i);      sb.append("->");      sb.append(object(i));      if (i < total-1)	sb.append(", ");    }    sb.append("]");    return sb.toString();  }  public Numberer() {    total = 0;    tempInt = new MutableInteger();    intToObject = new HashMap();    objectToInt = new HashMap();  }  private static final long serialVersionUID = 1L;}

⌨️ 快捷键说明

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