Natural Language Processing

CRF++ – conditional random field sequence labelling toolkit

CRF++ is a general-purpose toolkit for labelling sequential data with conditional random fields. In natural language processing, this kind of sequence model is commonly used for tasks such as named-entity recognition, text chunking and part-of-speech tagging.

Users prepare examples as sequences of tokens, each with a fixed set of columns describing the token and its context. A separate feature template specifies how those input columns contribute to the model. This makes it possible to adapt the same learner to different tagging problems without rewriting the training algorithm.

CRF++ is a mature classical NLP implementation rather than a modern neural sequence labeller. It remains relevant for existing pipelines, education, research comparisons and projects that benefit from interpretable, feature-engineered sequence models.

This is free and open source software.

Key Features

  • Trains linear-chain conditional random field models on labelled sequences.
  • Uses configurable feature templates to construct token and context features.
  • Supports L-BFGS optimisation and alternative MIRA-based training.
  • Provides single-best and n-best sequence predictions.
  • Can emit marginal probabilities for candidate labels.
  • Accepts token attributes in column-oriented training and test files.
  • Can generate text and binary forms of a trained model.
  • Offers programming interfaces and bindings for several languages.
  • Includes example data for common sequence tagging problems.
  • Identifies sentence or sequence boundaries using blank lines in token data.
  • Can use lexical, contextual and other discrete observations as input columns.
  • Supports regularization options during model learning.
  • Exposes predicted labels and probabilities through its tagging interface.
  • Provides tools for evaluating alternative feature templates on the same corpus.
  • Cross-platform support – runs on Linux and Windows.

Website: github.com/taku910/crfpp
Support:
Developer: Taku Kudo
License: GNU Lesser General Public License v2.1 or BSD 3-Clause ‘New’ or ‘Revised’ License

CRF++ is written in Shell and C++. Learn C++ with our recommended free books and free tutorials.


Related Software

C++ Natural Language Processing Tools
text2vecFramework with API for text analysis and natural language processing
MosesStatistical machine translation system
TiMBLTilburg Memory-Based Learner
MITIEMIT Information Extraction
MeTAModern C++ data sciences toolkit
Colibri CoreEfficient n-gram & skipgram modelling on text corpora
CRF++Yet Another CRF toolkit
BLLIP ParserStatistical natural language parser

Read our verdict in the software roundup.


Best Free and Open Source Software LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.

We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more.

Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion.

Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted