# A Compression-Based Toolkit for Modelling and Processing Natural Language Text
## 6 Related Work
The meaning of the term 'architecture' is clearer in the literature--it involves the abstract design concepts and structures behind an application. For these reasons for the work described in this paper, the well accepted terms toolkit, libraries and architecture have been used to describe the system, and its design and implementation. Table 9 lists a selection of systems that have been developed for NLP. The table lists the name of the system, a reference, the type of system described using terms used by the developers of the system and the language(s) in which the system has been developed. The table illustrates that there have been many systems developed to date in a number of different programming languages with Java predominating. The preferred type of system is a toolkit and/or an external library being available. These systems in general provide a suite of tools for various applications, such as tokenisation, classification, POS tagging, named entity recognition and parsing being the ones provided the most. A number of further freely available systems that have been developed by the NLP research community are based on a range of underlying architectures including those listed in Table 9. For example, DKPro and ClearTK are two examples that use the UIMA framework architecture for analysing unstructured information. Alternatively, some of the systems are primarily designed around a core external library or libraries that can be called from an application. Often these systems are not described as having an underlying architecture (for example, FreeLing, NLTK and OpenNLP in the table). The two main approaches all of these systems use for text processing involve a rule-based approach (either manually designed or automatically generated) and statistical. These systems also predominantly process natural language text in a word-based manner. What distinguishes the Tawa toolkit from most of these systems is threefold: firstly, the toolkit is character-based; secondly, the design of the applications is based around an integrated compression-based architecture; and thirdly, none of the toolkits in the table (apart from Tawa itself), provide explicit support for compression-based applications. Tawa is also written with carefully memory-managed C code for each object type and is designed to be memory efficient and fast. Like the Tawa system, the LingPipe system also uses character language models but uses the noisy channel model approach for various applications. Using a character or symbol-based approach means that methods used for solving the tasks required for applications can be quite different to the traditional word-based approach. For example, the Tawa toolkit for classification avoids the need for explicit word-based feature extraction and simply processes all the characters in the text being classified. The application of compression-based models to NLP has had a long history and one of the main purposes of the Tawa toolkit is to make these models more easily available for developers to use. In many cases, the applications implemented using these models have produced state-of-the-art results. For example, PPM character based language models have been applied successfully to many applications in NLP [6] such as language identification and cryptography [51] including various \begin{table}
\begin{tabular}{l l l l} \hline \hline
**System** & **Reference** & **Type of System** & **Language(s)** \\ \hline CoreNLP & [44] & suite of tools & Java \\ FreeLing & [45] & library & C++ \\ GATE & [43] & architecture, suite of tools & Java \\ LingPipe & [46] & toolkit, API & Java \\ MALLET & [47] & toolkit, API & Java \\ NLTK & [48] & library & Python \\ OpenNLP & [49] & library & Java \\ Tawa & (This paper) & toolkit, libraries & C \\ UIMA & [50] & architecture, middleware & Java, C++ \\ \hline \hline \end{tabular}
\end{table} 
Table 9: Some systems for NLP and their details. applications for automatically correcting words in texts such as OCR and word segmentation [8; 9] (also see Table 8 for a further selection of results).