GrammarPoint API

来源:互联网 发布:钛度科技淘宝 编辑:程序博客网 时间:2024/05/23 11:02
<span style="font-size:24px;">public class GrammarPoint管理在语法中的一个特定的指针。语法指针被用来管理产生右场景的前向。因为我们没有建立hmm树,前向是困难的。语法指针类指向一个特定的包含一个发音或字或语法的单元。从一个特定的语法点,有可能得到下一个语法指针的集合。本类的属性:private GrammarNode node;      语法节点private int alternativeIndex;     在语法中的哪个可选择。即可选择状态索引。即是哪个可选择的状态private int wordIndex;        在可选择中哪个字是可选择的。即是哪个字状态。private int pronunciationIndex;    在字中是哪个发音 ,即是哪个发音状态private int unitIndex;         在发音中是哪个单元即是哪个单元状态private static boolean bounded;是否达到了边境。本类的构造方法:  public GrammarPoint(SentenceHMMState state);创建一个指向给定发音状态的给定单元状态的语法指针。输入为感兴趣的发音状态。public GrammarPoint(GrammarNode node);创建一个指向给定语法节点的第一个字的第一个发音的第一个单元的语法指针。输入node为感兴趣的语法节点。public GrammarPoint(PronunciationState state, int which);创建一个相应于给定发音的给定单元的语法指针。输入:state为发音状态。Which为单元的索引。public GrammarPoint(GrammarNode node, int alternativeIndex,int wordIndex, int pronunciationIndex, int unitIndex);创建一个指向完全确定的单元的语法指针。输入:node为语法节点。alternativeIndex为在语法节点中的哪个可选择alternative状态。wordIndex为在一个节点中的字的索引。pronunciationIndex为在字中的发音的索引。unitIndex为在发音中的单元的索引。本类的方法:private Unit getUnit();获得在语法中的与此指针相关的单元。返回为单元或null。private Unit getUnitOrFill();获得与在语法中的此指针相关的单元。如果没有此单元,则返回一个静音填充单元。static void setBounded(boolean state);设置边界配置标志 。输入:state为true,则在搜索场景时不会跨越语法节点。把bounded赋值为state。private static List<GrammarNode> getNextGrammarNodesWithWords(GrammarNode node);输入参数:语法节点,通过此节点来获得后续节点。返回的是存储语法节点的列表。通过给定的语法节点返回包含字的后续语法节点的一个列表。本方法处理过程:直接后续包含字的话就把此后续加入返回的列表中,对于那些不包含字的直接后续,如果其是终止节点,则把此语法节点加入返回的列表中,如果不是终止节点则在活动后续的直接后续,在进行相应的操作。private static void addNextGrammarPointsWithWords(GrammarNodenode, List<GrammarPoint> nextPoints);添加包含字的下一语法指针集到给定的列表中。输入:node为语法节点。nextPoints为语法指针被添加到的地方。private List<GrammarPoint> getNextGrammarPoints(boolean startWithCurrent);为此语法指针返回下语法指针列表。如果没有下流的语法指针则返回一个空的列表。输入参数:startWithCurrent是否包括在场景(语境)中的当前状态。如果与一个语法节点相关的语法指针和语法节点由alternatives。则为每一个alternatives添加指针。如果我们没有任何的alternatives也就是说,此语法节点没有与之相关的字,则继续下去并找到有字的下语法节点集,并收集它们,扩展它们,返回那个集。private void addContext(List<Unit[]> contexts, Unit[] units);输入参数:contexts为存储units的列表。Units为要添加到contexts的单元数组。如果contexts中已经存在此Units则不需加入contexts。确保没有相同的场景存在与列表中,添加一个场景到场景列表中。当一个右场景被收集。它可能包含在某种情况的副本。(当着个单元是一个语法节点中的最后单元,在后续节点中存在着一个到多个字的分支)public List<Unit[]> getRightContexts(int size, boolean startWithCurrent,int maxContexts);为此语法指针获得所有的右场景。返回的场景在长度需确保是’长度’单元,返回的场景的数量即unit[]数组的个数依赖于此语法指针下流语法的复杂度。输入:size为返回的每个场景的长度。startWithCurrent是否包含在场景中的当前状态。maxContexts为返回的最大的右场景数。返回的是包含unit[]场景的列表。</span>

0 0
原创粉丝点击