Class GraphTokenStreamFiniteStrings


  • public final class GraphTokenStreamFiniteStrings
    extends java.lang.Object
    Consumes a TokenStream and creates an Automaton where the transition labels are terms from the TermToBytesRefAttribute. This class also provides helpers to explore the different paths of the Automaton.
    • Constructor Detail

      • GraphTokenStreamFiniteStrings

        public GraphTokenStreamFiniteStrings​(TokenStream in)
                                      throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • hasSidePath

        public boolean hasSidePath​(int state)
        Returns whether the provided state is the start of multiple side paths of different length (eg: new york, ny)
      • getTerms

        public java.util.List<AttributeSource> getTerms​(int state)
        Returns the list of tokens that start at the provided state
      • getTerms

        public Term[] getTerms​(java.lang.String field,
                               int state)
        Returns the list of terms that start at the provided state
      • getFiniteStrings

        public java.util.Iterator<TokenStream> getFiniteStrings()
                                                         throws java.io.IOException
        Get all finite strings from the automaton.
        Throws:
        java.io.IOException
      • getFiniteStrings

        public java.util.Iterator<TokenStream> getFiniteStrings​(int startState,
                                                                int endState)
        Get all finite strings that start at startState and end at endState.
      • articulationPoints

        public int[] articulationPoints()
        Returns the articulation points (or cut vertices) of the graph: https://en.wikipedia.org/wiki/Biconnected_component
      • build

        private Automaton build​(TokenStream in)
                         throws java.io.IOException
        Build an automaton from the provided TokenStream.
        Throws:
        java.io.IOException
      • articulationPointsRecurse

        private static void articulationPointsRecurse​(Automaton a,
                                                      int state,
                                                      int d,
                                                      int[] depth,
                                                      int[] low,
                                                      int[] parent,
                                                      java.util.BitSet visited,
                                                      IntArrayList points)