If you like our work and find it usfull for you, please cite our paper:

Yossi Adi and Joseph Keshet, "StructED : Risk Minimization in Structured Prediction", in submission to JMLR.

StructED is a software packages that implements a collection of machine learning algorithms for large scale structured prediction. The package was written in Java, and was released under the MIT license.

Most software packages in machine learning available today are designed to solve binary, regression or multiclass problems, where the input to such classifiers is a fixed-length vector and the output is an integer or a real number. Structured prediction is the case where both the input and the output are structured objects (a graph, an acoustic speech utterance, a sequence of words, an image, etc.). Consequently, the structured output space can be exponentially large (all possible phoneme or word sequences, all possible taxonomy graphs, all possible human poses, etc.) and the evaluation metric is not the 0-1 loss but rather a unique task-dependent metric (word error rate in speech recognition, the BLEU score in machine translation, the NDCG score in information retrieval, or the intersection-over-union score in visual object segmentation).

Structured tasks are therefore distinctive: each task has a unique evaluation metric, its own set of feature functions, and in many cases a non-standard inference.

StructED handles this inherent complexity by providing the user a set of interfaces for easy implementation of the evaluation metric, the set of feature functions and the decoder.


You can download StructED directly from our GitHub page.

Learn more »


We provide a few usage examples for different tasks; multiclass and structured.

Learn more »