TiMBL: Tilburg Memory-Based Learner
TiMBL: Tilburg Memory-Based Learner

TiMBL is an open source software package implementing several memory-based learning algorithms, among which IB1-IG, an implementation of k-nearest neighbor classification with feature weighting suitable for symbolic feature spaces, and IGTree, a decision-tree approximation of IB1-IG. All implemented algorithms have in common that they store some representation of the training set explicitly in memory. During testing, new cases are classified by extrapolation from the most similar stored cases.

For the past fifteen years TiMBL has been mostly used in natural language processing as a machine learning classifier component, but its use extends to virtually any supervised machine learning domain. Due to its particular decision-tree-based implementation, TiMBL is in many cases far more efficient in classification than a standard k-nearest neighbor algorithm would be.

Download and reference guide

  • Consult these installation instructions for details on how to install this software if you are using a Debian, Ubuntu, or Fedora-based system. If you want to build the code from source yourself, download


  • TiMBL is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 3) as published by the Free Software Foundation.

  • NEW: TiMBL server functionality is now in a separate package, TimblServer. MBT and Frog require both Timbl and TimblServer.

  • Book: Memory-Based Language Processing - Daelemans, W., and Van den Bosch, A. (2005). Cambridge, UK: Cambridge University Press.

  • Reference Guide (66 pages, 498 kB PDF); Daelemans, W., Zavrel, J., Van der Sloot, K., and Van den Bosch, A. (2010). TiMBL: Tilburg Memory Based Learner, version 6.3, Reference Guide. ILK Research Group Technical Report Series no. 10-01.

  • API guide (34 pages, 129 kB PDF); Van der Sloot, K. (2010). TiMBL: Tilburg Memory Based Learner, version 6.3, API Guide. ILK Research Group Technical Report Series no. 10-03.

  • TimblServer Manual (12 pages, 62 Kb PDF); Van der Sloot, K. (2010). TimblServer: Tilburg Memory-Based Learner Server, version 1.0, Manual. ILK Research Group Technical Report Series no. 10-02.


  • Fast, decision-tree-based implementation of k-nearest neighbor classification
  • Implementations of IB1 and IB2, IGTree, TRIBL, and TRIBL2 algorithms
  • Similarity metrics: Overlap, MVDM, Jensen-Shannon and Jeffrey Divergence, Dot product, Cosine
  • Feature weighting metrics: information gain, gain ratio, chi squared, shared variance
  • Per-value similarity metrics: Levenshtein, Dice coefficient
  • Distance weighting metrics: inverse, inverse linear, exponential decay
  • Multi-CPU support
  • Extensive verbosity options to inspect nearest neighbor sets
  • Server functionality and extensive API
  • Fast leave-one-out testing and internal cross-validation
  • Handles user-defined example weighting
Additional TiMBL resources

Several wrappers, bindings and other extensions to TiMBL have been developed:

TimblServer TiMBL wrapper, adds server functionality to TiMBL
Dimbl Parallel TiMBL for multi-core processing; parallelizes by splitting the training set
paramsearch Automatic hyperparameter optimization for TiMBL (and other ML algorithms)
Timpute TiMBL-based data imputation
python-timbl Python language binding for TiMBL (old version)
rtimbl a Ruby interface to TiMBL
knngraph Visualizes nearest neighbors in a TiMBL instance base

TiMBL is a core component of various NLP software systems such as MBT (memory-based tagger generator), Frog (Dutch morpho-syntactic analyzer), Valkuil.net (Dutch context-sensitive spelling corrector), and SoothSayer (Dutch word completion).

Installation notes and feedback

Timbl can be built from source on most GNU/Linux based environments, such as Debian and Ubuntu Linux, provided that you have (recent versions of) autoconf, autoconf-archive, pkg-config, libtool, libxml2-dev, and ticcutils installed.

Basic installation instructions:

  • > tar xfz timbl-latest.tar.gz
  • > cd timbl-[version]
  • > ./configure --prefix=<location_to_install>
  • > make install
Be sure to add <location_to_install>/bin to your PATH.

Please send your questions and bug reports to timbl@uvt.nl. The development of Timbl benefits from your contributions.