seqlearn extends the scikit-learn machine learning library to deal with sequence classification: sequences of observations that must be individually labeled, but where the order in which they appear matters.

seqlearn mimicks the basic scikit-learn fit/predict API and tries to stay compatible with scikit-learn’s data formats, but adds an argument to the scikit-learn methods that encodes the structure of the input. This argument is called lengths and should be an array of integers denoting the respective lengths of sequences in (X, y).

For example, if X and y both have length (shape[0]) of 10, then lengths=[6, 4] encodes the information that (X[:6], y[:6]) and (X[6:10], y[6:10]) are both coherent sequences. This encoding of sequence information allows for a fast implementation using NumPy’s vectorized operations.