private static <T, S> void printTrieDFSAHelper(DFSAState<T, S> state, int level) { if (state.isAccepting()) { return; } Set<T> inputs = state.continuingInputs(); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); System.out.print(level); System.out.print(input); for (int i = 0; i < level; i++) { System.out.print(" "); } System.out.print(transition.score()); System.out.print(" "); System.out.println(input); printTrieDFSAHelper(transition.target(), level + 1); } }
public void printAttFsmFormat(Writer w) throws IOException { Queue<DFSAState<T,S>> q = new LinkedList<>(); Set<DFSAState<T,S>> visited = Generics.newHashSet(); q.offer(initialState); while(q.peek() != null) { DFSAState<T, S> state = q.poll(); if(state == null || visited.contains(state)) continue; visited.add(state); if (state.isAccepting()) { w.write(state.toString()+"\t"+state.score()+"\n"); continue; } TreeSet<T> inputs = new TreeSet<>(state.continuingInputs()); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); DFSAState<T,S> target = transition.target(); if(!visited.contains(target)) q.add(target); w.write(state.toString()+"\t"+target.toString()+"\t"+transition.getInput()+"\t"+transition.score()+"\n"); } } }
private static <T, S> void printTrieAsRulesHelper(DFSAState<T, S> state, String prefix, Writer w) throws IOException { if (state.isAccepting()) { return; } Set<T> inputs = state.continuingInputs(); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); DFSAState<T, S> target = transition.target(); Set<T> inputs2 = target.continuingInputs(); boolean allTerminate = true; for (T input2 : inputs2) { DFSATransition<T, S> transition2 = target.transition(input2); DFSAState<T, S> target2 = transition2.target(); if (target2.isAccepting()) { // it's a binary end rule. Print it. w.write(prefix + " --> " + input + " " + input2 + "\n"); } else { allTerminate = false; } } if (!allTerminate) { // there are some longer continuations. Print continuation rule String newPrefix = prefix + "_" + input; w.write(prefix + " --> " + input + " " + newPrefix + "\n"); printTrieAsRulesHelper(transition.target(), newPrefix, w); } } }
inputs.addAll(state1.continuingInputs()); inputs.addAll(state2.continuingInputs()); boolean distinguishable = false; Set<IntPair> pendingIPairs = Generics.newHashSet();
Set<T> inputs = Generics.newHashSet(state1.continuingInputs()); inputs.addAll(state2.continuingInputs()); boolean distinguishable = false; Set<UnorderedPair<DFSAState<T, S>, DFSAState<T, S>>> pendingUPairs = Generics.newHashSet();
DFSA<String, Integer> answerLattice, CoreLabel[] docArray) { if(tSource.isAccepting() && tSource.continuingInputs().isEmpty()) { tSource.addTransition (new DFSATransition<>("", tSource, new DFSAState<>(-1, null), "1", "", 0)); Set<String> inputs = tSource.continuingInputs();
private static <T, S> void printTrieDFSAHelper(DFSAState<T, S> state, int level) { if (state.isAccepting()) { return; } Set<T> inputs = state.continuingInputs(); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); System.out.print(level); System.out.print(input); for (int i = 0; i < level; i++) { System.out.print(" "); } System.out.print(transition.score()); System.out.print(" "); System.out.println(input); printTrieDFSAHelper(transition.target(), level + 1); } }
private static <T, S> void printTrieDFSAHelper(DFSAState<T, S> state, int level) { if (state.isAccepting()) { return; } Set<T> inputs = state.continuingInputs(); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); System.out.print(level); System.out.print(input); for (int i = 0; i < level; i++) { System.out.print(" "); } System.out.print(transition.score()); System.out.print(" "); System.out.println(input); printTrieDFSAHelper(transition.target(), level + 1); } }
private static <T, S> void printTrieDFSAHelper(DFSAState<T, S> state, int level) { if (state.isAccepting()) { return; } Set<T> inputs = state.continuingInputs(); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); System.out.print(level); System.out.print(input); for (int i = 0; i < level; i++) { System.out.print(" "); } System.out.print(transition.score()); System.out.print(" "); System.out.println(input); printTrieDFSAHelper(transition.target(), level + 1); } }
public void printAttFsmFormat(Writer w) throws IOException { Queue<DFSAState<T,S>> q = new LinkedList<>(); Set<DFSAState<T,S>> visited = Generics.newHashSet(); q.offer(initialState); while(q.peek() != null) { DFSAState<T, S> state = q.poll(); if(state == null || visited.contains(state)) continue; visited.add(state); if (state.isAccepting()) { w.write(state.toString()+"\t"+state.score()+"\n"); continue; } TreeSet<T> inputs = new TreeSet<>(state.continuingInputs()); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); DFSAState<T,S> target = transition.target(); if(!visited.contains(target)) q.add(target); w.write(state.toString()+"\t"+target.toString()+"\t"+transition.getInput()+"\t"+transition.score()+"\n"); } } }
public void printAttFsmFormat(Writer w) throws IOException { Queue<DFSAState<T,S>> q = new LinkedList<DFSAState<T,S>>(); Set<DFSAState<T,S>> visited = new HashSet<DFSAState<T,S>>(); q.offer(initialState); while(q.peek() != null) { DFSAState<T, S> state = q.poll(); if(state == null || visited.contains(state)) continue; visited.add(state); if (state.isAccepting()) { w.write(state.toString()+"\t"+state.score()+"\n"); continue; } TreeSet<T> inputs = new TreeSet<T>(state.continuingInputs()); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); DFSAState<T,S> target = transition.target(); if(!visited.contains(target)) q.add(target); w.write(state.toString()+"\t"+target.toString()+"\t"+transition.getInput()+"\t"+transition.score()+"\n"); } } }
public void printAttFsmFormat(Writer w) throws IOException { Queue<DFSAState<T,S>> q = new LinkedList<DFSAState<T,S>>(); Set<DFSAState<T,S>> visited = Generics.newHashSet(); q.offer(initialState); while(q.peek() != null) { DFSAState<T, S> state = q.poll(); if(state == null || visited.contains(state)) continue; visited.add(state); if (state.isAccepting()) { w.write(state.toString()+"\t"+state.score()+"\n"); continue; } TreeSet<T> inputs = new TreeSet<T>(state.continuingInputs()); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); DFSAState<T,S> target = transition.target(); if(!visited.contains(target)) q.add(target); w.write(state.toString()+"\t"+target.toString()+"\t"+transition.getInput()+"\t"+transition.score()+"\n"); } } }
private static <T, S> void printTrieAsRulesHelper(DFSAState<T, S> state, String prefix, Writer w) throws IOException { if (state.isAccepting()) { return; } Set<T> inputs = state.continuingInputs(); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); DFSAState<T, S> target = transition.target(); Set<T> inputs2 = target.continuingInputs(); boolean allTerminate = true; for (T input2 : inputs2) { DFSATransition<T, S> transition2 = target.transition(input2); DFSAState<T, S> target2 = transition2.target(); if (target2.isAccepting()) { // it's a binary end rule. Print it. w.write(prefix + " --> " + input + " " + input2 + "\n"); } else { allTerminate = false; } } if (!allTerminate) { // there are some longer continuations. Print continuation rule String newPrefix = prefix + "_" + input; w.write(prefix + " --> " + input + " " + newPrefix + "\n"); printTrieAsRulesHelper(transition.target(), newPrefix, w); } } }
private static <T, S> void printTrieAsRulesHelper(DFSAState<T, S> state, String prefix, Writer w) throws IOException { if (state.isAccepting()) { return; } Set<T> inputs = state.continuingInputs(); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); DFSAState<T, S> target = transition.target(); Set<T> inputs2 = target.continuingInputs(); boolean allTerminate = true; for (T input2 : inputs2) { DFSATransition<T, S> transition2 = target.transition(input2); DFSAState<T, S> target2 = transition2.target(); if (target2.isAccepting()) { // it's a binary end rule. Print it. w.write(prefix + " --> " + input + " " + input2 + "\n"); } else { allTerminate = false; } } if (!allTerminate) { // there are some longer continuations. Print continuation rule String newPrefix = prefix + "_" + input; w.write(prefix + " --> " + input + " " + newPrefix + "\n"); printTrieAsRulesHelper(transition.target(), newPrefix, w); } } }
private static <T, S> void printTrieAsRulesHelper(DFSAState<T, S> state, String prefix, Writer w) throws IOException { if (state.isAccepting()) { return; } Set<T> inputs = state.continuingInputs(); for (T input : inputs) { DFSATransition<T, S> transition = state.transition(input); DFSAState<T, S> target = transition.target(); Set<T> inputs2 = target.continuingInputs(); boolean allTerminate = true; for (T input2 : inputs2) { DFSATransition<T, S> transition2 = target.transition(input2); DFSAState<T, S> target2 = transition2.target(); if (target2.isAccepting()) { // it's a binary end rule. Print it. w.write(prefix + " --> " + input + " " + input2 + "\n"); } else { allTerminate = false; } } if (!allTerminate) { // there are some longer continuations. Print continuation rule String newPrefix = prefix + "_" + input; w.write(prefix + " --> " + input + " " + newPrefix + "\n"); printTrieAsRulesHelper(transition.target(), newPrefix, w); } } }
DFSA<String, Integer> answerLattice, CoreLabel[] docArray) { if(tSource.isAccepting() && tSource.continuingInputs().isEmpty()) { tSource.addTransition (new DFSATransition<String, Integer>("", tSource, new DFSAState<String, Integer>(-1, null), "1", "", 0)); Set<String> inputs = tSource.continuingInputs();
DFSA<String, Integer> answerLattice, CoreLabel[] docArray) { if(tSource.isAccepting() && tSource.continuingInputs().isEmpty()) { tSource.addTransition (new DFSATransition<>("", tSource, new DFSAState<>(-1, null), "1", "", 0)); Set<String> inputs = tSource.continuingInputs();