Jahmm - Hidden Markov Model (HMM)

An implementation in Java

Jahmm has a new home!

Jahmm is moving to a new home! Check out the new website:
http://jahmm.googlecode.com/
It's now available under the New BSD license!

Making Jahmm available as a Google Code project brings exciting new features such as a discussion group, a wiki, and a freely available source revision system. This new infrastructure should greatly ease the community feedback and allow Jahmm users to help each other.

All this is great news!

I plan to deprecate this site as soon as all the information available here have been copied to the new website.

Overview

This site describes Jahmm (pronounced "jam"), a Java implementation of Hidden Markov Model (HMM) related algorithms. It's been designed to be easy to use (e.g. simple things are simple to program) and general purpose. As it is licenced under GPL; its source code is thus freely available.

This library is reasonably efficient, meaning that the complexity of the implementation of the algorithms involved is that given by the theory. However, when a choice must be made between code readability and efficiency, readability has been chosen. It is thus ideal in research (because algorithms can easily be modified) and as an academic tool (students can quickly get interesting results).

Various algorithms are included in the latest version..

The library also provides a graphical user interface and a command-line interface.

Example

This example shows how to program the library to build a HMM, to generate observation sequences, to use a learning algorithm and to read a data file.

User Interfaces

Two interfaces are provided.

The first is a graphical user interface, JahmmViz, which is not using the latest version of the library.

The second (and prefered) user interface is the command-line interface.

Contributions

Some contributions to the library.

Documentation

The packages of the latest version are briefly described here.

The Javadoc of the latest version of these packages is available online, as a tar.gz file or as a zip file. A user guide has also been written.

This page is not intended to be a HMM tutorial. Please refer to the following papers for more information about HMMs:

Downloads

Download the current release (sources in tar.gz or zip, jar) or pick one in the following list (the number given in the filename matches the version):

Version Javadoc User guide Release date Comments
0.6.1 (sources tar.gz or zip, jar) Online, tar.gz, zip pdf html xhtml April 2006 Minor change; see changelog.
0.6.0 (sources tar.gz or zip, jar) Online, tar.gz, zip pdf html xhtml April 2006 Major modifications. Includes a command-line interface.
0.5.0 (sources tar.gz or zip, jar) Online, tar.gz, zip pdf December 2005 Ported to Java 1.5.0 (finished). Does not include JahmmViz anymore (it will be release separately from now on). Major changes (see the changelog).
0.4.1 (sources tar.gz or zip, jar) Online, tar.gz, zip pdf January 2006 Backported bugfix to v0.4.0.
0.4.0 (sources tar.gz or zip, jar) Online, tar.gz, zip pdf November 2005 Porting to Java 1.5.0 (continued).
0.3.4 (sources tar.gz or zip, jar) Online, tar.gz, zip pdf November 2005 Small bugfix. Included Gaussian mixtures. Begin porting to Java 1.5.0.
0.3.3 (sources tar.gz or zip, jar) Online, tar.gz, zip pdf March 2005 Last Java 1.4 version of the library. JahmmViz update/small bugfixes.
0.3.2 (sources tar.gz or zip, jar) Online, tar.gz, zip pdf March 2005 JahmmViz update.
0.3.1 (sources tar.gz or zip, jar) Online, tar.gz, zip pdf February 2005 Bugfix.
0.3.0 (sources tar.gz or zip, jar) Online, tar.gz, zip pdf January 2005 Added the JahmmViz GUI.

You can read the changelog. Old releases are available here.

Please contact Jean-Marc Fran├žois (the author) at francois-jahmm@run.montefiore.ulg.ac.be if you have any comment or question.