Publication: Identifying Emotional States Using Keystroke Dynamics

The ability to recognize emotions is an important part of building intelligent computers. Emotionally-aware systems would have a rich context from which to make appropriate decisions about how to interact with the user or adapt their system response. There are two main problems with current system approaches for identifying emotions that limit their applicability: they can be invasive and can require costly equipment. Our solution is to determine user emotion by analyzing the rhythm of their typing patterns on a standard keyboard. We conducted a field study where we collected participants' keystrokes and their emotional states via self-reports. From this data, we extracted keystroke features, and created classifiers for 15 emotional states. Our top results include 2-level classifiers for confidence, hesitance, nervousness, relaxation, sadness, and tiredness with accuracies ranging from 77 to 88%. In addition, we show promise for anger and excitement, with accuracies of 84%.

Downloads

PDF

Participants

Clayton Epp
University of Saskatchewan
Mike Lippold
University of Saskatchewan
Regan Mandryk
University of Saskatchewan

Projects

Affective Computing
Evaluation of a user's emotional experience with technology is not well understood, especially when the primary goal of a technology is to entertain (e.g., computer game) or to invoke an emotional experience (e.g., animated film).

Citation

Epp, C., Lippold, M., Mandryk, R.L. 2011. Identifying Emotional States Using Keystroke Dynamics. In Proceedings of the 2011 Annual Conference on Human Factors in Computing Systems (CHI 2011), Vancouver, BC, Canada. 715-724. DOI=10.1145/1978942.1979046.

BibTeX

@inproceedings {203-p715-epp,
author= {Clayton Epp and Mike Lippold and Regan Mandryk},
title= {Identifying Emotional States Using Keystroke Dynamics},
booktitle= {Proceedings of the 2011 Annual Conference on Human Factors in Computing Systems (CHI 2011)},
year= {2011},
address= {Vancouver, BC, Canada},
pages= {715-724}
}