Release history

1.9.0June 4 2016Added support for CoNLL-U data format and some refactoring and minor fixes.
1.8.1November 22 2014Minor fixes
1.8May 5 2014New interface to a concurrent "light-weighted" parser.
1.7.2September 25 2012
1.7.1April 9 2012Minor fixes
1.7March 12 2012Several changes please read the notes below.
1.6.1September 21 2011Improvement of the MaltParserService. Some improvements during training.
1.6August 21 2011More sparse representation of the liblinear model, this change requires that a parser model is retrained.
1.5.3August 1 2011Fixed problem that the symbol table is increasing during parsing.
1.5.2July 8 2011Minor fixes
1.5.1May 12 2011Fixed a bug that cause MaltParser to crash under Windows
1.5April 21 2011Large update and requires that a parser model is retrained.
1.4.1July 15 2010Some minor bug fixes
1.4July 2 2010New parsing algorithms, new functionality and some other changes and bugfixes
1.3.1November 14 2009Some minor improvements and bug fixes
1.3September 30 2009 Large update
1.2December 10 2008Large update
1.1June 5 2008Large update
1.0.4February 22 2008Some minor improvements and bug fixes
1.0.3January 26 2008Some minor bug fixes
1.0.2January 10 2008Some minor bug fixes
1.0.1November 13 2007Binaries built with JDK1.5, instead of JDK1.6.
1.0.0November 9 2007First release

MaltParser 1.9.0

Added support for CoNLL-U data format
Some refacoring, minor performance-tuning and fixes

MaltParser 1.8.1

Some bug fixes to the concurrent interface

MaltParser 1.8

A new concurrent interface that uses a more "light-weighted" parser and can hopefully be used in a multi-threaded environment. Note: If you need an interface to MaltParser during training of parser models then you have to use the old interface.
Added enforce_tree options to Nivre Arc-eager (thanks to Daniel Fernández-González)
Some minor changes throughout the code.

MaltParser 1.7.2

Add a new option group "multiplanar" that affect the parsing algorithm planar and 2-planar (thanks to Carlos Gómez-Rodríguez)
Liblinear is now the default learner.Liblinear is now the default learner.
Liblinear interface: Abort and presentation of an error message when number of training instances * number of classes > Integer.MAX_VALUE (limitation of the size of Java array)
Liblinear interface: Improvement of the performance of the memory optimization.
SystemInfo: MaltParser version and build date are not loaded from the manifest-file. Instead version and build date are read from a new file in appdata.
SystemInfo: Removed the code that tries to find the path to the maltparser-version.jar. The code is not needed anymore and cause problems for MaltParserService users.
MaltParserService and OptionManager: Fixed problems when loading /appdata/options.xml from the jar-file
ConfigurationDir: fixed URL-problems when loading files from the parser model .mco-file (thanks to Michael Schmitz)
New API examples ParseSentence4: shows how to use MaltParserService with a mco-file nested in a jar-file.

MaltParser 1.7.1

Added deterministic action to the parsing algorithms Covington non-projective and Covington projective.
Fixed a bug with option containers that cause problem when using several parser models via MaltParserService
Synchronizing the TreeMap that handles the option values.
Minor adjustments to the documentation.

MaltParser 1.7

Name of jar-file changed to maltparser-<version>.jar, where <version> is the current version of MaltParser.
Two dependent Java libraries stax-1.2.0.jar and jsr173_1.0_api.jar removed, because the functionality is included in Java 1.6 or later.
The machine learning package liblinear 1.7 replaced by liblinear 1.8.
MaltParser 1.7 (and later versions) made available via the official Maven repository.
Two new options allow_root and allow_reduce added for the Nivre parsing algorithm. These two options replace the older root_handling option from version 1.7 onwards.
Minor bug fixes in the pseudo-projective parsing component.
During parsing MaltParser will also search in the java class path(s) to find the parser model (.mco-file).
Some minor changes throughout the code.

MaltParser 1.6.1

The release of 1.6 reduced the memory usage of the liblinear model, but one drawback was that the training time increased a lot for complex models. This release tries to reduce this training time.
MaltParserService has been equipped with few more methods that makes it easier to develop client/server applications.
Some minor changes throughout the code.

MaltParser 1.6

This update address the problem that the liblinear model use a lot of memory.
  • First, all features that have zero weights for all candidates are now removed during training.
  • Second, all features that have the same weights for all candidates shares the weight array.
  • Third, all ending zeros in the weight array are removed.
Build target ( are now 1.6. If you want to run MaltParser with Java 5 you have to change to 1.5 and rebuild MaltParser. We have also tested MaltParser with Java 7 and it works fine.

MaltParser 1.5.3

Fixed a problem with identifying the correct version of malt-<version>.jar when there are several malt-<version>.jar
Fixed a problem that the symbol table is increasing with new strings during parsing time.

MaltParser 1.5.2

Problem when using MaltParser within a servlet. By making Util.findURL() and Util.findURLinJars() non-static and using getClass().getResource() instead resolves the problem. thanks to Adriane Boyd.
Fixed a bug when merging Distance, NumOf and Exists features.
Fixed some minor errors in the User guide. Legal values of the second arguments of the NumOf feature are LDEPS, RDEPS, DEPS.
Some minor changes throughout the code.

MaltParser 1.5.1

Fixed a bug that cause MaltParser to crash under Windows

MaltParser 1.5

Total re-implementation of the interface to liblinear and libsvm.
Correction of some bugs in pseudo-projective parsing.
Minor changes to the specification of the data format.
Added the possibility to add numeric fields in the data format and use numeric features in the feature model.
Removed the implementation of phrase structure parsing. Use MaltParser 1.2 instead.
Removed the null value option called 'RootLabel'.
Replaced Java's HashMap and HashSet with Google's memory efficient HashMap and HashSet.
Minor updates of the MaltParser API.
Some minor changes throughout the code.

MaltParser 1.4.1

Fixed a problem introduced in 1.4 with path separator in Microsoft Windows environment

MaltParser 1.4

Two new parsing algorithms 'planar' and 'twoplanar' written by Carlos Gómez-Rodríguez.
Replaced the libsvm.jar with LIBSVM version 2.91.
Replaced the liblinear.jar with Liblinear version 1.51.
The default options of the liblinear options is changed from '-s_1_-c_1_-e_0.1_-B_1' to '-s_4_-c_0.1'.
The parser model file '.mco' is not unpacked during parsing, instead the parser reads models and other information directly from the file.
New functionality that allows partial dependency trees to be parsed.
New functionality that allows propagation of column values towards the root of the dependency graph when doing a labeled transition.
MaltParserService that makes it easier for third-party applications to call MaltParser.
Seven examples that show how to use MaltParser from other applications.

MaltParser 1.3.1

Improved the performance of the liblinear learner interface.
'_' character does not mean ignore dependency label in the TabReader.
It is now possible to have file names with blanks.
Better error message if a column is an empty string in TabReader.
Corrected the StackProjective.xml feature model file.

MaltParser 1.3

New design of the org.maltparser.parser package
Reimplementation of the four existing parser algorithms (Nivre arc-eager, Nivre arc-standard, Covington projective and Covington non-projective) in the new design.
Three new parsing algorithms: Stack projective, Stack eager and Stack lazy
Removal of malt-0.4 support
Removal of post-processing for Nivre arc-eager and Nivre arc-standard
Fixed a bug in Nivre arc-eager with root handling strict that affects the results
Interface to liblinear
New address functions: ANC, PANC, LDESC, PLDESC, RDESC, PRDESC
New feature functions: Distance, Exists, NumOf, InputArc and InputArcDir
Some minor changes throughout the code.
The changes may require retraining of parser models.

MaltParser 1.2

New functionality: TigerXML reader and writer for parsing phrase structure.
A total reimplementation of the data structure maintaining the dependency graph and the phrase structure graph (syntax graph package)
Transformation between phrase structure and dependency graph relocated to the new syntax graph package.
Moved large part of the code in SingleMalt configuration a level up into concept called flow charts, which makes much easier to use MaltParser within third-part software.
The new syntax graph package and the flow chart package cause changes in must of the classes.
The option --singlemalt-mode is replaced by --config-flowchart.
Some minor changes throughout the code.
The changes may require retraining of parser models, especially parser models trained with Negra format.

MaltParser 1.1

New functionality: prediction strategy, which makes it possible to divide the prediction of the parser action into several predictions.
New functionality: phrase structure parser that recovers both continuous and discontinuous phrases with both phrase labels and grammatical functions by automatically transforming the phrase structure representations into dependency representations with complex arc labels.
A total reimplementation of the feature model system.
New feature types: for example PrefixFeature, MergeFeature and Merge3Feature
Better integration of the pseudo-projective parsing.
Rather large reimplementation of the guide system.
Divided the Single Malt configuration class into several classes and relocated the class to the package org.maltparser.parser.config.
Rather large changes to the IO system and relocation of these classes into the package
New functionality: NEGRA reader and writer for parsing phrase structure.
The plugin and options management implements the singleton design pattern, which loads these classes independently on the MaltConsoleEngine.
Much of the code in MaltConsoleEngine is relocated to other classes, which makes it easier to create other programs based on MaltParser classes.
Some minor changes throughout the code.

MaltParser 1.0.4

The default value of the class separator option has been changed to the tilde character (~) instead of underscore (_), because it is quite common that underscore is present in dependency labels.
Improved the portability of a MaltParser configuration file (.mco) between different platforms.
Pre-compiled regular expression used for splitting strings.
Improved memory usage when training an SVM model with an external LIBSVM trainer.
Improved error handling when invoking the external LIBSVM trainer.
Slightly improved memory usage of the trie symbol table.

MaltParser 1.0.3

Fixed some minor bugs
Added an error message when LIBSVM runs out of memory
Removed the file "using.htm" from the documentation.

MaltParser 1.0.2

A configuration file (.mco) was not unpacked in the working directory.
URL to feature specification file and data format file were not handled correct.

MaltParser 1.0.1

Binaries built with JDK1.5 instead of JDK1.6.
Some minor bug fixes

MaltParser 1.0.0

This is the first release of the Java implementation of MaltParser, so there are no changes.