public float distanceToPredecessor(ItState<N> state, String pos) { N[] nodes = state.getNodes(); for (int i=state.getNodeID()-1; i>0; i--) { N node = nodes[i]; if (node.getPartOfSpeechTag().startsWith(pos)) return (float)MathUtils.divide(state.getNodeID()-i, nodes.length-1); } return 0f; }
public float distanceToSuccessor(ItState<N> state, String pos) { N[] nodes = state.getNodes(); for (int i=state.getNodeID()+1; i<nodes.length; i++) { N node = nodes[i]; if (node.getPartOfSpeechTag().startsWith(pos)) return (float)MathUtils.divide(i-state.getNodeID(), nodes.length-1); } return 0f; }
public float distanceToPredecessor(ItState<N> state, String pos) { N[] nodes = state.getNodes(); for (int i=state.getNodeID()-1; i>0; i--) { N node = nodes[i]; if (node.getPartOfSpeechTag().startsWith(pos)) return (float)MathUtils.divide(state.getNodeID()-i, nodes.length-1); } return 0f; }
public float distanceToSuccessor(ItState<N> state, String pos) { N[] nodes = state.getNodes(); for (int i=state.getNodeID()+1; i<nodes.length; i++) { N node = nodes[i]; if (node.getPartOfSpeechTag().startsWith(pos)) return (float)MathUtils.divide(i-state.getNodeID(), nodes.length-1); } return 0f; }
@Override public float[] createDenseVector(ItState<N> state) { float[] v = new float[3]; v[0] = (float)MathUtils.divide(state.getNodeID(), state.getNodes().length-1); v[1] = (float)MathUtils.divide(state.getTreeID(), state.getDocument().size()); v[2] = distanceToPredecessor(state, "NN"); return v; }
@Override public float[] createDenseVector(ItState<N> state) { float[] v = new float[3]; v[0] = (float)MathUtils.divide(state.getNodeID(), state.getNodes().length-1); v[1] = (float)MathUtils.divide(state.getTreeID(), state.getDocument().size()); v[2] = distanceToPredecessor(state, "NN"); return v; }