EmoLib is a library that extracts the affect from text and tags it according to the feeling that is written or being conveyed.

The diagram below shows the general architecture of EmoLib:


Figure 1: Architecture diagram of EmoLib.

The processing structure of EmoLib is built of several primary abstract classes that define a sequential modular framework, i.e., a pipeline, due to the dependencies in the tagging process. This pipeline is described in detail in the AffectiveTagger.

The actual (concrete) classes that perform the Natural Language Processing (NLP) tasks (identified in Figure 1 inside the Tagger block) inherit the common language-processing-wise methods and functions defined by these parent (abstract) classes. By following this specification, the system gains an additional degree of flexibility, scalability and maintainability. This responds to the need of obtaining a complete modular configurable framework for EmoLib.

The primary abstract classes that define the architecture of EmoLib are described as follows:

There's also an external monitor, i.e., the Printer, to help show the information (data) that flows in the processing pipeline in order to check that the different modules that build the chain work correctly.

The configuration issues are conducted by the Configuration Manager, which receives the specific configuration from an external XML config file. This system has been taken from the Sphinx-4 speech recognition project, so please refer to the pertinent documentation on the configuration specifications at the Configuration Management for Sphinx-4.

It is believed that the availability of a simple code is the best possible documentation in order to begin using EmoLib. See EmoLib Simple Example for further details.