Internship for master's thesis at Utrecht University, which concerns research into the practical use of rule-based classification systems. The practical use envisioned encompasses the use of a rule-based classifier to determine the category of a complaint made to a telecom provider. Some of these categories are "service cancellation not honoured", "wrong price calculated" and "offer not applied". The classification is done based on a number of properties of the complaint and other information available from the backend systems, such as previous customer service contacts, dates of known incidents, applicable promotions and contract constraints.
The final version of the classification system includes the use of argument-enhanced classification methods, which utilise the knowledge of domain experts to improve the generated rules and thus classification accuracy.
The product built for the internship is a classification application in Ruby on Rails, which uses the Clark Niblett 2 algorithm and variants thereof. The application has two interfaces, an HTML interface for administrative tasks and a JSON interface for automated tasks.
The JSON interface can be used to execute tasks that are common and used often, such as the classification of a pending case and the insertion of a new case into the case base. These actions can be executed by other programs that form part of the whole process, which enables the software to deliver almost instantaneous decisions on the action to take.
The HTML interface encompasses, besides the administrative tasks, also the actions of which the JSON interface is capable. The administrative tasks unique to the HTML interface concern the creation of new case bases, the creation of new rulesets and the execution of cross-validations amongst others.