SentenceHMMState api

来源:互联网 发布:ug编程基础 编辑:程序博客网 时间:2024/04/27 18:55
<span style="font-size:24px;">public abstract class SentenceHMMState implements Serializable, SearchState代表了在sentenceHMM中的一个单独的状态。为抽象类。本类的属性:private final static int MASK_IS_FINAL = 0x1;private final static int MASK_COLOR_RED = 0x2;private final static int MASK_PROCESSED = 0x4;private final static int MASK_FAN_IN = 0x8;private final static int MASK_IS_WORD_START = 0x10;    private final static int MASK_IS_SHARED_STATE = 0x20;    private final static int MASK_WHICH = 0xffff;private final static int SHIFT_WHICH = 0x8;public static enum Color { RED, GREEN }一个color枚举,此用来标记SentenceHMM节点。private static int globalStateNumber = -1000;全局状态数。 private int stateNumber;若干在fileds中维护的分离变量。inorder to reduce the size of the SentenceHMM 。排序减少了SentenceHMM的的长度。private int fields;private String name;为状态的名字。private final Map<String, SentenceHMMStateArc> arcs;private SentenceHMMState parent;当前状态的父状态。在搜索图中为转移的前一状态。private String cachedName;private String fullName;private SentenceHMMStateArc[] successorArray;本类的构造方法:protected SentenceHMMState(String name, SentenceHMMState parent, int which);本类的方法:public boolean isWordStart();决定此状态是否标记了一个字的开始。如果是则返回为true。采用的是位的与运算,是通过位运算实现的。public void setWordStart(boolean wordStart);设置’wordstart’标志即字开始标志是根据wordStart来设置的。public boolean isSharedState();决定此状态是否为一个共享状态。如果状态标记了一个字的开始则返回为true。public void setSharedState(boolean shared);设置共享状态标志。如果此状态被被共享则返回为true。public Word getAssociatedWord();返回的是与此状态相关联的字,如果此状态没有关联字,则返回为null。返回的字是与特定单元相关联的。本方法返回的是句首的字。本方法会一直获得其父状态,返回的是第一个父状态相关的字。  public String getTypeLabel();获得一个短整型标记,此标记描述了状态的类型。一般,由此类的子类来实现此方法,并返回一个短整型(5chars或更少)标记。本类的实现中返回的是”start”标记。public boolean isFanIn();决定此状态是否为扇入(进入)状态。搜索也许必须调整对扇入状态的剪枝,因为它们被多条路径所共享。如果此状态是扇入状态则返回为true。public void setFanIn(boolean fanIn);设置扇入状态。是对fields其中的位进行设置。同时是通过fanIn来设置的。public void setProcessed(boolean processed);为此状态设置被处理过标志。此标记用来表示此状态是否被处理过。根据processed来设置。public boolean isProcessed();决定此状态是否已经被处理过。被处理过的具体意思不是在这里定义的,它是由更高的层次所定义的。如搜索管理。如果此状态被处理过返回为true。  public void resetAllProcessed();为此状态的及其所有的直接或间接后续状态设置其Process标记即被处理过标记。来表示其是否被处理过的。public WordSequence getWordHistory();获得此状态的历史字,即字历史,返回的是WordSequence。在本类中返回的是空的字序列。因此此方法应该由其子类来进行重写或重载。public int getNumSuccessors();返回的此状态的后续状态的数目(为直接后续)。也为弧的数量。public SearchStateArc[] getSuccessors();得到此状态的一个后续,返回的是所有的直接后续弧。为弧数组。public SentenceHMMState getLexState();返回的是lex树状态,在本类的此方法返回的就是本对象本身。为this。void deleteSuccessor(SentenceHMMStateArc arc);从此状态的直接弧(map)中删除特定的弧(句hmm状态弧),也就是输入的弧。arc为要删除的弧。private void rawConnect(SentenceHMMStateArc arc);连接指定的弧到此句hmm,不会影响到前趋的关系but don't affect the predecessor relation ship。方法的实际是获得输入弧的状态,并把此状态字符串和输入弧放入本对象的arc的map中。添加状态数是因为状态签名不一定是独特的。public void connect(SentenceHMMStateArc arc);连接弧到此句hmm。如果弧结尾处的节点已经指向了其它节点正如它的前驱,不要改变它的关系。在本方法中会使successorArray数组为null。但是不会改变arc弧 mappublic boolean isEmitting();决定此状态是否为一个发射状态。本类此方法返回的为false。  public boolean isFinal();决定此状态是否为一个结束状态即final状态。是返回为true。通过位运算实现。public void setFinalState(boolean state);为此状态设置final标记即结束标记。根据state输入来设置。public boolean isUnit();决定此状态是否为一个单元状态。是返回为true。在本类的此方法中返回为false。public void dumpAll();打印出此状态及所有的直接和间接后续状态。本方法仅仅为调试用。protected String getAnnotation();返回的是此状态的注释,在本抽象类中返回的是””即空字符串。  private void dump();打印出此状态对象。包括其名字和所有的直接后续状态名。  public void validateAll();空的方法,由子类实现。本方法用来验证此状态及其子((直接和间接)后续)状态的合法性。public String getName();获得此状态的名字。返回的是name属性。public String getPrettyName();返回的是此HMM的一个pretty名字,在本类的此方法返回的getname()方法,那么所得到的是此状态的name属性即其名字。  public String toString();返回的是此状态的字符串表示。public String toPrettyString();返回的此状态类对象的字符串表示的Pretty版本的表示。本类此方法返回的是toString()方法。即其字符串表示。public String getFullName();获得此状态的fullname,即全名。如果其父状态存在返回的是:本类的对象的名字和其父类对象的名字。父类对象的名字包括第一个父类到最后一个父状态的名字。public String getSignature();得到此状态的签名。本类此方法返回的是getFullName();因此返回的是此状态的fullname,即全名。如果其父状态存在返回的是:本类的对象的名字和其父类对象的名字。父类对象的名字包括第一个父类到最后一个父状态的名字。public String getTitle();返回的是此状态的标题(为fullname + stateNumber)。  public int getWhich();获得此状态字的索引。返回的是索引值。public void setWhich(int which);为此状态设置其索引值。 public SentenceHMMState getParent();获得父状态即parent属性。如果没有则为null。。public SentenceHMMStateArc findArc(SentenceHMMState state);得到的是指向此状态的的一条弧。State为弧所指向的状态。返回为弧或者null。public String getValueSignature();返回的是此单元的ValueSignature值签名,在本类此方法中返回的是getFullName();因此返回的是本状态的FullName。public static boolean visitStates(SentenceHMMStateVisitor visitor,SentenceHMMState start, boolean sorted);输入参数:visitor为状态访问器。用来访问状态。Start开始搜索状态。Sorted表示访问之前是否对所有的状态进行排序。如果从start状态开始的所有的直接和间接的状态。只要对其中的任何一个的访问visitor.visit(state)返回为true,则本方法返回为true,否则为false。public void setColor(Color color);为此节点(状态)设置其颜色。  public Color getColor();获得此节点(状态)的颜色。private int getStateNumber();获得此状态的状态数。即StateNumber属性。public static Set<SentenceHMMState> collectStates(SentenceHMMState start);输入参数:start为开始搜索处的状态。返回的是所收集的状态的集合。收集从给定状态开始的所有状态。包括直接后续和间接后续即后续的后续。abstract public int getOrder();返回的是此状态的Order(阶?深度)。本方法由子类实现。所有可实例化的子类都需实现此方法。public static boolean visitStates(SentenceHMMStateVisitor visitor,SentenceHMMState start, boolean sorted);输入参数:visitor为状态访问者(器)。Start开始搜索的位置即从哪里开始搜索。Sorted如果为true则在访问之前状态都必须被分类。本方法只要start状态后的被排序后直接或者间接后续状态中的任何一个状态可以被访问即访问后的结果返回为true表示可以被访问则返回为true。如果都不能被访问则返回为false。</span>

0 0
原创粉丝点击