<span style="font-size:24px;">class Node
表示节点
本类的属性:
private static int nodeCount;表示节点数在树中此类节点的个数。即此节点类对象的实例个数。
private static int successorCount;后续数,此节点类的对象的后续节点数。
private static final Map<Pronunciation, WordNode> wordNodeMap = new HashMap<Pronunciation, WordNode>();
/* 以下个属性在树的构造期间可以是Map或树冰冻后是数组。转换成数组有利于节省内存。
**/
private Object successors;后续对象
private float logUnigramProbability;log域的单元语法概率。
本类的构造方法:
Node(float probability);创建一个节点对象,输入的是此节点的单元语法概率。
本类的方法:
public float getUnigramProbability();返回的是单元语法在log域的概率。即 logUnigramProbability属性。
private Node getSuccessor(Object key);给定一个对象,获得此节点的中与输入关键字匹配的后续节点。输入的:key是关键字对象,返回的是包含此节点对象的特定后续的节点。
void putSuccessor(Object key, Node child);添加孩子节点到后续集中。输入:key为关键字对象。Child为要添加的节点对象。把给定后续节点和其关键字放入此节点的后续节点集中。
public Map<Object, Node> getSuccessorMap();获得此节点对象的后续节点的map对象。此方法中map对象的长度为4.返回的存储此节点的后续节点的map。返回的是此节点对象的后续节点的map。
void freeze();冰冻节点,把节点的存储后续节点的map转换成数组列表。 Freeze the node. Convert the successor map into an array list。 本方法会把此节点后的所有直接后续和间接后续的节点存储后续节点的map都转换成数组形式来存储后续节点。
static void dumpNodeInfo() ;打印出此节点类信息,包括节点类实例的个数,后续数及平均数即后续总数来除以节点整数。
Node addSuccessor(HMM hmm, float probability);添加一个拥有一个hmm的节点到此节点对象的后续集中。如果此添加的节点已经存在于后续集中则不需在添加,返回的是已经存在的后续节点,如果不存在则根据输入的hmm创建一个新的节点,加入此节点的后续节点集中,返回的新建的节点。
WordNode addSuccessor(Pronunciation pronunciation, float probability);与上述的添加hmm的相似只是此返回添加的与给定发音相关的节点。其具体的处理过程一样。
void addSuccessor(WordNode wordNode);添加一个字节点到此对象的后续节点集中。
EndNode addSuccessor(EndNode child, float probability);添加一个endnode到此节点对象的后续集中,与添加hmm,发音相关的节点到后续集的处理过程是一样的。Probability为发生此转移的概率。如果原来的转移概率小于此概率,则用输入概率代替。否则不用。
private WordNode getWordNode(Pronunciation p, float probability);获得与输入的发音相关的字节点。如果存储发音和字节点的map中不存在此发音相关的字节点,则根据输入的发音和概率新建字节点,并放入map中。返回的是字节点。
UnitNode addSuccessor(UnitNode child) ;添加输入的单元节点到此节点对象的后续集中,与hmm,发音,endnode的处理相同。
Node[] getSuccessors();返回的是此节点对象的直接后续节点的数组形式。
public String toString();此节点的字符串表示。
</span>
Node API
最新推荐文章于 2024-09-07 08:00:00 发布