Apache OpenNLP is a machine learning based toolkit for the processing of natural language text. It supports the most common NLP tasks, such as tokenization, sentence segmentation, part-of-speech tagging, named entity extraction, chunking, parsing, and coreference resolution. These tasks are usually required to build more advanced text processing services.
EXIP provides a C library for the parsing and serialization of Efficient XML Interchange (EXI) format streams. The focus is portability and efficiency for embedded systems development. The project was started at the EISLAB research group in the Department of Computer Science, Electrical and Space Engineering, Luleå University of Technology, and is part of research efforts to bring resource-constrained embedded devices, such as wireless sensor nodes, closer to the enterprise business processes taking place in processing, manufacturing, and communication industries.
Flexc++ is a tool for generating scanners based on regular expressions. Flexc++ is highly comparable to the programs flex and flex++. The goal was to create a similar program, but to implement it completely in C++. Most flex and flex++ grammars should be usable with flexc++ with minor adjustments.
HtmlCleaner is an HTML parser. HTML found on the Web is usually dirty, ill-formed, and unsuitable for further processing. For any serious consumption of such documents, it is necessary to first clean up the mess and bring order to the tags, attributes, and ordinary text. For a given HTML document, HtmlCleaner reorders individual elements and produces well-formed XML. By default, it follows rules similar to those which most Web browsers use to create a Document Object Model. However, the user may provide custom tag and rule sets for tag filtering and balancing.
Metrix++ is a platform to collect and analyze code metrics. It has a plugin-based architecture, so it is easy to add support for new languages, define new metrics, and/or create new pre- and post-processing tools. Every metric has 'turn-on' and other configuration options. There are no predefined thresholds for metrics or rules; you can choose and configure any limit you want. It scales well to large codebases. For example, initial parsing of about 10000 files takes 2-3 minutes on an average PC, and only 10-20 seconds for iterative re-run. Reporting summary results and exceeded limits takes less than 1 - 10 seconds. It can compare results for 2 code snapshots (collections) and differentiate added regions (classes, functions, etc.), modified regions, and unchanged regions. As a result, easy deployment is guaranteed into legacy software, helping you to deal with legacy code efficiently, and either enforce the 'leave it not worse than it was before' rule or motivate re-factoring.