A general-purpose Java library for performing structured learning.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Illinois Structured Learning Package v1.0.0

Illinois Structured Learning Package (Illinois-SL) is a general purpose JAVA library for performing structured learning. It houses learning algorithms like averaged Structured Perceptron and Structured SVM with L2-Loss, and provides a minimal interface for your structured learning needs. The training algorithm employed for training SSVM is dual coordinate descent(DCD), which has been proven to have very good convergence properties. Illinois-SL comes with an efficient implementation of DCD with support for multi-threading. Illinois-SL provides a simple and neat framework for developing applications using structured prediction models.

Maven Coordinates

To use Illinois-SL in your project add the following to your pom,



Example Usage

We provide detailed examples in an accompanying package at illinois-sl-examples.


The Illinois Structured Learning Package is available under a Research and Academic use license. For more details, view the license file LICENSE.

System requirements

The Illinois Structured Learning Package was developed on and for GNU/Linux, specifically CENTOS (2.6.18-238.12.1.el5) and Scientific Linux (2.6.32-279.5.2.el6.x86_64). There are no guarantees for running it under any other operating system, but we hope it should run on a Linux OS without any issues.

We assume that the package is installed on a machine with sufficient memory. The actual requirement of the memory depends on the task and size of the learning problem.

NOTE: When running your project, if working with a large dataset, you may need to invoke your project using the -Xmx1G and -XX:MaxPermSize=1G JVM command line parameters.

Additional Documentation/Citation

Additional documentation is available in the JavaDoc located in doc/index.html


Please cite the following papers when using this library

K.-W. Chang, S. Upadhyay, M.-W. Chang, V. Srikumar, D. Roth. IllinoisSL: A JAVA Library for Structured Prediction. Arxiv, 2015.

M.-W. Chang, V. Srikumar, D. Goldwasser and Dan Roth. Structured output learning with indirect supervision. ICML, 2010.

K.-W. Chang, V. Srikumar, D. Roth. Multi-core Structural SVM Training. ECML, 2013.

Contribute to the package

If you encounter any issue when using the package, please file a bug report as a GitHub issue and provide information about how to reproduce the error.

You are also welcomed to contribute to the package. To do so, please fork git repo https://github.com/IllinoisCogComp/illinois-sl/ and submit a pull request.

Please find the detailed instructions about how to contribute to a GitHub project at https://guides.github.com/activities/contributing-to-open-source/

Contact Information

Please open a new issue with a minimal working example, in case you run into problems when using this package, and we will assist you. You can also email your questions to illinois-ml-nlp-users@cs.uiuc.edu.

(C) 2015 Kai-Wei Chang, Shyam Upadhyay, Ming-Wei Chang, Vivek Srikumar and Dan Roth, Cognitive Computation Group, University of Illinois at Urbana-Champaign.